에프디크리에이티브 사 에서 제작한 교육용 아두이노를 이용하여
초음파 탐지기를 이용한 후방주차 감지 시스탬을 구현해보았습니다.
즉흥적으로 짠거라 회로도는 따로없고 사진을 참고하시면됩니다.
소스는
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 |