Arduino da değişkenler ve yeni led projeleri
Selamınaleyküm
Bu bölümde hem yeni led projeleri, hemde arduino yazılım temellerinden biri olan değişkenlerden bahsetmek istiyorum. ilk videolarda biraz acemilik biraz da heyecan sebebiyle hemen projelere başladım, ancak başta da söylediğim bu bir eğitim serisi değil kendi öğrenme maceram olduğu için nasıl öğreniyorsam onu paylaşıyorum, ben php öğrenirken Emrah Yüksel’in videolarını izlerdim ve o sürekli “ Göç Yolda Düzelir ” derdi , sanırım bu öğrenme macerası da öyle olacak J.
Arduino ile ilgili dökümanlara kendi sitesinden yada https://yadi.sk/i/K1gOJDh5Fn0XaA adresin de ki türkçe pdf dosyasından ulaşabilirsiniz.
Arduino ideyi ilk açtığımızda karşımıza aşağıdaki kodlar çıkar
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Void setup() bölümünde yazdığımız her şey bir kere çalıştırılır demiştik, bu bir kez çalıştırma olayı aklınızın bir köşesinde dursun zira çok lazım oluyor. Bir değişken tanıladığınızda burada tanımlamak en yukarda tanımlamak arasında bazı farklar çıkıyor yada led projesinde döngüye girmeden önce bir defa tüm ledleri yakıp sonra döngüye girmek istediğinizde kodlarınızı buraya yazıyorsunuz. Java yada diğer dillerde kodlarken tanımladığımız değişkenlerin veri tipleri burada da karşımıza çıkıyor, hemen hemen tüm yazılım dillerinde benzer veri türleri var, örneğin arduino da sayısal veri tipi olarak “int” kullanılıyor diğer veri tiplerini ve yazılımın detaylarını yukarıda paylaştığım dosyayı indirerek öğrenebilirsiniz, burada anlatamayacağım kadar çok detay var merak edeler inceleyebilirler.
void loop() kısmı bir sonsuz döngüdür ve içindeki kodlar sürekli çalışır burada değişken tanımlarsanız her döngüde en başta ne hangi değer atandıysa o değere geri döner . bu kurallara dikkat ederseniz sağlıklı projeler çıkarabilirsiniz.
Bu yazımızda yine ledlerle çalışacağız ancak bu sefer hem örneklerimiz hem de malzemelerimiz biraz fazlaca olacak, ayrıca bu sefer sanal ortam yerine gerçek ortamda kod yazıp test edeceğiz .
Gelelim kullanacağımız malzemelere ve yapacağımız işlere.
Malzemler
- 5 adet led
- 5 adet direnç (1 ohm dan büyük seçmemeye dikkat edin ledler lazım olacak J )
- 6 adet erkek-erkek jumper kablo
- 1 adet breadboard
Kodlar
İlk serimizde 5 adet led ile ortamı ışıklandıralım birkaç farklı şekilde yakıp söndürelim ki elimiz alışsın. Kodları da ekliyorum ki yazmaya üşenenler kullanabilir. Videodan kurulumu ve kodları takip edebilirsiniz.
Tüm ledlerin yanıp sönmesi için gereken kodlar
int led = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
void setup() {
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop() {
digitalWrite(led, 1);
digitalWrite(led1, 1);
digitalWrite(led2, 1);
digitalWrite(led3, 1);
digitalWrite(led4, 1);
delay(500);
digitalWrite(led, 0);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
digitalWrite(led3, 0);
digitalWrite(led4, 0);
delay(500);
}
Tüm Ledlerin soldan sağa yanıp sönmesi için gereken kodlar
int led = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
void setup() {
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop() {
digitalWrite(13, 1);
delay(500);
digitalWrite(13, 0);
delay(500);
digitalWrite(12, 1);
delay(500);
digitalWrite(12, 0);
delay(500);
digitalWrite(11, 1);
delay(500);
digitalWrite(11, 0);
delay(500);
digitalWrite(10, 1);
delay(500);
digitalWrite(10, 0);
delay(500);
digitalWrite(9, 1);
delay(500);
digitalWrite(9, 0);
delay(500);
}
Tüm Ledlerin sağdan sola yanıp sönmesi için gereken kodlar
int led = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
void setup() {
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop() {
digitalWrite(9, 1);
delay(500);
digitalWrite(9, 0);
delay(500);
digitalWrite(10, 1);
delay(500);
digitalWrite(10, 0);
delay(500);
digitalWrite(11, 1);
delay(500);
digitalWrite(11, 0);
delay(500);
digitalWrite(12, 1);
delay(500);
digitalWrite(12, 0);
delay(500);
digitalWrite(13, 1);
delay(500);
digitalWrite(13, 0);
delay(500);
}
Tüm Ledlerin içten dışa dıştan içe yanıp sönmesi için gereken kodlar
int led = 13;
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
void setup() {
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led, 1);
digitalWrite(led1, 1);
digitalWrite(led2, 1);
digitalWrite(led3, 1);
digitalWrite(led4, 1);
delay(500);
digitalWrite(led, 0);
digitalWrite(led1, 0);
digitalWrite(led2, 0);
digitalWrite(led3, 0);
digitalWrite(led4, 0);
delay(500);
}
void loop() {
digitalWrite(led2, 1); // led2 5 ms yanıyor 5 ms sönüyor
delay(500);
digitalWrite(led2, 0);
delay(500);
digitalWrite(led3, 1);
digitalWrite(led1, 1); // led3 ve led1 5 ms yanıyor 5 ms sönüyor
delay(500);
digitalWrite(led1, 0);
digitalWrite(led3, 0);
delay(500);
digitalWrite(led, 1);
digitalWrite(led4, 1);
delay(500);
digitalWrite(led, 0);
digitalWrite(led4, 0);
delay(500);
digitalWrite(led3, 1);
digitalWrite(led1, 1);
delay(500);
digitalWrite(led1, 0);
digitalWrite(led3, 0);
delay(500);
}
Karaşimşek led devresi için gereken kodlar
int aled = 13;
int bled = 12;
int cled = 11;
int dled = 10;
int eled = 9;
void setup() {
pinMode (aled, OUTPUT);
pinMode (bled, OUTPUT);
pinMode (cled, OUTPUT);
pinMode (dled, OUTPUT);
pinMode (eled, OUTPUT);
}
void loop() {
digitalWrite (aled, HIGH);
delay (50);
digitalWrite (bled, HIGH);
delay (50);
digitalWrite (aled, LOW);
delay (50);
digitalWrite (cled, HIGH);
delay (50);
digitalWrite (bled, LOW);
delay (50);
digitalWrite (dled, HIGH);
delay (50);
digitalWrite (cled, LOW);
delay (50);
digitalWrite (eled, HIGH);
delay (50);
digitalWrite (dled, LOW);
delay (50);
digitalWrite (dled, HIGH);
delay (50);
digitalWrite (eled, LOW);
delay (50);
digitalWrite (cled, HIGH);
delay (50);
digitalWrite (dled, LOW);
delay (50);
digitalWrite (bled, HIGH);
delay (50);
digitalWrite (cled, LOW);
delay (50);
digitalWrite (aled, HIGH);
delay (50);
digitalWrite (bled, LOW);
delay (50);
digitalWrite (aled, LOW);
}
Trafik ışığı led devresi için gereken kodlar
int ledDelay = 10000; // geçişler arasındaki gecikmeye değer atıyoruz
int kirmiziPin = 11;
int sariPin = 10;
int yesilPin = 9; // ledleri çıkış olarak tanımlıyoruz
void setup()
{
pinMode(kirmiziPin, OUTPUT);
pinMode(sariPin, OUTPUT);
pinMode(yesilPin, OUTPUT);
}
void loop() {
digitalWrite(kirmiziPin, HIGH); // öncelikle kırmızı led yanıyor
delay(ledDelay); // 10 saniye bekler
digitalWrite(sariPin, HIGH); // sarı led yanar
delay(2000); // 2 saniye bekler
// şimdi yeşil ledi yakarak kırmızı ve sarı ledi söndürüyoruz
digitalWrite(yesilPin, HIGH);
digitalWrite(kirmiziPin, LOW);
digitalWrite(sariPin, LOW);
delay(ledDelay);
// sarı ledi yakıp yeşil ledi söndürüyoruz
digitalWrite(sariPin, HIGH);
digitalWrite(yesilPin, LOW);
delay(2000);
digitalWrite(sariPin, LOW); // sarı led söner ve döngü baştan başlar
}