↯ Robotik KodlamaTüm projeler

Mini keşif istasyonu

LCD’de ışık ve mesafeyi dönüşümlü göster, geçerli yakın nesnede LED ile uyar.

13+ yaş · 35 dakika ·

İnteraktif atölyede aç →

Neler öğreneceğiz?

LCD’de ışık ve mesafeyi dönüşümlü göster, geçerli yakın nesnede LED ile uyar.
LCD 4 bit paralel modda çalışır; 7–10 numaralı veri uçları boş kalır. Kontrast görünmezse potu yavaşça çevir. Bu devre I2C adaptörlü ekran için değildir. LCD metinleri karakter seti nedeniyle ASCII yazılmıştır.
LDR üst koldadır: bu bağlantıda aydınlık arttıkça A1 değeri genellikle artar. 10 kΩ ile gerilim bölücü oluşturur. Eşik oda ışığına göre ayarlanır; değer doğrudan lux değildir.
Ultrasonik darbenin gidiş-dönüş süresini ölçeriz. Yaklaşık us/58 dönüşümü santimetre verir. -1 yankı alınamadığını belirtir. Örnekler arasında en az 60 ms bekle; 2 cm altı ve eğimli/yumuşak yüzeyler güvenilmez olabilir. ECHO 5 V olduğundan bu bağlantı Uno içindir.
D9 dijital çıkıştır ve PWM de destekler. Direnç LED akımını sınırlar. LED’in kısa bacağı katottur; kesik kenarını da kontrol et.

Mini keşif istasyonu — 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 × HD44780 uyumlu LCD1602 (paralel)
  6. 1 × 10 kΩ kontrast potansiyometresi
  7. 1 × 220 Ω arka ışık direnci
  8. 1 × LDR
  9. 1 × 10 kΩ direnç
  10. 1 × HC-SR04 ultrasonik sensör
  11. 1 × LED
  12. 1 × 330 Ω direnç

Bağlantı tablosu

BaşlangıçBağlantı
LCD 1 VSS / 5 RW / 16 KGND
LCD 2 VDD5V
LCD 3 VO10 kΩ pot orta uç (dış uçlar 5V ve GND)
LCD 4 RSD8
LCD 6 ED7
LCD 11 D4 / 12 D5D6 / D5
LCD 13 D6 / 14 D7D3 / D2
LCD 15 A220 Ω üzerinden 5V
5VLDR uç 1
LDR uç 2A1 ve 10 kΩ direncin ilk ucu
10 kΩ direncin diğer ucuGND
HC-SR04 VCC5V
HC-SR04 GNDGND
HC-SR04 TRIGD12
HC-SR04 ECHOD11
D9330 Ω direnç → LED anot (+)
LED katot (−)GND

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. LCD 1 VSS / 5 RW / 16 K ucunu GND noktasına bağla.
  4. LCD 2 VDD ucunu 5V noktasına bağla.
  5. LCD 3 VO ucunu 10 kΩ pot orta uç (dış uçlar 5V ve GND) noktasına bağla.
  6. LCD 4 RS ucunu D8 noktasına bağla.
  7. LCD 6 E ucunu D7 noktasına bağla.
  8. LCD 11 D4 / 12 D5 ucunu D6 / D5 noktasına bağla.
  9. LCD 13 D6 / 14 D7 ucunu D3 / D2 noktasına bağla.
  10. LCD 15 A ucunu 220 Ω üzerinden 5V noktasına bağla.
  11. 5V ucunu LDR uç 1 noktasına bağla.
  12. LDR uç 2 ucunu A1 ve 10 kΩ direncin ilk ucu noktasına bağla.
  13. 10 kΩ direncin diğer ucu ucunu GND noktasına bağla.
  14. HC-SR04 VCC ucunu 5V noktasına bağla.
  15. HC-SR04 GND ucunu GND noktasına bağla.
  16. HC-SR04 TRIG ucunu D12 noktasına bağla.
  17. HC-SR04 ECHO ucunu D11 noktasına bağla.
  18. D9 ucunu 330 Ω direnç → LED anot (+) noktasına bağla.
  19. LED katot (−) ucunu GND noktasına bağla.
  20. Bir yetişkinle güç, GND, parça yönü ve dirençleri bağlantı tablosuna göre tek tek kontrol et.
  21. 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.
  22. Aşağıdaki bağımsız kodu yeni eskize yapıştır ve karta yükle. Seri Monitör gerekiyorsa 9600 baud seç.
  23. 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 — Mini keşif istasyonu
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,7,6,5,3,2);

void show(String a,String b){lcd.setCursor(0,0);lcd.print("                ");lcd.setCursor(0,0);lcd.print(a.substring(0,16));lcd.setCursor(0,1);lcd.print("                ");lcd.setCursor(0,1);lcd.print(b.substring(0,16));}
int light(){return analogRead(A1);}
long distanceCm(){digitalWrite(12,LOW);delayMicroseconds(2);digitalWrite(12,HIGH);delayMicroseconds(10);digitalWrite(12,LOW);unsigned long us=pulseIn(11,HIGH,25000UL);return us==0?-1:long(us/58UL);}
void led(bool on) { digitalWrite(9, on ? HIGH : LOW); }
void setup(){
  Serial.begin(9600);
  lcd.begin(16,2);
  pinMode(12,OUTPUT); pinMode(11,INPUT);
  pinMode(9, OUTPUT);
}
void loop(){
  long d=distanceCm();led(d>=2&&d<20);if((millis()/3000)%2==0)show("Isik",String(light()));else show("Mesafe",d<2?"Yanki yok":String(d)+" cm");delay(200);
}

Kod nasıl çalışır?

LCD’de ışık ve mesafeyi dönüşümlü göster, geçerli yakın nesnede LED ile uyar.
setup() bir kez çalışıp pin yönlerini ve haberleşmeyi hazırlar. loop() içindeki komutlar sürekli tekrarlanır. LCD 4 bit paralel modda çalışır; 7–10 numaralı veri uçları boş kalır. Kontrast görünmezse potu yavaşça çevir. Bu devre I2C adaptörlü ekran için değildir. LCD metinleri karakter seti nedeniyle ASCII yazılmıştır.
LDR üst koldadır: bu bağlantıda aydınlık arttıkça A1 değeri genellikle artar. 10 kΩ ile gerilim bölücü oluşturur. Eşik oda ışığına göre ayarlanır; değer doğrudan lux değildir.
Ultrasonik darbenin gidiş-dönüş süresini ölçeriz. Yaklaşık us/58 dönüşümü santimetre verir. -1 yankı alınamadığını belirtir. Örnekler arasında en az 60 ms bekle; 2 cm altı ve eğimli/yumuşak yüzeyler güvenilmez olabilir. ECHO 5 V olduğundan bu bağlantı Uno içindir.
D9 dijital çıkıştır ve PWM de destekler. Direnç LED akımını sınırlar. LED’in kısa bacağı katottur; kesik kenarını da kontrol et.

Beklenen sonuç

Ekran iki sensör arasında dolaşır; yakın nesne LED’i yakar.

Sıra sende

Yeni bir durum tablosu çiz: aydınlık/karanlık ve yakın/uzak.

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/