Парковочный датчик: световые сигналы
Часть раздела Проекты путешествия по Arduino на Coddy. Урок 10 из 24.
При парковке никто не читает числа. Три светодиода превращают расстояние в цвет: зелёный на контакте 6, когда путь свободен, жёлтый на контакте 7, когда вы приближаетесь, красный на контакте 13, когда нужно остановиться.
Три диапазона, и для каждого — ровно один светодиод. Подходит цепочка if / else if / else, потому что выполняется только одна из её ветвей:
if (cm >= 100) {
// зелёный
} else if (cm >= 30) {
// жёлтый: от 30 до 99
} else {
// красный: меньше 30
}Во второй проверке не нужно указывать cm < 100: else означает, что первая проверка оказалась ложной, поэтому расстояние уже меньше 100.
Как и в случае со светофором, выключите все три светодиода, прежде чем включить один. Иначе жёлтый останется включённым, когда загорится красный.
Задание
ЛегкоПоказывай расстояние с помощью цветов:
- настрой пины 6, 7 и 13 как выходы
- 100 см или больше: только зелёный
- от 30 до 99 см: только жёлтый
- менее 30 см: только красный
Продолжай выводить расстояние. Нажми 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);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Проекты
3Парковочный датчик
Парковочный датчик: расстояниеПарковочный датчик: световые сигналыПарковочный датчик: звуковые сигналыПарковочный датчик: дисплейПотренируйтесь самостоятельно: Песочница Arduino