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:

6 Comments

Add a Comment

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