Merhaba genç mucitler! Güneşin batışını ya da odadaki en karanlık köşeyi bulabilen akıllı bir robot tasarlamaya ne dersiniz? Bugün laboratuvarımızda iki adet LDR (ışık sensörü) ve bir servo motor kullanarak harika bir mekanizma kuruyoruz. Sol taraftaki gözümüz karanlıkta kalırsa servo motorumuz sola dönüyor, sağ taraftaki kararırlarsa sağa yöneliyor. Üstelik devredeki buzzer'larımız da duruma göre bize sesli uyarı veriyor! Hazırsanız karanlığı avlamaya başlayalım!
Gerekli malzemeler
- 1 adet Arduino Uno
- 1 adet Breadboard (Devre tahtası)
- 2 adet LDR (Işığa Duyarlı Direnç / Sensör)
- 2 adet 10k Ohm Direnç
- 2 adet Buzzer (Ses uyarıları için)
- 1 adet SG90 Servo Motor
- Yeteri kadar Jumper Kablo
Adım adım yapım
1. 1. Bölüm
Yapım anlatımı Şemamızı adım adım inceleyerek kuralım. İlk olarak breadboard üzerine sol ve sağ tarafa birer tane LDR sensörümüzü yerleştirelim. LDR'lerin birer bacaklarını 5V güç hattına bağlayalım. Diğer bacaklarına 10k dirençler bağlayarak GND (eksi) hattına indirelim. Sensörlerin okuma yapabilmesi için; sol LDR ile direncinin birleştiği orta noktadan sarı bir kablo çekerek Arduino'nun A0 pinine bağlayalım. Sağ LDR'nin orta noktasından gelen pembe/mor kabloyu ise Arduino'nun A1 pinine takalım. Şimdi iki adet buzzer'ımızı breadboard'a yerleştirelim. Buzzer'ların artı uçlarını Arduino'nun dijital pinlerine (örneğin sol buzzer 11, sağ buzzer 10 pinine), eksi uçlarını ise GND hattına bağlayalım. Sırada robotumuzun kafasını hareket ettirecek olan Servo Motorumuz var. Servo motorun kahverengi kablosunu GND'ye, kırmızı kablosunu 5V'a, turuncu sinyal kablosunu ise Arduino'nun 9 numaralı pinine bağlayalım. Tüm kablolama bittiğine göre aşağıdaki akıllı kodu Arduino programınıza kopyalayabilir ve yükleyebilirsiniz!
Proje kodu
Kodu Arduino IDE'ye aktarın. Pin numaralarını kendi devrenize göre kontrol ettikten sonra karta yükleyin.
#include <Servo.h>
Servo fenerServosu;
const int ldrSol = A0; // Sol LDR sensörü A0 pininde
const int ldrSag = A1; // Sağ LDR sensörü A1 pininde
const int ledPin = 8; // Fener / LED pini
const int servoPin = 9; // Servo motor pini
void setup() {
fenerServosu.attach(servoPin);
fenerServosu.write(90); // Başlangıçta fener tam ortada (90 derece) dursun
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int solDeger = analogRead(ldrSol);
int sagDeger = analogRead(ldrSag);
Serial.print("Sol: ");
Serial.print(solDeger);
Serial.print(" | Sag: ");
Serial.println(sagDeger);
// Eğer sol sensör değeri 50'nin altına inerse (Sol taraf kararırlasa)
if (solDeger < 50) {
digitalWrite(ledPin, HIGH); // Feneri yak
fenerServosu.write(135); // Servo motoru sola çevir (135 derece)
}
// Eğer sağ sensör değeri 50'nin altına inerse (Sağ taraf kararırlasa)
else if (sagDeger < 50) {
digitalWrite(ledPin, HIGH); // Feneri yak
fenerServosu.write(45); // Servo motoru sağa çevir (45 derece)
}
// Her iki taraf da aydınlıksa
else {
digitalWrite(ledPin, LOW); // Feneri söndür
fenerServosu.write(90); // Orta konuma dön
}
delay(50); // Sistem kararlılığı için kısa bir mola
}

Yorumlar
İlk yorumu siz yazın.