Menu
CoddyTech

Czujnik parkowania: światła

Część sekcji Projekty ścieżki Arduino w Coddy. Lekcja 10 z 24.

Nikt nie odczytuje liczb podczas parkowania. Trzy diody LED zamieniają odległość na kolor: zielona na pinie 6, gdy droga jest wolna, żółta na pinie 7, gdy się zbliżasz, czerwona na pinie 13, gdy musisz się zatrzymać.

Trzy zakresy i dokładnie jedna dioda LED dla każdego z nich. Łańcuch if / else if / else pasuje, ponieważ uruchamia się tylko jedna z jego gałęzi:

if (cm >= 100) {
  // zielony
} else if (cm >= 30) {
  // żółty: od 30 do 99
} else {
  // czerwony: poniżej 30
}

Drugi test nie musi zawierać warunku cm < 100: else oznacza, że pierwszy test dał wynik fałszywy, więc odległość jest już mniejsza niż 100.

Wyłącz wszystkie trzy diody LED, zanim włączysz jedną z nich, tak jak w przypadku sygnalizacji świetlnej. W przeciwnym razie żółta pozostanie zapalona, gdy włączy się czerwona.

challenge icon

Wyzwanie

Łatwy

Pokazuj odległość za pomocą kolorów:

  • ustaw piny 6, 7 i 13 jako wyjścia
  • 100 cm lub więcej: tylko zielony
  • od 30 do 99 cm: tylko żółty
  • poniżej 30 cm: tylko czerwony

Nie przestawaj wyświetlać odległości. Naciśnij Run, przeciągnij czujnik odległości, a następnie naciśnij Check.

Spróbuj swoich sił

// Czujnik odległości
const int trigPin = 9;
const int echoPin = 10;

// Wyślij impuls i zwróć odległość w 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);
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Arduino