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.
Görev
KolayMesafeyi 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);
}
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