본문 바로가기

Study/Arduino34

Arduino] 온습도 센서 DHT-11 가장 많이 쓰는 온습도 센서 DHT-11입니다. 가격도 저렵하고, 저항하나만 연결해주면 측정가능합니다. 그리고 아예 모듈로 된 녀석도 있습니다. 가격은 3배나 뛰었지만 커넥터와 케이블을 제공합니다. 스펙을 보시면 온도는 0~50도, 습도는 20~90%입니다. 오차가 좀 있습니다. 개선형으로 나온 DHT-22모델입니다. 가격은 많이 비싼편이고 생긴것도 비슷합니다. 측정범위와 오차범위가 줄었습니다. 온도는 -40~80도, 오차도 ±2도에서 ±0.5도로. 습도는 0~100%에 오차범위가 ±5%에서 ±2~5%입니다. 아두이노에서 라이브러리 추가를 들어가 dht로 검색하시면 2가지 정도 나옵니다. 가운데 라이브러리는 제가 따로 추가한 것입니다. dht-22를 쓰시려면 첫번째 라이브러리를 받으시고, dht-11은 .. 2016. 12. 6.
Arduino] FreeRTOS 포팅하기 Arduino에서 FreeRTOS는 라이브러리를 제공하기 때문에 쉽게 포팅할 수 있습니다. 아두이노용으로 몇가지 종류가 있지만 가장 쉽게 아두이노 공식라이브러리로 설치하는 방법입니다. 1. 라이브러리 추가하기 아두이노를 실행시켜 스케치->라이브러리 포함하기->라이브러리 관리... 를 눌러줍니다. 라이브러리 매니저가 나타나면 빨간 네모박스처럼 freertos를 검색합니다. 그리고 파란 네모박스 위치에 install이 나타나고, 설치가 완료되면, 빨간 밑줄 그은곳이 installed로 바뀝니다. 다시 스케치->라이브러리 포함하기->FreeRTOS를 선택하면 관련 함수들이 자동으로 추가됩니다. 이제 이 상태에서 코딩을 하시면 됩니다. 기본 예제 소스입니다.123456789101112131415161718192.. 2016. 11. 15.
Arduino] MQ-3(알코올센서, 가스센서) 흔히 보실 수 있는 알코올 센서 모듈인 MQ-3를 아두이노로 연결해 봤습니다. 센서는 시중에서 많이 구하 실 수 있는 센서입니다. 위 사진에 보이는 동그란 것(주황색)이 MQ-3(Gas sensor)입니다. MQ-3의 datasheet 뒷부분에는 LM393(비교기)이 달려있고, DOUT을 통해 디지털 출력을 내보냅니다. MQ-3의 ADC출력은 AOUT를 통해 내보냅니다. VCC는 5V(DC or AC)를 사용하시면 됩니다. 그리고 DOUT이 평상시 High에서 Low로 떨어지면(농도가 높아지면) LED에 불이 들어옵니다. 대기중의 오염 물질을 알려주는데 정확한 양은 측정이 어려운 듯 합니다. 간단히 ADC와 디지털로 값을 읽어 보겠습니다. 모듈의 DOUT은 7번핀에, 모듈의 AOUT은 A0에 연결하였습니.. 2016. 11. 3.
arduino] 오토라이트컨트롤(LED+CDS) 요즘 대다수의 자동차에 달려있는 오토라이트 컨트롤 시스템 어두운곳에서는 라이트를 자동으려 켜주고, 밝은 곳에서는 자동으로 꺼주는 기능입니다. 원리는 간단합니다. CDS센서로 조도를 측정한 후, 기준값을 잡아 기준보다 어두우면 라이트를 켜고, 기준보다 밝으면 라이트를 꺼줍니다. 아두이노를 이용해 간단하게 만들어 보겠습니다.^^ 회로는 위 그림과 같이 연결합니다. CDS의 경우 위 그림과 같이 연결하면 어두울수록 값이 높아지고, 저항과 위치를 바꾸면 어두울수록 값이 낮아집니다. 12345678910111213141516171819#define LED 13int cdsVal=0; void setup() { Serial.begin(9600); pinMode(LED,OUTPUT); digitalWrite(LED,.. 2016. 10. 24.
플래쉬 다운로딩이 안될때 아두이노에서 다운로딩할때 아래와 같이 통신에러가 발생할 때가 있습니다. 위 에러의 경우 통신포트가 잘못되었거나 이미 열려있는 경우입니다. 포트를 확인하시고, 포트가 맞다면 터미널 등으로 이미 열려있는지 확인한 후 닫아 주세요. 위와 같은 에러는 다운로딩 모드로 들어가지 못하는 경우인데, 대부분은 다운로딩 케이블이 불량인 경우가 많습니다. 케이블을 교환한 후 다시 시도해보세요.^^ 2016. 8. 30.
자주쓰이는 체터링방지 버튼(Button) 코딩법 일반적인 Tact Switch의 경우 버튼을 누를면 High-Low가 바로 바뀌는 것이 아니라 값이 흔들리게 됩니다. 위 그림처럼 버튼을 눌렀을때 바로 Low로 떨어지지 않는데, 이런 현상을 체터링이라고 합니다. 이런 현상을 방지해주는 방법으로 2가지 정도가 있는데, 하나는 버튼을 누를때마다 delay를 주는 것입니다. 하지만 delay방식을 사용할 경우 환경에 따라 delay시간을 변경해야 하며, 계속 누르고 있는경우 같은 값이 연속적으로 입력되게 됩니다. 위 방법보다 더 적극적인 체터링 방지방법으로는 버튼을 눌렀다가 떼었을때 입력되게 하는 것입니다. 1234567891011121314151617if(!relay_button){ if(!digitalRead(RELAY_SW)){ relay_button=.. 2016. 6. 13.

인기글