Arduino ile Rasgele Led Yakmak(Random)
|Merhabalar…
Bu konuda Arduino kullanarak 9 tane led i herhangi bir sıraya bağlı kalmaksızın nasıl yakabileceğimizi anlatacağım.
Bu işlem için yazılımda “random()” fonksiyonunu kullanacağız. Bu fonksiyon rasgele sayı değerleri üretmeye yarar. Bu üreteceğim sayılar -32767 ile 32767 arasında rasgele sayılar üretmeye yarar. Biz bu sayıların 9′ a bölümünden kalanı kullanacağız. Led bağlantılarını için 9 elemanlı bir dizi oluşturup bu dizinini indexlerini random fonksiyonundan gelen değerleri olarak ayarlayacağız. Hangi index değeri gelmişse o değere sahip Led’ i yakıp söndüreceğiz. Böylece Led’ lerimiz herhangi bir algoritmaya bağlı olmaksızın rasgele yanıp sönmüş olacaklar.
Programda 2 random fonksiyonu kullandım bunun sebebi aynı anda 2 Led’ i yakıp söndürmekdir.
Ledler rastgele yanıp sönme sıklığını ayarlamak için de bir potansiyometre kullanacağız.
Gerekli elemanlar:
- 9 adet Led
- 10k Potansiyometre
- 9 tane 110-220 Ohm direnç
Kodlarımız:
//Rast gele yak söndür const int ledPin[] = {0,2,4,6,8,10,12,14,16}; //Led pinlerimiz const int potPin = A0; //Pot pini int potdeger; int sayi1,sayi2; int i; void setup(){ for(i= 0; i < 9;i++){//Led pinlerimizi çıkış olarak ayarladık pinMode(ledPin[i], OUTPUT); } pinMode(potPin, INPUT); //Pot pini giriş olarak ayarladık } void loop(){ potdeger = analogRead(potPin); //potansiyometreden değeri okuduk /*Random fonksiyonundan okunacak değeri 9 a bölüp kalanı kullanıyoruz. Böylece değerlerimiz 0 ile 8 arası değişmiş olacak.. Bizde bu değeri dizide kullanabileceğiz.. */ sayi1 = random() % 9; //ilk rastgele değer sayi2 = random() % 9; //diğer rastgele değer digitalWrite(ledPin[sayi1], HIGH); //ledi yaktık digitalWrite(ledPin[sayi2], HIGH); delay(potdeger); digitalWrite(ledPin[sayi1], LOW); //ledi söndürdük digitalWrite(ledPin[sayi2], LOW); //Prepared by Oğuzhan Başer }
Devre şemamız:
merhaba projeniz gayert güzel.Size bununla ilgili bir sorum olucaktı. Ben 8 adet led ve her birinin önüne buton koyarak random yakmak istiyorum ama örnegin 2. led yandı ben önündeki butona bastığımda o led sonecek ve x bitanesi yanıcak sekilde yapmak istiyorum bunu adrunio üzerinde nasıl programlayabilirim acaba konu hakkında yardımcı olabilirmisiniz. Şimdiden teşekkürler
Merhaba..
Bu şekilde bir projeyi çok kolay bir şekilde yapabilirsiniz. Ancak butonların girişleri ledlere seri değil arduino pinlerine bağlı olmalı. Aksi taktide butona basılma durumunu kontrol etmekte zorluk yaşarsınız. Buton basılana kadar son durumu sürekli yazdırıp herhangi bir butona bastığınız zaman random fonksiyonu çağırır ve son durumu değiştirebilirsiniz.
Yazılımı yazarken yaşadığınız sorunları bana baser61061@gmail.com üzerinden mail atarak sorabilirsiniz.
İyi çalışmalar..
Sa hayırlı Bayram’lar ben 8 led ın karışık bır sekılde tane tane yanmasını ıstıyorum elimde role var 8li Nasıl bır bağlantı ve yazılım yapmalıyım arduınomda var
Hayırlı bayramlar,
Elinizdeki röleler eğer 5V luk röleler ise bunların tetik bacaklarını fritzing çiziminde ledlerin bağlı olduğu yere bağlayarak röleleri tetikleyebilir ve bu rölelere bağlı olan ledlerin değişmesini sağlıyabilirsiniz.
İyi çalışmalar..
kodlar yanlış pottan alınan değer kullanılmış random ile alakası yok.
Merhaba, keşke önce okumayı öğrenebilsek. Sonra kod yorumlarız. Yinede yorumunuz için teşekkürler. İyi çalışmalar dilerim…