주차 센서: 조명
Coddy Arduino 여정의 프로젝트 섹션에 포함된 레슨. 24개 중 10번째.
주차할 때 숫자를 읽는 사람은 없습니다. 세 개의 LED는 거리를 색으로 나타냅니다. 길이 뚫려 있으면 핀 6의 초록색, 가까워지고 있으면 핀 7의 노란색, 멈춰야 하면 핀 13의 빨간색입니다.
세 가지 거리 범위에 LED는 각각 정확히 하나씩입니다. if / else if / else 체인이 적합합니다. 분기 중 하나만 실행되기 때문입니다.
if (cm >= 100) {
// 초록색
} else if (cm >= 30) {
// 노란색: 30부터 99까지
} else {
// 빨간색: 30 미만
}두 번째 조건에 cm < 100을 명시할 필요는 없습니다. else는 첫 번째 조건이 거짓이었다는 뜻이므로, 거리는 이미 100 미만입니다.
신호등에서처럼 하나를 켜기 전에 세 LED를 모두 끄세요. 그렇지 않으면 빨간색이 켜질 때 노란색도 계속 켜져 있습니다.
챌린지
쉬움거리를 색상으로 표시하세요:
- 핀 6, 7, 13을 출력으로 설정하세요
- 100 cm 이상: 초록색만
- 30~99 cm: 노란색만
- 30 cm 미만: 빨간색만
계속 거리를 출력하세요. Run을 누르고 센서의 거리를 드래그한 다음 Check를 누르세요.
직접 해보기
// 거리 센서
const int trigPin = 9;
const int echoPin = 10;
// 핑을 보내고 거리를 cm 단위로 반환합니다.
long readDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration / 58;
}
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
long cm = readDistance();
Serial.println(cm);
delay(100);
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
프로젝트의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드