adım adım arduino projeleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Merhabalar,
Eski yazılarılarımızda arduino üzerinde dijital giriş ve çıkışlardan bahsetmiştik.Bu yazımızda ise artık analog dünyasına giriş yapacağız.
Analog nedir ?
Analog değer zamana bağlı olarak gerek voltaj ve akım olarak değişkenlik gösteren bir veridir.Bir sıcaklık sensörü ele alalım bu sensör bize çıkışında analog veri olarak 0-10V aralığında veri veriyor ve sıcaklık sensörümüzün çalışma aralığı da 0 - 80 derece olsun.Bu durumda bu sıcaklık sensörü bize 0 derecede 0 voltaj ve 80 derecede ise 10 V değerini verecektir.Yani bize analog değerlerini gönderecektir.
Elinizde bir arduino var ise modeline göre sayısı değişebilir A0 dan başlayarak devam eden pinleriniz sizin analog değer okuma amacı ile kullanabileceğiniz pinlerdir(bu pinler aynı zaman dijital giriş çıkış birimi olarak da kullanılabilmektedir.)
Gelelim can alıcı soruya ?
Bize analog değer geldi peki bunu arduino nasıl algılar ve bize nasıl iletir?
Bu noktada ADC ler devreye girer.Analog to digital converter yani analog dijital çeviriciler, girişlerine gelen analog değerleri çözünürlükleri doğrultusunda dijital veriye çevirerek bizim kullanabileceğimiz hale getirirler.Burada dikkat edilmesi gereken husus çözünürlükleri doğrultusunda lakin birçok çözünürlüke ADC entegreleri bulunmakta ve arduino uno üzerinde 10 bit çözünürlüğe sahip bir ADC bulunmaktadır.
Peki nedir bu 10 bit olayı ?
Sıcaklık sensörü örneğimizi tekrar ele alaım :)
0-80 derece aralığında bize 0-10V veren sensörümüz adc tarafında okunduğunda 10V olarak 80 derecenin adc nin girişine gelmesi ile birlikte adc bunu 10 bitlik veri düzeninde 1024 olarak bize sunacaktır.Bit değeri ne kadar artar ise analog verinin dijitale çevrimi o kadar hassaslaşır.
Bugun örneğimizde ise bir potansiyometre üzerinden analog girişimize gelen veriyi nasıl işleriz konusunu ele alacağız.
Yukarıdaki şekilde potansiyometre çeşitleri görülmektedir.Potansiyometre ayarlanabilir probu ile direnci değiştirilebilen bir elemandır.Kendisinin bir maksimum değeri vardır ve bu değer ile satın alınılır.Ayarlanabilir probu ile de kedisinin maksimum değerine kadar direnci arttırabilir ya da minimum değere kadar azaltabilirsiniz.
Biz potansiyometre üzeriden 5V değerimizi geçireceğiz ve prob üzerinden verdiğimiz her değişimde analog girişte farklı bir voltaj ve dolayısı ile adc üzerinden farklı dijital değerler okumayı ve yorumlamayı amaçlayacağız.
Yukarıdaki şemada görüldüğü üzere 5V potansiyometre üzerinden geçirildi ve arduinomuzun A0 analog pinine bağlandı.
Arduino Ide analog pine gelen değeri okuyabilmemiz için analogRead() fonksiyonunu bulundurmaktadır.Bu fonksiyon içerisinde okumak istediğimiz analog pin tanımı yazarak, o analog pine gelen verinin dijital halini adc üzerinde 0-1024 değeri aralığında okuyabilir hale geliriz.
Biz bu örneke analogRead(A0); ile veriyi okumaya çalışacağız.
Gelelim kodlarımıza
int sensor_degeri=0;// sensörden gelen verimizi içinde tutacağımız değişken
void setup()
{
Serial.begin(9600);// aynı zamanda verileri seri ekrana bastırıp buradan da izlemeyi amaçlıyoruz.
}
void loop()
{
sensor_degeri=analogRead(A0);// adc üzerinden sensör değerini aldık ve sensor_degeri değişkenine atadık
Serial.print("sensor degeri:");// seri ekrana sensor degeri: yazdırdık
Serial.println(sensor_degeri);//seri ekrana okuduğumuz sensör değerini yazdırdık.
delay(100);//daha iyi görebilmek ve anlık değişimleri göz ardı etmek adına 100ms gecikme tanımladık.
}
Bir sonraki yazımızda piezoelektrik uygulaması ile yeniden karşınızda olacağız.
Eski yazılarılarımızda arduino üzerinde dijital giriş ve çıkışlardan bahsetmiştik.Bu yazımızda ise artık analog dünyasına giriş yapacağız.
Analog nedir ?
Analog değer zamana bağlı olarak gerek voltaj ve akım olarak değişkenlik gösteren bir veridir.Bir sıcaklık sensörü ele alalım bu sensör bize çıkışında analog veri olarak 0-10V aralığında veri veriyor ve sıcaklık sensörümüzün çalışma aralığı da 0 - 80 derece olsun.Bu durumda bu sıcaklık sensörü bize 0 derecede 0 voltaj ve 80 derecede ise 10 V değerini verecektir.Yani bize analog değerlerini gönderecektir.
Elinizde bir arduino var ise modeline göre sayısı değişebilir A0 dan başlayarak devam eden pinleriniz sizin analog değer okuma amacı ile kullanabileceğiniz pinlerdir(bu pinler aynı zaman dijital giriş çıkış birimi olarak da kullanılabilmektedir.)
Gelelim can alıcı soruya ?
Bize analog değer geldi peki bunu arduino nasıl algılar ve bize nasıl iletir?
Bu noktada ADC ler devreye girer.Analog to digital converter yani analog dijital çeviriciler, girişlerine gelen analog değerleri çözünürlükleri doğrultusunda dijital veriye çevirerek bizim kullanabileceğimiz hale getirirler.Burada dikkat edilmesi gereken husus çözünürlükleri doğrultusunda lakin birçok çözünürlüke ADC entegreleri bulunmakta ve arduino uno üzerinde 10 bit çözünürlüğe sahip bir ADC bulunmaktadır.
Peki nedir bu 10 bit olayı ?
Sıcaklık sensörü örneğimizi tekrar ele alaım :)
0-80 derece aralığında bize 0-10V veren sensörümüz adc tarafında okunduğunda 10V olarak 80 derecenin adc nin girişine gelmesi ile birlikte adc bunu 10 bitlik veri düzeninde 1024 olarak bize sunacaktır.Bit değeri ne kadar artar ise analog verinin dijitale çevrimi o kadar hassaslaşır.
Bugun örneğimizde ise bir potansiyometre üzerinden analog girişimize gelen veriyi nasıl işleriz konusunu ele alacağız.
Biz potansiyometre üzeriden 5V değerimizi geçireceğiz ve prob üzerinden verdiğimiz her değişimde analog girişte farklı bir voltaj ve dolayısı ile adc üzerinden farklı dijital değerler okumayı ve yorumlamayı amaçlayacağız.
Yukarıdaki şemada görüldüğü üzere 5V potansiyometre üzerinden geçirildi ve arduinomuzun A0 analog pinine bağlandı.
Arduino Ide analog pine gelen değeri okuyabilmemiz için analogRead() fonksiyonunu bulundurmaktadır.Bu fonksiyon içerisinde okumak istediğimiz analog pin tanımı yazarak, o analog pine gelen verinin dijital halini adc üzerinde 0-1024 değeri aralığında okuyabilir hale geliriz.
Biz bu örneke analogRead(A0); ile veriyi okumaya çalışacağız.
Gelelim kodlarımıza
int sensor_degeri=0;// sensörden gelen verimizi içinde tutacağımız değişken
void setup()
{
Serial.begin(9600);// aynı zamanda verileri seri ekrana bastırıp buradan da izlemeyi amaçlıyoruz.
}
void loop()
{
sensor_degeri=analogRead(A0);// adc üzerinden sensör değerini aldık ve sensor_degeri değişkenine atadık
Serial.print("sensor degeri:");// seri ekrana sensor degeri: yazdırdık
Serial.println(sensor_degeri);//seri ekrana okuduğumuz sensör değerini yazdırdık.
delay(100);//daha iyi görebilmek ve anlık değişimleri göz ardı etmek adına 100ms gecikme tanımladık.
}
Bir sonraki yazımızda piezoelektrik uygulaması ile yeniden karşınızda olacağız.
Merhabalar,
Adım adım arduino köşemizde 2. projemizde bir önceki projemize buton ekleyerek,interrupt yani kesiciler kavramından bahsedeceğiz.
Bir önceki öğreniğimizden farklı olarak bu projemizde 2 nolu pinimizi dijital giriş olarak tanımlayarak bu pine buton bağlayacağız.
Butonumuza bastığımız anda 2 nolu pinimize R6 direnci üzerinden bir voltaj gelecek ve programımız içerisinde interrupt yani kesicimiz aktif hale gelerek ledlerin kontrolünü sağlayacağız.
Yukarıdaki şemayı dikkatli incelerseniz butonun açık olan ucunun 5V diğer ucununda R6 direnci üzerinden 2 nolu pine bağlandığını göreceksiniz.Bu durumda butona bastığımız anca 2 nolu dijital pin üzerinde bir voltaj oluşacak ve bizde butonun konumunu program içerisinde kontrol edebilir hale geleceğiz.Burada R6 direncini kullanmamızdaki amaç 2 nolu pinimizi yüksek gerilimden ve açırı akım çekiminden korumak.Önceki projemizde olduğu gibi her bir ledimizin önüne birer direnç koyarak fazla akım çekiminin önüne geçmeyi amaçlamıştık.
Gelelim interrupt yapısı nedir bu interrupt?
Bir örnek ile açıklamaya çalışalım.Evimizdeki kapı zili mesela.Bizim kapıyı açma eylemimizi programlarımızda kullandığımız bir fonksiyon olarak kabul edelim.Kapı zilinin çalma durumunu da bizim programımızdaki butonun basılma durumu olarak ele alalım.Biz günlük hayatımızda asla kapıda biri var mıdır? diyerek kapıyı sürekli kontrol etmeyiz.Onun yerine kapı zili bizi kapıda birinin olduğu konusunda bizi uyarır ve bizde bu durumu anlayarak o anda ne yapıyorsak (Tv izleme , yemek yeme , uzanma vb.) mevcut işimizi yarıda kesip kapı açma fonksiyonunu yerine getiriyor ve sonrasında yarıda kalan eylemimize devam ediyoruz.
Programlarda da interrupt bu durumu özetler.Herhangi bir koşulda tetiklendiği anda program anlık olarak olduğu yerde durur, interrupt devreye girer yapması gerekeni yapar ve sonrasında program olağan akışına devam eder.
Peki arduinoda nasıl işler interrupt?
Arduino Ide bu konuda bize attachInterrpt() yani programa interrupt bağlama fonksiyonu ile yardımcı oluyor.
Program kodlarımızı açıkladıktan sonra interrupt konusuna yazımızın sonuna doğru biraz daha değineceğiz.
Bizde bu projemizde interrupt ile buton kontrolünü sağlayarak,interrupta bağlayacağımız fonksiyonu yerine getirip ledlerimiz kontrol edeceğiz.
Yukarıdaki resimde bir önceki projemize ek olarak 2 nolu pine butonun bağlanmış halini görmektesiniz.
Gelelim arduino kodlarımıza :
volatile int buton_durum=LOW;
Adım adım arduino köşemizde 2. projemizde bir önceki projemize buton ekleyerek,interrupt yani kesiciler kavramından bahsedeceğiz.
Bir önceki öğreniğimizden farklı olarak bu projemizde 2 nolu pinimizi dijital giriş olarak tanımlayarak bu pine buton bağlayacağız.
Butonumuza bastığımız anda 2 nolu pinimize R6 direnci üzerinden bir voltaj gelecek ve programımız içerisinde interrupt yani kesicimiz aktif hale gelerek ledlerin kontrolünü sağlayacağız.
Yukarıdaki şemayı dikkatli incelerseniz butonun açık olan ucunun 5V diğer ucununda R6 direnci üzerinden 2 nolu pine bağlandığını göreceksiniz.Bu durumda butona bastığımız anca 2 nolu dijital pin üzerinde bir voltaj oluşacak ve bizde butonun konumunu program içerisinde kontrol edebilir hale geleceğiz.Burada R6 direncini kullanmamızdaki amaç 2 nolu pinimizi yüksek gerilimden ve açırı akım çekiminden korumak.Önceki projemizde olduğu gibi her bir ledimizin önüne birer direnç koyarak fazla akım çekiminin önüne geçmeyi amaçlamıştık.
Gelelim interrupt yapısı nedir bu interrupt?
Bir örnek ile açıklamaya çalışalım.Evimizdeki kapı zili mesela.Bizim kapıyı açma eylemimizi programlarımızda kullandığımız bir fonksiyon olarak kabul edelim.Kapı zilinin çalma durumunu da bizim programımızdaki butonun basılma durumu olarak ele alalım.Biz günlük hayatımızda asla kapıda biri var mıdır? diyerek kapıyı sürekli kontrol etmeyiz.Onun yerine kapı zili bizi kapıda birinin olduğu konusunda bizi uyarır ve bizde bu durumu anlayarak o anda ne yapıyorsak (Tv izleme , yemek yeme , uzanma vb.) mevcut işimizi yarıda kesip kapı açma fonksiyonunu yerine getiriyor ve sonrasında yarıda kalan eylemimize devam ediyoruz.
Programlarda da interrupt bu durumu özetler.Herhangi bir koşulda tetiklendiği anda program anlık olarak olduğu yerde durur, interrupt devreye girer yapması gerekeni yapar ve sonrasında program olağan akışına devam eder.
Peki arduinoda nasıl işler interrupt?
Arduino Ide bu konuda bize attachInterrpt() yani programa interrupt bağlama fonksiyonu ile yardımcı oluyor.
Program kodlarımızı açıkladıktan sonra interrupt konusuna yazımızın sonuna doğru biraz daha değineceğiz.
Bizde bu projemizde interrupt ile buton kontrolünü sağlayarak,interrupta bağlayacağımız fonksiyonu yerine getirip ledlerimiz kontrol edeceğiz.
Gelelim arduino kodlarımıza :
volatile int buton_durum=LOW;
int ledler[]={8,9,10,11,12};// ledlerimizin bağlı olduğu pinleri bir dizi şeklinde tanımladık
int sayac=0;//programda ledlerimizi sırası ile yakacağız ve bu sayaç bize yardımcı olacak
int zamanlama=75;// ledlerimizin belirli bir zaman için yanıp sönmesini istiyoruz
int duraksama=500;
void setup()// arduinonun başlangıç değerleri ve pin durumlarının tanımladığı standart fonksiyon
{
for (sayac=0;sayac<5;sayac++)// ledimizin bağlı olduğu herbir pini output olarak tanımlıyoruz
{
pinMode(ledler[sayac],OUTPUT);
}
attachInterrupt(0,led_yak,RISING);// led_sondur fonksiyonu ile interrupt bağlıyoruz
}
void loop()
{
if(buton_durum)
{
for(sayac=0;sayac<5;sayac++)
{
digitalWrite(ledler[sayac],HIGH);// ilgili led yakıldı
delay(zamanlama);
}
delay(duraksama);
for(sayac=0;sayac<5;sayac++)
{
digitalWrite(ledler[sayac],LOW);// ilgili led söndürüldü
delay(zamanlama);
}
delay(duraksama);
}
}
void led_yak()
{
led_durum=!led_durum;
}
Burada dikkat etmemiz gereken husus 2 nolu pine dair bir işlem yapmadık.Peki arduino nasıl anlayacak 2 nolu pinde buton olduğunu?
attachInterrupt(0,led_yak,RISING);
bu fonksiyona dikkat ettiğimizde arduinonun 2 nolu pinine 0 numaralı interrupt tanımlanmıştır ve biz fonksiyonumuzu yazmamızla birlikte 2 nolu pini interrupt olarak kullanacağımızı belirtmiş oluyoruz.
Yine bu fonksiyon içerisinde led_yak fonksiyon adını vererek, interrupt tetiklendiğinde bu fonksiyonun çağrılması gerektiğini söylüyoruz.
Son kısım ise RISING. Burada ise voltajın yükselmeye başladığı anda tetikleme olasını istediğimizi belirtmiş oluyoruz.Bunu FALLING olarak tanımlayarak voltajın düşme anında tetikleme yapmasını da sağlayabilirsiniz.
Programı çalıştırdığınızda ledler butona basmadığınız anda yanmayacaktır.Butona bastığınız anda ise interrupt tetiklenecek ve sonrasında led_yak fonksiyonu görevini yerine getirerek ledlerin sırası ile yanmasını sağlayacaktır.
Bir sonraki yazımıda arduino ile analog okuma ve çıkış işlemleri nasıl yapılıyor bunlardan bahsedeceğiz.
Merhabalar,
Bu bölümde arduinonun genel amaçlı dijital giriş çıkış pinlerini kullanarak sıralı led yakma projesi gerçekleştireceğiz.
İhtiyacımız olan malzemeler :
1 adet arduino uno
birkaç adet led
birkaç adet min 175 ohm direnç
1 adet breadboard
yeterli miktarda atlama kabloları
Yukarıdaki şemada arduino ile ledlerimizin bağlatıları yer almaktadır.Dirençlerimizi arduino tarafından ledlerin fazla akım çekmesini engellemek amacı ile kullanıyoruz.Dijital pinlerimizden 8 den 12 ye kadar olan kısmı çıkış olarak atayacağız ve ledlerimizi bu dijital çıkışlar üzerinden kontrol edeceğiz.
Peki nedir dijital giriş çıkış?
Dijital çıkış programlama yapısı içerisinde çıkış olarak tanımladığınız pinin, sizin programlama içerisinde high (1) ya da low(0) yaptığınız anda çıkış olarak bir voltaj verip vermemesi durumudur.
Yine eğer ki ilgili pinimiz giriş olarak tanımladı ise bu durumda da girişi programsal olarak okuruz ve voltaj gördüğümüz anda logic 1 göremediğimiz anda ise logic 0 olarak pin durumunu almış oluruz.
Arduino genel olarak bazı pinlerini bizlere pwm olarak sunabildiği gibi (PWM nedir ileri zaman konularımızda işleyeceğiz) bu pinleri ister giriş, istersek de çıkış olarak tanımlamamıza olanak sağlamaktadır.
Peki bunu nasıl sağlarız?
Bir örnekle ele alalım :
8 nolu pinimizi dijital çıkış olarak atamak istiyoruz.Yani biz programda HIGH ol dediğimizde çıkışında voltaj versin,LOW ol dediğimizde ise çıkışında voltaj oluşmasın
Arduino bize bunun kontrolünü sağlamak için pinMode() fonksiyonunu veriyor.
PinMode(8,OUTPU);// 8 nolu pini output yap
PinMode(8,INPUT); // 8 nolu pini input yap
Peki input ve outpu olarak bir pinin nasıl tanımlanacağını öğrendik.Peki biz bu pinleri program içerisinde nasıl kontrol ediyoruz?
Yine arduino ide bize digitalWrite(); ve digitalRead(); fonsiyonları ile yardımcı oluyor.
digitalWrite(8,HIGH); // 8 nolu çıkış pinine 1 yazdır yani o pine voltaj ver
digitalWrite(8,LOW);// 8 nolu çıkış pinine 0 yazdır yani voltajı kes
digitalRead(8);// 8 nolu dijital giriş pinini oku
Burada dikkat edilmesi gereken dijital giriş pini okunurken digitalRead(); fonksiyonu size o pinin durumunu söyler.Buda ne demek siz buradan aldığınız veriyi bir değişken içerisine atarak kullanabilirsiniz.Bunu bir sonraki yazımızda bu yazımızdaki örneğimize buton kontrolü ekleyerek açıklayacağız.
Diğer dikkat edilmesi gereken husus ise siz bir pini giriş ya da çıkış olarak ayarlamak için void setup() fonksiyonu içerisinde pininizin durumunu pinMode() fonksiyonu ile belirtmeyi unutmamalısınız.
Bizim projemize gelecek olursak, biz pinlerimizi dijital çıkış olarak kullanacağız ve ledlerimizin kontrolünü sağlayacağız.
Yukarıdaki şema bize arduinonun fiziksel olarak bağlantı durumunu göstermektedir.
Gelelim kodlarımıza
int ledler[]={8,9,10,11,12};// ledlerimizin bağlı olduğu pinleri bir dizi şeklinde tanımladık
int sayac=0;//programda ledlerimizi sırası ile yakacağız ve bu sayaç bize yardımcı olacak
int zamanlama=75;// ledlerimizin belirli bir zaman için yanıp sönmesini istiyoruz
void setup()// arduinonun başlangıç değerleri ve pin durumlarının tanımladığı standart fonksiyon
{
for (sayac=0;sayac<5;sayac++)// ledimizin bağlı olduğu herbir pini output olarak tanımlıyoruz
{
pinMode(ledler[sayac],OUTPUT);
}
}
void loop()
{
for(sayac=0;sayac<5;sayac++)
{
digitalWrite(ledler[sayac],HIGH);// ilgili led yakıldı
delay(zamanlama);
digitalWrite(ledler[sayac],LOW);// ilgili led söndürüldü
delay(zamanlama);
}
}
Yukarıdaki örnekte her 150ms de bir (75 ms yanık kalacak,75ms sönük kalacak) 8 nolu pinden 12 nolu pine kadar olan ledlerimiz sırası ile yanıp sönecektir ve void loop bu durumun sürekliliğini sağlayacaktır.
Bir sonraki yazımızda bu örneğimize nasıl buton kontrolü ekleyeceğimizi göstereceğiz.
Bu bölümde arduinonun genel amaçlı dijital giriş çıkış pinlerini kullanarak sıralı led yakma projesi gerçekleştireceğiz.
İhtiyacımız olan malzemeler :
1 adet arduino uno
birkaç adet led
birkaç adet min 175 ohm direnç
1 adet breadboard
yeterli miktarda atlama kabloları
Yukarıdaki şemada arduino ile ledlerimizin bağlatıları yer almaktadır.Dirençlerimizi arduino tarafından ledlerin fazla akım çekmesini engellemek amacı ile kullanıyoruz.Dijital pinlerimizden 8 den 12 ye kadar olan kısmı çıkış olarak atayacağız ve ledlerimizi bu dijital çıkışlar üzerinden kontrol edeceğiz.
Dijital çıkış programlama yapısı içerisinde çıkış olarak tanımladığınız pinin, sizin programlama içerisinde high (1) ya da low(0) yaptığınız anda çıkış olarak bir voltaj verip vermemesi durumudur.
Yine eğer ki ilgili pinimiz giriş olarak tanımladı ise bu durumda da girişi programsal olarak okuruz ve voltaj gördüğümüz anda logic 1 göremediğimiz anda ise logic 0 olarak pin durumunu almış oluruz.
Arduino genel olarak bazı pinlerini bizlere pwm olarak sunabildiği gibi (PWM nedir ileri zaman konularımızda işleyeceğiz) bu pinleri ister giriş, istersek de çıkış olarak tanımlamamıza olanak sağlamaktadır.
Peki bunu nasıl sağlarız?
Bir örnekle ele alalım :
8 nolu pinimizi dijital çıkış olarak atamak istiyoruz.Yani biz programda HIGH ol dediğimizde çıkışında voltaj versin,LOW ol dediğimizde ise çıkışında voltaj oluşmasın
Arduino bize bunun kontrolünü sağlamak için pinMode() fonksiyonunu veriyor.
PinMode(8,OUTPU);// 8 nolu pini output yap
PinMode(8,INPUT); // 8 nolu pini input yap
Peki input ve outpu olarak bir pinin nasıl tanımlanacağını öğrendik.Peki biz bu pinleri program içerisinde nasıl kontrol ediyoruz?
Yine arduino ide bize digitalWrite(); ve digitalRead(); fonsiyonları ile yardımcı oluyor.
digitalWrite(8,HIGH); // 8 nolu çıkış pinine 1 yazdır yani o pine voltaj ver
digitalWrite(8,LOW);// 8 nolu çıkış pinine 0 yazdır yani voltajı kes
digitalRead(8);// 8 nolu dijital giriş pinini oku
Burada dikkat edilmesi gereken dijital giriş pini okunurken digitalRead(); fonksiyonu size o pinin durumunu söyler.Buda ne demek siz buradan aldığınız veriyi bir değişken içerisine atarak kullanabilirsiniz.Bunu bir sonraki yazımızda bu yazımızdaki örneğimize buton kontrolü ekleyerek açıklayacağız.
Diğer dikkat edilmesi gereken husus ise siz bir pini giriş ya da çıkış olarak ayarlamak için void setup() fonksiyonu içerisinde pininizin durumunu pinMode() fonksiyonu ile belirtmeyi unutmamalısınız.
Bizim projemize gelecek olursak, biz pinlerimizi dijital çıkış olarak kullanacağız ve ledlerimizin kontrolünü sağlayacağız.
Yukarıdaki şema bize arduinonun fiziksel olarak bağlantı durumunu göstermektedir.
Gelelim kodlarımıza
int ledler[]={8,9,10,11,12};// ledlerimizin bağlı olduğu pinleri bir dizi şeklinde tanımladık
int sayac=0;//programda ledlerimizi sırası ile yakacağız ve bu sayaç bize yardımcı olacak
int zamanlama=75;// ledlerimizin belirli bir zaman için yanıp sönmesini istiyoruz
void setup()// arduinonun başlangıç değerleri ve pin durumlarının tanımladığı standart fonksiyon
{
for (sayac=0;sayac<5;sayac++)// ledimizin bağlı olduğu herbir pini output olarak tanımlıyoruz
{
pinMode(ledler[sayac],OUTPUT);
}
}
void loop()
{
for(sayac=0;sayac<5;sayac++)
{
digitalWrite(ledler[sayac],HIGH);// ilgili led yakıldı
delay(zamanlama);
digitalWrite(ledler[sayac],LOW);// ilgili led söndürüldü
delay(zamanlama);
}
}
Yukarıdaki örnekte her 150ms de bir (75 ms yanık kalacak,75ms sönük kalacak) 8 nolu pinden 12 nolu pine kadar olan ledlerimiz sırası ile yanıp sönecektir ve void loop bu durumun sürekliliğini sağlayacaktır.
Bir sonraki yazımızda bu örneğimize nasıl buton kontrolü ekleyeceğimizi göstereceğiz.