↯ Robotik KodlamaTüm projeler

Yaya geçidi isteği

Buton olayıyla geçici kırmızı duruma geç, süre dolunca yeşile dön.

9+ yaş · 20 dakika ·

İnteraktif atölyede aç →

Neler öğreneceğiz?

Buton olayıyla geçici kırmızı duruma geç, süre dolunca yeşile dön.
INPUT_PULLUP dahili direnci kullanır. Buton basılıyken LOW okunur. click() 30 ms kararlı değişim bekleyerek mekanik sıçramayı süzer. Dört ayaklı butonda aynı tarafta zaten bağlı ayakları karıştırma.
Her LED’in kendine ait seri direnci vardır. Kırmızı D8, sarı D7, yeşil D6 pinindedir.

Yaya geçidi isteği — proje görseli
Bu projeye ait algoritma, deney veya elektriksel bağlantı görselidir. Donanım görselindeki semboller gerçek breadboard yerleşimi değildir.

Malzeme listesi

  1. 1 × Arduino Uno R3
  2. 1 × USB veri kablosu
  3. 1 × breadboard
  4. Yeterli sayıda jumper kablo
  5. 1 × basmalı buton
  6. Kırmızı, sarı ve yeşil LED
  7. 3 × 330 Ω direnç

Bağlantı tablosu

BaşlangıçBağlantı
D2Butonun bir kontağı
Buton karşı kontağıGND
D8330 Ω → kırmızı LED anot
D7330 Ω → sarı LED anot
D6330 Ω → yeşil LED anot
Üç LED katoduGND

Adım adım yapalım

  1. Önce bağlantı görselini ve malzeme listesini oku. 6–8 yaş grubunda bir yetişkin devreyi kurarken çocuk komutları ve sonucu takip eder.
  2. USB ve harici beslemeyi çıkar. Breadboard güç raylarının bağlı/ayrık bölümlerini kontrol et.
  3. D2 ucunu Butonun bir kontağı noktasına bağla.
  4. Buton karşı kontağı ucunu GND noktasına bağla.
  5. D8 ucunu 330 Ω → kırmızı LED anot noktasına bağla.
  6. D7 ucunu 330 Ω → sarı LED anot noktasına bağla.
  7. D6 ucunu 330 Ω → yeşil LED anot noktasına bağla.
  8. Üç LED katodu ucunu GND noktasına bağla.
  9. Bir yetişkinle güç, GND, parça yönü ve dirençleri bağlantı tablosuna göre tek tek kontrol et.
  10. Arduino IDE’de Arduino Uno kartını ve bağlı portu seç. Servo veya LCD kullanılan projelerde ilgili Servo/LiquidCrystal kütüphanesini kur.
  11. Aşağıdaki bağımsız kodu yeni eskize yapıştır ve karta yükle. Seri Monitör gerekiyorsa 9600 baud seç.
  12. Beklenen sonucu gözle, ardından yalnız bir değişkeni değiştirerek “Sıra sende” görevini yap.

Kod · Arduino C++

// Arduino Uno R3 — Yaya geçidi isteği

bool waiting=false;unsigned long start=0;
bool pressed(){return digitalRead(2)==LOW;}
bool click(){static bool lastRaw=false,stable=false;static unsigned long changed=0;bool raw=pressed();if(raw!=lastRaw){lastRaw=raw;changed=millis();}if(millis()-changed>=30 && stable!=raw){stable=raw;return stable;}return false;}
void lights(bool r,bool y,bool g){digitalWrite(8,r);digitalWrite(7,y);digitalWrite(6,g);}
void setup(){
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT); pinMode(7,OUTPUT); pinMode(6,OUTPUT);
}
void loop(){
  if(click()&&!waiting){waiting=true;start=millis();}if(waiting&&millis()-start>=4000)waiting=false;lights(waiting,0,!waiting);
}

Kod nasıl çalışır?

Buton olayıyla geçici kırmızı duruma geç, süre dolunca yeşile dön.
setup() bir kez çalışıp pin yönlerini ve haberleşmeyi hazırlar. loop() içindeki komutlar sürekli tekrarlanır. INPUT_PULLUP dahili direnci kullanır. Buton basılıyken LOW okunur. click() 30 ms kararlı değişim bekleyerek mekanik sıçramayı süzer. Dört ayaklı butonda aynı tarafta zaten bağlı ayakları karıştırma.
Her LED’in kendine ait seri direnci vardır. Kırmızı D8, sarı D7, yeşil D6 pinindedir.

Beklenen sonuç

Başlangıç yeşildir. Basıştan sonra dört saniye kırmızı yanar.

Sıra sende

Geçişe bir saniyelik sarı ara durum ekle.

Güvenli atölye

Yalnız düşük gerilimli eğitim devresi. Şebeke/priz bağlantısı yapma. Bağlantıları enerji kapalıyken ve bir yetişkinle kur. Motor/servo hareket alanını boş tut. Bu proje fiziksel devrede test edilmiş olarak işaretlenmemiştir.

Çalışmıyorsa kontrol et

  1. Kod yüklenmiyorsa kart, port ve USB veri kablosunu kontrol et.
  2. Gücü çıkarıp her bağlantıyı tablodaki satırla eşleştir; ortak GND olmadan sinyaller güvenilir olmayabilir.
  3. Beklenen sonuçla gerçek sonucu karşılaştır. Sensör eşikleri bulunduğun ortama göre ayar ister.
  4. LED yanmıyorsa seri direnci ve anot/katot yönünü kontrol et; LED içermeyen projede sensörün pin etiketlerini incele.

https://docs.arduino.cc/hardware/uno-rev3/

https://docs.arduino.cc/language-reference/