↯ Robotik KodlamaTüm projeler

Mini akıllı masa lambası

Butonla otomatik mod seç, LDR ile karanlığı algıla ve düğmeyle parlaklığı ayarla.

13+ yaş · 35 dakika ·

İnteraktif atölyede aç →

Neler öğreneceğiz?

Butonla otomatik mod seç, LDR ile karanlığı algıla ve düğmeyle parlaklığı ayarla.
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.
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.
Orta uç 0–5 V arasında değişir. Uno 10 bit ADC ile yaklaşık 0–1023 değer üretir; dış uçlar yer değiştirirse dönüş yönü ters olur.
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 akıllı masa lambası — 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. 1 × LDR
  7. 1 × 10 kΩ direnç
  8. 1 × 10 kΩ potansiyometre
  9. 1 × LED
  10. 1 × 330 Ω direnç

Bağlantı tablosu

BaşlangıçBağlantı
D2Butonun bir kontağı
Buton karşı kontağıGND
5VLDR uç 1
LDR uç 2A1 ve 10 kΩ direncin ilk ucu
10 kΩ direncin diğer ucuGND
Potansiyometre dış uç 15V
Potansiyometre dış uç 2GND
Potansiyometre orta uçA0
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. D2 ucunu Butonun bir kontağı noktasına bağla.
  4. Buton karşı kontağı ucunu GND noktasına bağla.
  5. 5V ucunu LDR uç 1 noktasına bağla.
  6. LDR uç 2 ucunu A1 ve 10 kΩ direncin ilk ucu noktasına bağla.
  7. 10 kΩ direncin diğer ucu ucunu GND noktasına bağla.
  8. Potansiyometre dış uç 1 ucunu 5V noktasına bağla.
  9. Potansiyometre dış uç 2 ucunu GND noktasına bağla.
  10. Potansiyometre orta uç ucunu A0 noktasına bağla.
  11. D9 ucunu 330 Ω direnç → LED anot (+) noktasına bağla.
  12. LED katot (−) ucunu GND noktasına bağla.
  13. Bir yetişkinle güç, GND, parça yönü ve dirençleri bağlantı tablosuna göre tek tek kontrol et.
  14. 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.
  15. Aşağıdaki bağımsız kodu yeni eskize yapıştır ve karta yükle. Seri Monitör gerekiyorsa 9600 baud seç.
  16. 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 akıllı masa lambası

bool enabled=true;
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;}
int light(){return analogRead(A1);}
int knob(){return analogRead(A0);}
void led(bool on) { digitalWrite(9, on ? HIGH : LOW); }
void setup(){
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(9, OUTPUT);
}
void loop(){
  if(click())enabled=!enabled;analogWrite(9,enabled&&light()<450?map(knob(),0,1023,0,255):0);delay(10);
}

Kod nasıl çalışır?

Butonla otomatik mod seç, LDR ile karanlığı algıla ve düğmeyle parlaklığı ayarla.
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.
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.
Orta uç 0–5 V arasında değişir. Uno 10 bit ADC ile yaklaşık 0–1023 değer üretir; dış uçlar yer değiştirirse dönüş yönü ters olur.
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ç

Etkin modda ve karanlıkta LED düğmenin belirlediği parlaklıkta yanar.

Sıra sende

Mod durumunu seri ekranda göster.

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/