Arduino Mega’da 12 LED’li Analog Çıkış
Arduino Mega’da 12 LED’li Analog Çıkış. Bu örnek, bu kartın PWM özellikli dijital pinlerinin sayısından yararlanarak, Arduino veya Genuino Mega kartında birer birer aşağı ve yukarı 12 LED kalkar.
Gerekli Donanım
- Arduino veya Genuino Mega Kart
- 12 adet Kırmızı LED
- 12 adet 220 ohm direnç
- Bağlantı telleri
- breadboard
“Arduino Mega 2560 , ATmega2560 tabanlı bir mikro kontrol panosu. 54 adet dijital giriş / çıkış pini (15’i PWM çıkışı olarak kullanılabilir), 16 analog giriş, 4 adet UART (donanım seri portu), 16 MHz kristal osilatör, USB bağlantısı, güç girişi, ICSP başlığı, ve bir sıfırlama düğmesi. Mikrodenetleyiciyi desteklemek için gereken her şeyi içerir; Başlamak için bir USB kablosuyla bir bilgisayara bağlayın ya da AC-DC adaptörü veya bataryayla çalıştırın. Mega 2560 kurulu, Uno ve eski kurullar Duemilanove veya Diecimila için tasarlanan çoğu kalkanla uyumludur.”
Devre
12 LED’lerin daha uzun, pozitif bacaklarını (anotlar) 2-13 ila 220 ohm akım sınırlama dirençleri dijital pinlerine bağlayın. Kısa, negatif bacakları (katotlar) toprağa bağlayın.
Kod
Aşağıdaki kodun setup()
işlevinde, çıktılar olarak Mega’nin 2-13 dijital pinlerini atamak for()
bir for()
döngüsü kullanılır. Ardından, aşağıdaki programın loop()
işlevinde, for()
döngüleri for()
iç içe geçmiş bir trio kullanılır.
Bu döngülerden ilki,
for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++)
LED’lerin her birinden en küçük pimden en yükseğe doğru tek tek hareket eder. Bu döngü bir pimden diğerine geçmeden önce iki şey yapılmalıdır. İlk olarak, bu LED kodlarını kullanarak bireysel LED’i aydınlatın:
for (int brightness = 0; brightness < 255; brightness++) {
analogWrite(thisPin, brightness);
delay(2);
}
Yukarıdaki döngü boyunca her geçişte, değişken parlaklık bir nokta kadar artar ve bu değer, ana döngü için seçilmiş olan pime yazılır. Bu pinlerden bir tanesi maksimum PWM değerine (255) ulaşır, aşağıdaki döngü şu şekilde başlar:
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(thisPin, brightness);
delay(2);
}
Bu döngü, parlaklık değişkeninden bir noktayı çıkarır ve LED’i 0’a geri düşürür. Sıfıra ulaşıldığında, for()
döngüsü ana girişi başlar ve program, yukarıda belirtilen tüm adımları tekrarlayarak bir sonraki LED pinine geçer.
/* Mega analogWrite () testi Bu taslak, 2'den 13'e kadar dijital pimlerle aynı anda LED'leri yukarı ve aşağı doğru çeker. Bu taslak Arduino Mega için yazılmıştır ve diğer kurullarda çalışmaz. Devre: - 2 ila 13 pinleri toprağa bağlanan LED'ler. oluşturuldu 8 Şub 2009 Tom Igoe tarafından Bu örnek kod kamu malıdır. http://www.arduino.cc/en/Tutorial/AnalogWriteMega */ // Bu sabitler değişmeyecek. Kullanılan pinlere isim vermek için kullanılırlar: const int lowestPin = 2; const int highestPin = 13; void setup() { // 2 ile 13 arasındaki pinleri çıktı olarak ayarlayın: for (int thisPin = lowestPin; thisPin <= highestPin; thisPin++) { pinMode(thisPin, OUTPUT); } } void loop() { // Pinlerin üzerinden yineleyin: for (int thisPin = lowestPin; thisPin <= highestPin; thisPin++) { // thisPin üzerindeki LED'i en parlak noktaya kadar çıkarır for (int brightness = 0; brightness < 255; brightness++) { analogWrite(thisPin, brightness); delay(2); } // thisPin üzerindeki LED'i en düşük olana kadar azaltır: for (int brightness = 255; brightness >= 0; brightness--) { analogWrite(thisPin, brightness); delay(2); } // LED'ler arasında duraklama: delay(100); } }
Kaynak:arduino.cc