Basit Öğrenen Led, Arduino Kodu

Arduino benim için öyle bir kapı araladı ki şu benzetmeyi yapabilirim:
> Gutenberg zamanında internete açılmış gibiyim 🙂

Haliyle, Arduino’ya sarmış durumdayım ve Ayhan da fena kaptırdığı için youtube’taki projeleri açıyor, kendi çapımızda benzerlerini yapıyoruz. Mümkünse üzerine bir şeyler ilave ederek kendi küçük projelerimizi üretiyoruz.

Arduino atmosferinde hayli güzel bir proje var ancak içlerinden birisi farklı bir bakış açısına sahip: Kişinin yaptıklarını öğrenip aynen tekrar ediyor:

 

SD kart ve Motor siparişleri henüz gelmediği için ne yapabiliriz diye düşündük. Ve en azından, LDR-Işık sensöründen gelen değerleri, array bir dizi içine kayıt edebilir ve sonrasından buradan okutarak, yaptıklarımızı tekrar etmesini sağlayabiliriz diye düşündük.

 


 

A0’a LDR-ışık sensörü, 7’ye buton ve 3’e led bağlayın.
Butona basılı tutarken, LDR üzerine düşen ışığı değiştirin,  atıyorum “Dıı dıı Dıııııt, dı dı dııı, dııııııııııııt” ritmine göre üzerini kapatabilirsiniz.

Butondan elinizi çektiğinizde, Led,  sonsuza kadar minik bestenize göre yanıp sönecektir 😉

“`
// 35 defa kayıt almak için “kayit” isminde bir dizi atıyoruz.
int kayit[35];

// tam sayı olarak kullanacağımız değişkenleri atıyoruz.
int x, b, say, led_deger, i ;

void setup() {
// Değeri ekranda da görmek için serial haberleşmeyi başlatıyoruz.
Serial.begin(9600);

// A0’a ışık sensörü, 7’ye buton ve 3’e led bağlıyoruz.
pinMode(A0, INPUT); pinMode(7, INPUT); pinMode(3, OUTPUT);
}

void loop()
{
// Butonun durumunu okutuyoruz
b = digitalRead(7);
Serial.print(“Buton durumu: “); Serial.println(b);

// basılı olduğu durum için ne yapacağını söylüyoruz
if (b == 1) {
Serial.print(“Buton durumu: “); Serial.println(b);

// “kayit” dizisinin her bir değişkenini LDR’den gelen değere eşitleyeceğiz.
for (int say = 1; say <= 35; say++) {
x = analogRead(A0); // LDR’deki ışık şiddetini okuduk

kayit[say] = x; // butona basılı iken, ışık sensörü üzerine düşen ışığı değiştiriyoruz.
// bunu 35 defa kayıt edecek, kayit[1] = 823 ve kayit[2]= 453 tarzında kayıtlar oluşacak.
Serial.print(say); Serial.print(“. Işık değeri: “); Serial.println(x);

led_deger = map(x, 50, 400, 0, 255); // LDR sesöründeki değere göre, ledin yanma şiddetini ayarlıyoruz.

analogWrite(3, led_deger);

delay(250);
}

}

if (b == 0) {
Serial.print(“Buton durumu: “); Serial.println(b);

// biraz önce “kayit” dizi içine kaydettiğimiz değerleri yeniden okutup, led’e gönderiyoruz.
for (int say = 1; say <= 35; say++) {

x = kayit[say]; // her döndüde x= 1. kayıt değeri, x = 2. kayıt değeri … olacak
Serial.print(say); Serial.print(“. kayıtlı değer: “); Serial.println(x);

led_deger = map(x, 50, 400, 0, 255);

analogWrite(3, led_deger);

delay(250);
}

}

}

“`

Basit de olsa, Türkçe kaynak sayısı görece daha az olduğu için kodları paylaşıyorum. CopyLeft rahatlığında dileğiniz gibi kullanabilirsiniz 😉

 


Görsel: Arduino.cc,

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir