에프디크리에이티브 사 에서 제작한 교육용 아두이노를 이용하여
초음파 탐지기를 이용한 후방주차 감지 시스탬을 구현해보았습니다.
즉흥적으로 짠거라 회로도는 따로없고 사진을 참고하시면됩니다.
소스는
int cnt; int dummcnt; long Distance; long Tempture; unsigned long duration; int pin = 15; void setup() { pinMode(32, OUTPUT); pinMode(40, OUTPUT); pinMode(41, OUTPUT); pinMode(42, OUTPUT); pinMode(43, OUTPUT); pinMode(44, OUTPUT); pinMode(45, OUTPUT); pinMode(46, OUTPUT); pinMode(47, OUTPUT); Serial.begin(9600); Tempture = 25; pinMode(pin,OUTPUT); digitalWrite(pin, LOW); cnt = 0; } void allOff(){ digitalWrite(40, LOW); digitalWrite(41, LOW); digitalWrite(42, LOW); digitalWrite(43, LOW); digitalWrite(44, LOW); digitalWrite(45, LOW); digitalWrite(46, LOW); digitalWrite(47, LOW); //delay(1000); } void onLed(int num){ digitalWrite(32,LOW); for(int j = 0 ; j<num ; j++){ int lednum = j+40; digitalWrite(lednum, HIGH); } } void loop() { delay(150); pinMode(pin,OUTPUT); digitalWrite(15,HIGH); delayMicroseconds(10); digitalWrite(15,LOW); pinMode(pin,INPUT); duration = pulseIn(pin, HIGH); Distance = (331.5 + 0.607 * Tempture) * ( duration * 0.001 / 2 ); Serial.print("value (mm) = "); Serial.println(Distance); //led all off if(Distance<40){ digitalWrite(32,HIGH); allOff(); }else if(Distance>=50 && Distance < 100){ digitalWrite(32,HIGH); delay(50); digitalWrite(32,LOW); delay(50); digitalWrite(32,HIGH); delay(50); digitalWrite(32,LOW); delay(50); digitalWrite(32,HIGH); delay(50); digitalWrite(32,LOW); delay(50); digitalWrite(32,HIGH); delay(50); digitalWrite(32,LOW); onLed(1); }else if(Distance>=100 && Distance < 150){ digitalWrite(32,HIGH); delay(100); digitalWrite(32,LOW); delay(100); digitalWrite(32,HIGH); delay(100); digitalWrite(32,LOW); onLed(2); }else if(Distance>=150 && Distance < 200){ digitalWrite(32,HIGH); delay(150); digitalWrite(32,LOW); onLed(3); }else if(Distance>=200 && Distance < 250){ digitalWrite(32,HIGH); delay(200); digitalWrite(32,LOW); onLed(4); }else if(Distance>=250 && Distance < 300){ onLed(5); }else if(Distance>=300 && Distance < 350){ onLed(6); }else if(Distance>=350 && Distance < 400){ onLed(7); }else{ onLed(8); } }
위와같이 소스를 설정하시면 아래영상처럼 구동됩니다.
소리를 키워주세요!
'Programming > Arduino' 카테고리의 다른 글
아두이노 보드를 이용한 DC모터 제어 (0) | 2013.01.23 |
---|---|
소리를 이용한 LED를 ON/OFF하기 (0) | 2013.01.22 |
74HC595를 이용한 3핀->8핀 만들기 (1) | 2013.01.17 |
4일차 가변저항으로 LED 제어하기 (2) | 2013.01.12 |
3일차 아두이노 피아노 만들기!!! (2) | 2013.01.11 |