본문 바로가기

아두이노코딩10

피에조부저 수동, 능동 원리와 아두이노에서의 사용방법 경고 신호를 알려주는데 가장 흔히 사용하는 피에조부저에 대해서 글을 작성해본다. 컴퓨터 부저 비프음을 내는데에도 쓰인다. 수동과 능동의 차이는 간단하다. 능동부저는 5V 전원을 연결했을때, 소리가 난다. 수동부저는 5V 전원을 연결해도 소리가 나지 않는다. 능동부저는 단순히 소리를 내는데 사용되고, 수동부저는 음계를 사용해 멜로디를 낼 수 있다. 피에조부저는 주파수로 제어할 수 있다. 능동 부저는 단순히 +단자와 -단자만 조심히 하고, +단자에 디지털 신호를 주면 소리가 난다. 수동 부저는 음계에 맞는 주파수를 디지털 신호로 주어야한다. 사용되는 음계와 주파수의 관계는 위의 표를 참고하면 된다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 점퍼선, 피에조 부저(수동 or 능동) int pie.. 2020. 5. 7.
초음파센서 HC-SR04 원리와 아두이노에서의 사용방법 초음파 센서중에서 가장 흔히 사용하는 HC-SR04 센서에 대해서 글을 작성해본다. 초음파 센서중에서 가장 저렴하며, 제일 쉽게 구할 수 있는 장점이 있는 센서이다. 각종 메이커톤, 발명대회에서 빠질 수 없는 센서 중 하나이다. 흔히 근접센서라고도 부른다. 초음파 센서는 초음파가 반사되어 오는데 걸린 시간을 이용하여 거리를 산출해낸다. 센서 전면부에 센싱을 하게 생긴 두개의 기둥이 존재한다. 하나는 발신부이고, 하나는 수신부이다. 발신부에서 초음파 파장이 발생되고, 직선상의 물체에 그 파장이 반사되어 돌아온다. 흔히 우리말로는 메아리 라고 하는 echo파장을 수신하고, 그 사이의 시간을 구하는게 핵심이다. 음속은 통상 340m/s 로 계산하는데, 등속운동이라는 가정하에 식을 세워보면 다음과 같다. [ t.. 2020. 5. 6.
[아두이노 강좌] 예제로 배우는 아두이노 #8 timer interrupt() 사용법, delay 없이 LED 제어하기 - delay() 함수를 사용하지 않고, LED를 원하는 시간만큼 점등시키고 소등시킬 수 있다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led(백색) 이전 강의부터 계속 언급하지만, 원래는 1 led당 1저항이 원칙이다. 하지만 백색 led의 경우 타지않고 버틸 수 있기 때문에 편의성을 위해서 저항을 사용하지 않는다. 그리고 led가 없더라도 13번핀은 내부 led와 연결되어 있으므로 외부 led가 없어도 이번 강의를 이해하는데 문제 없다. const int ledPin = LED_BUILTIN;// the number of the LED pin int ledState = LOW; // ledState used to set the LED unsigned long previo.. 2020. 3. 30.
[아두이노 강좌] 예제로 배우는 아두이노 #7 DigitalInputPullup, 아두이노 내장 pullup 저항 이용하기 - 아두이노 내부 회로에 내장되어 있는 풀업저항을 pinMode() 함수를 사용하여 설정하고, digitalRead() 함수를 사용하여 스위치 상태를 읽은 후 digitalWrite() 함수를 이용하여 LED를 제어한다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led, 버튼(택트스위치) void setup() { //start serial connection Serial.begin(9600); //configure pin 2 as an input and enable the internal pull-up resistor pinMode(2, INPUT_PULLUP); pinMode(13, OUTPUT); } void loop() { //read the pushbutton val.. 2020. 3. 27.
[아두이노 강좌] 예제로 배우는 아두이노 #6 , 스위치 버튼으로 led 제어하기 - 아두이노에서 스위치 상태를 digitalRead() 함수를 통해 읽은 후, LED를 digitalWrite() 함수를 통해 제어한다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led, 저항 1~2개, 버튼(택트스위치) led에 원래 저항을 연결해주는것이 원칙이지만, 백색 led를 사용하는 경우에는 위와같이 간단하게 테스트해 볼 수 있다. 또한 스위치에 연결되어 있는 저항은 아무 저항이나 사용하면 된다. const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // variables will change: int buttonStat.. 2020. 3. 25.
[아두이노 강좌] 예제로 배우는 아두이노 #5 analogWrite( ), 아두이노로 pwm 출력하기 - analogWrite() 함수를 이용하여 전압 출력을 pwm 신호로 출력할 수 있다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led LED 사용하는데에는 저항이 필수적으로 필요하지만, 간단히 테스트를 위해서 이번에는 LED(백색)을 이용한다. 적색과 노란색, 녹색의 LED를 사용하시려면 저항이 필요합니다. 110옴 저항 사용 권장. LED의 긴다리(+극)를 9번핀에 연결한다. int led = 9; // the PWM pin the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup .. 2020. 3. 25.
[아두이노 강좌] 예제로 배우는 아두이노 #4 ReadAnalogVoltage, 아두이노로 전압측정하기 - analogRead() 함수를 이용하여 아두이노로 회로의 전압을 측정할 수 있다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led, 110옴 저항, 건전지 저항 110 옴에 걸린 전압 측정하기 건전지 전압 측정하기 void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // Convert the analog read.. 2020. 3. 25.
[아두이노 강좌] 예제로 배우는 아두이노 #3 analogRead()사용법 - digitalRead() 함수를 이용하여 아날로그 센서를 사용할 때, 아두이노에서 센서값을 읽는 것을 수행 한다. - 아두이노(나도, 우노, 메가), 시리얼 통신 케이블, 포텐시오미터(가변저항), 브레드보드 void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.printl.. 2020. 3. 25.
[아두이노 강좌] 예제로 배우는 아두이노 #2 digitalRead() 사용법, 버튼 상태 읽기 - digitalRead() 명령어를 이용하여 아두이노에 연결된 버튼의 상태를 읽을 수 있다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 버튼(택트 스위치), 브레드보드 저항은 아무거나 있으면 됩니다. 저항 없이도 사용할 수 있습니다. 이때는 아두이노 자체의 풀업저항 회로를 이용해야 하는데, 여기서는 다루지 않습니다. int pushButton = 2; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // make the pushbutton's pin an input: pinM.. 2020. 3. 25.
[아두이노 강좌] 예제로 배우는 아두이노 #1 digitalWrite() 사용법, 내장 LED 점등하기 - digitalWrite() 명령어를 이용하여 아두이노에 기본적으로 내장되어있는 LED를 점등하고 소등시킬 수 있다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블 없음 void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED.. 2020. 3. 24.