Menu
CoddyTech

Park Sensörü: Işıklar

Coddy'nin Arduino Journey'sinin Projeler bölümünün bir parçası. Ders 10 / 24.

Park ederken kimse sayılara bakmaz. Üç LED, mesafeyi bir renge dönüştürür: yol açıksa 6 numaralı pinde yeşil, yaklaşıyorsan 7 numaralı pinde sarı, durman gerekiyorsa 13 numaralı pinde kırmızı yanar.

Üç mesafe aralığı ve her biri için tam olarak bir LED. Bir if / else if / else zinciri uygundur, çünkü dallarından yalnızca biri çalışır:

if (cm >= 100) {
  // yeşil
} else if (cm >= 30) {
  // sarı: 30 ile 99 arası
} else {
  // kırmızı: 30'un altında
}

İkinci testte cm < 100 demek gerekmez: else, ilk testin yanlış olduğu anlamına gelir; dolayısıyla mesafe zaten 100'ün altındadır.

Trafik ışığında olduğu gibi, bir LED'i yakmadan önce üçünü de söndür. Aksi takdirde kırmızı yandığında sarı da yanık kalır.

challenge icon

Görev

Kolay

Mesafeyi bir renkle göster:

  • 6, 7 ve 13 numaralı pinleri çıkış yap
  • 100 cm veya daha fazla: yalnızca yeşil
  • 30 ila 99 cm: yalnızca sarı
  • 30 cm'nin altında: yalnızca kırmızı

Mesafeyi yazdırmaya devam et. Run düğmesine bas, sensörün mesafesini sürükle, ardından Check düğmesine bas.

Kendin dene

// Mesafe sensörü
const int trigPin = 9;
const int echoPin = 10;

// Bir ping gönder ve mesafeyi cm cinsinden döndür.
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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Projeler bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground