LED 4

[간단한 아두이노 코딩] 5. 온도 센서 사용하기(DS18B20, LM35)

온도 센서 사용하기(DS18B20, LM35) 1. 온도 센서 (DS18B20, LM35) 가장 흔하게 볼 수 있는 온도 센서는 아날로그 LM35와 디지털 DS18B20이다. 아날로그 센서는 아두이노의 아날로그 핀으로 0~1023까지 값에 해당하는 결과를 반환한다. 이 값은 각 센서 제조사에서 제공하는 공식을 통하여 실제 온도 값을 구할 수 있다. 반면 디지털 센서는 직접 그 값을 반환하기 때문에 별도로 계산할 필요는 없지만 일부 센서의 경우 해당 업체의 라이브러리가 필요한 경우가 있다. 이번 포스팅에서는 아날로그 온도 센서인 LM35와 디지털 온도 센서인 DS18B20을 이용하여 온도를 구해보고, 두 개의 온도 센서의 평균 값이 30이 넘는 경우 LED를 동작하는 간단한 코드를 작성한다. 2. LM35..

[간단한 아두이노 코딩] 4. 버튼 입력 제어하기 (인터럽트)

버튼 입력 제어하기 (인터럽트) 1. Busy waiting vs Interrupt [간단한 아두이노 코딩] 3. 버튼 입력 제어하기에서 다뤘던 방식은 loop 함수를 이용하여 지속적으로 BUTTON이 연결된 GPIO를 확인하는 방식이었다. void loop(){ if(digitalRead(BUTTON)==HIGH) doSomething(); } 이와 같이 원하는 결과가 들어올 때까지 확인하면서 대기하는 방식을 Busy waiting이라고 한다. 유사한 개념으로는 Polling이 있으나, 약간의 차이는 있다. (Busy waiting은 끊임 없이 확인하는 방식이고 Polling은 주기적으로 확인하는 방식이다.) Busy waiting의 문제는 확인하는 동작이 반복되는 동안 다른 작업을 수행할 수 없다는 ..

[간단한 아두이노 코딩] 3. 버튼 입력 제어하기

버튼 입력 제어하기 1. 버튼 동작 방식 우리가 일상 생활에서 접하는 버튼들은 아래와 같이 간단한 구조로 되어 있다. 위와 같이 버튼을 눌렀을 때는 A와 B 사이에 끊어진 도선이 연결되면서 전기가 흐르는 형식이다. 이렇게 직접적으로 전류를 제어하는 버튼들이 있는 반면 반대로 처음에는 연결되어 있다가 눌렀을 때 떨어지는 반대 버튼도 있고, 전류의 흐름을 직접 제어하지 않고 간접적으로 제어하는 버튼들도 있다. 우리는 가장 기본적인 형태의 버튼을 이용하여 버튼 입력을 받고, 그에 따른 동작을 수행할 수 있도록 코드를 구성할 예정이다. 2. 푸시 버튼 이번에 사용할 푸시 버튼은 앞에서 말한 것과 같이 눌렀을 때 도선이 연결되어 동작하는 버튼으로, 4개의 접점을 가진다. 이 4개의 접점을 통해서 기존 버튼의 동작..

[간단한 아두이노 코딩] 2. LED 깜박이기

LED 깜박이기 1. LED 회로 구상 초등학생때 배우는 꼬마전구와 건전지를 이용해서 불을 켜는 회로를 생각해보자. 우리는 꼬마 전구의 +-극에 건전지의 +,-극을 전선으로 연결하게 되면 불이 들어온다. 건전지 +극 --- LED --- 저항 --- 건전지 -극 LED 또한 마찬가지이다. LED의 +극과 -극에 그에 알맞은 전원을 인가해주면 불이 들어오게 된다. 여기서 알맞은 전원이란, 적당한 전압과 전류를 뜻하는데 빨간색의 LED는 약 1.8 볼트의 전압과 20mA의 전류가 필요하다. 그러나 아두이노에서는 3.3V와 5V 전압 포트가 있고, GPIO에서 디지털 핀은 HIGH일 때 5V를 출력한다. 따라서 우리는 옴의 공식을 이용하여 LED 소자가 타지 않도록 저항 값을 계산해서 연결해 주어야 한다. V..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사