BASIC4MCU | 질문게시판 | 초음파 거리에 따른 LED변화
페이지 정보
작성자 아낙네 작성일2020-06-10 00:28 조회2,920회 댓글0건본문
거리에 따라 LED불빛이 변화가 되어야합니다.
1) 0~1m 까지 LED 1개 ON 2) ~2m 까지 LED 2개 ON 3) ~3m 까지 LED 3개 ON
#define triggerPin 8
#define echoPin 9
#define Pin A0
#define CTM 10
int distanceThreshold = 0;
int cm = 0;
void setup() {
Serial.begin(9600);
{
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
pinMode(echoPin,INPUT);
}
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(A1, OUTPUT);
digitalWrite(A1, HIGH);
pinMode(A2, OUTPUT);
digitalWrite(A2, LOW);
}
void loop() {
int dur4, dur3;
float dis4, dis3;
digitalWrite(triggerPin, HIGH);
delayMicroseconds(CTM);
digitalWrite(triggerPin, LOW);
dur4 = pulseIn(echoPin, HIGH);
dis4 = (float) dur4 * 0.017;
Serial.print(dis4);
Serial.println(" cm");
pinMode(Pin, OUTPUT);
digitalWrite(Pin, LOW);
delayMicroseconds(2);
pinMode(Pin, OUTPUT);
digitalWrite(Pin, HIGH);
delayMicroseconds(CTM);
digitalWrite(Pin, LOW);
pinMode(Pin, INPUT);
dur3 = pulseIn(Pin, HIGH);
dis3 = (float) dur3 * 0.017;
Serial.print(dis4);
Serial.println(" cm");
distanceThreshold = 300;
Serial.print(cm);
Serial.print("cm, ");
if (cm >= distanceThreshold) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
if (cm < distanceThreshold & distanceThreshold - 100 <= cm) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}
if (cm < distanceThreshold & distanceThreshold - 200 <= cm) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
delay(100);
}
이렇게 코딩하면 거리측정만 가능하고 LED에 불빛이 안 들어옵니다...
댓글 0
조회수 2,920등록된 댓글이 없습니다.