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.
Malzeme listesi
- 1 × Arduino Uno R3
- 1 × USB veri kablosu
- 1 × breadboard
- Yeterli sayıda jumper kablo
- 1 × HD44780 uyumlu LCD1602 (paralel)
- 1 × 10 kΩ kontrast potansiyometresi
- 1 × 220 Ω arka ışık direnci
- 1 × LDR
- 1 × 10 kΩ direnç
- 1 × HC-SR04 ultrasonik sensör
- 1 × LED
- 1 × 330 Ω direnç
Bağlantı tablosu
| Başlangıç | Bağlantı |
|---|---|
| LCD 1 VSS / 5 RW / 16 K | GND |
| LCD 2 VDD | 5V |
| LCD 3 VO | 10 kΩ pot orta uç (dış uçlar 5V ve GND) |
| LCD 4 RS | D8 |
| LCD 6 E | D7 |
| LCD 11 D4 / 12 D5 | D6 / D5 |
| LCD 13 D6 / 14 D7 | D3 / D2 |
| LCD 15 A | 220 Ω üzerinden 5V |
| 5V | LDR uç 1 |
| LDR uç 2 | A1 ve 10 kΩ direncin ilk ucu |
| 10 kΩ direncin diğer ucu | GND |
| HC-SR04 VCC | 5V |
| HC-SR04 GND | GND |
| HC-SR04 TRIG | D12 |
| HC-SR04 ECHO | D11 |
| D9 | 330 Ω direnç → LED anot (+) |
| LED katot (−) | GND |
Adım adım yapalım
- Önce bağlantı görselini ve malzeme listesini oku. 6–8 yaş grubunda bir yetişkin devreyi kurarken çocuk komutları ve sonucu takip eder.
- USB ve harici beslemeyi çıkar. Breadboard güç raylarının bağlı/ayrık bölümlerini kontrol et.
- LCD 1 VSS / 5 RW / 16 K ucunu GND noktasına bağla.
- LCD 2 VDD ucunu 5V noktasına bağla.
- LCD 3 VO ucunu 10 kΩ pot orta uç (dış uçlar 5V ve GND) noktasına bağla.
- LCD 4 RS ucunu D8 noktasına bağla.
- LCD 6 E ucunu D7 noktasına bağla.
- LCD 11 D4 / 12 D5 ucunu D6 / D5 noktasına bağla.
- LCD 13 D6 / 14 D7 ucunu D3 / D2 noktasına bağla.
- LCD 15 A ucunu 220 Ω üzerinden 5V noktasına bağla.
- 5V ucunu LDR uç 1 noktasına bağla.
- LDR uç 2 ucunu A1 ve 10 kΩ direncin ilk ucu noktasına bağla.
- 10 kΩ direncin diğer ucu ucunu GND noktasına bağla.
- HC-SR04 VCC ucunu 5V noktasına bağla.
- HC-SR04 GND ucunu GND noktasına bağla.
- HC-SR04 TRIG ucunu D12 noktasına bağla.
- HC-SR04 ECHO ucunu D11 noktasına bağla.
- D9 ucunu 330 Ω direnç → LED anot (+) noktasına bağla.
- LED katot (−) ucunu GND noktasına bağla.
- Bir yetişkinle güç, GND, parça yönü ve dirençleri bağlantı tablosuna göre tek tek kontrol et.
- 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.
- Aşağıdaki bağımsız kodu yeni eskize yapıştır ve karta yükle. Seri Monitör gerekiyorsa 9600 baud seç.
- 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
- Kod yüklenmiyorsa kart, port ve USB veri kablosunu kontrol et.
- Gücü çıkarıp her bağlantıyı tablodaki satırla eşleştir; ortak GND olmadan sinyaller güvenilir olmayabilir.
- Beklenen sonuçla gerçek sonucu karşılaştır. Sensör eşikleri bulunduğun ortama göre ayar ister.
- LED yanmıyorsa seri direnci ve anot/katot yönünü kontrol et; LED içermeyen projede sensörün pin etiketlerini incele.