dominoFiber     domiRobot     Forum


Projeler - Neopikxel Adreslenebilir Led Uygulaması

Bu projemizde adreslenebilir neopikxel ledleri tanıtıp, örnek bir uygulamayı paylaşacağız.

Ön Bilgi:
Led teknolojisi geliştikçe sıradan ledler yerlerini RGB ledlere ve şerit ledlere bıraktı. Sıradan ledler kırmızı, sarı, yeşil, mavi gibi tek bir renkte ışık verebilirken RGB ve şerit ledler farklı renklerde ışık verebilmekte.

12 ledden oluşan bir şerit led düşünelim. Bu şerit ledimizi farklı renklerde yakabiliyoruz. Ancak şeritteki bütün ledler aynı renkte yanmaktadır, ve aynı anda sönmektedir. Adreslenebilir neopikxel ledlerden yapılmış bir şerit leddeki ledlerin her birini farklı bir renkte, farklı bir parlaklıkta yakabilir, istediğimiz ledi söndürebiliriz. Bunu yapabilmek için bir mikrodenetleyiciye ihtiyacımız var. Bu projemizde 12 adetten oluşan adreslenebilir neopikxel ledlerimizi arduino ile süreceğiz. 12 adet RGB ledi arduino ile sürmek istersek her bir led için birer tane I/Q pini kullanma zorunluluğu ortaya çıkacaktır. Oysa ki adreslenebilir neopikxel ledlerimizin tamamını sürebilmek için bize 1 adet pwm özellikli 1 adet I/Q pini kullanmak yeterlidir. Bu pin tasarrufu bakımından da çok güzel bir özellikdeğil mi?

Neopikxel ledler normal ledler gibi tek tek satışa sunulabildiği gibi 4'lü, 8'li, 30'lu gibi gruplardan oluşan şerit, daire, yay ya da matris şeklinde de satılmaktadır.

Aşağıdaki fotoğraflarda çeşitli neopiksel ledleri görebilirsiniz.

Fotoğraf 1: 3'lü şerit

Fotoğraf 2: Esnek matris


Fotoğraf 3: Peşpeşe eklenebilir

Fotoğraf 4: 8x8 matris

Fotoğraf 5: Tekli

Fotoğraf 6: Çeyrek daire

Fotoğraf 7: Breadboard uyumlu

Fotoğraf 8: 7'li daire

Fotoğraf 9: 24'lü halka

Fotoğraf 10: 16'lı halka

Fotoğraf 11: 30'lu şerit

Fotoğraf 12: 8'li şerit

Neopikxel Led Pinleri
Fotoğraf 13: Neopiksel pinleri

Her bir neopixel led 4 pini bulunur. Bu pinlerin isimleri DIN, 5V, GND ve DOUT'tur. Mikrodenetleyiciden gelen bilgi işareti ilk ledin DIN pinine uygulanır. Diğer ledlerin DIN pinleri kendinden önce gelen ledin DOUT pinine paket içerisinde bağlıdır. Ayrıca bağlantı yapılması gerekmez. Ancak bu projemizde olduğu gibi tekli ledlerden bir şerit oluşturuyorsanız bu bağlantıları yapmanız gerekmektedir. Ledleri beslemek için 5Voltluk bir dc kaynağa ihtiyaç vardır. DC kaynağın pozitif kutbu ledin 5Volt pinine, negatif kutbu GND pinine bağlanmalıdır.

<a href="http://www.youtube.com/watch?v=JElmZEP5efY" target="_blank">http://www.youtube.com/watch?v=JElmZEP5efY</a>
Video 1: Örnek Neopikxel led uygulaması

Fotoğraf 14: Montajı tamamlanmış devre

Fotoğraf 15: Montajı tamamlanmış devre

Devre şeması

Şema 1: Fritzing Devre Şeması

Arduino Kodları
Kod: [Seç]
#include <Adafruit_NeoPixel.h>  // neopixel kutuphanesi eklendi
#define PIN 6 // Digital 6. pini neopixelleri surmek icin kullaniyoruz
#define NUMPIXELS 12  // 12 adet ledimiz var

Adafruit_NeoPixel NeoPixel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);

void setup() {
  NeoPixel.setBrightness(100);
  NeoPixel.begin();
  NeoPixel.show();
}

void loop() {
NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));  // 1. ledi kirmizi ayarladik
NeoPixel.setPixelColor(1,NeoPixel.Color(255,0,0));  // 2. ledi kirmizi ayarladik
NeoPixel.setPixelColor(2,NeoPixel.Color(255,0,0));  // 3. ledi kirmizi ayarladik
NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));  // 4. ledi kirmizi ayarladik
NeoPixel.setPixelColor(4,NeoPixel.Color(255,0,0));  // 5. ledi kirmizi ayarladik
NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,255));  // 6. ledi yesil ayarladik
NeoPixel.setPixelColor(6,NeoPixel.Color(0,0,255));  // 7. ledi yesil ayarladik
NeoPixel.setPixelColor(7,NeoPixel.Color(255,0,0));  // 8. ledi kirmizi ayarladik
NeoPixel.setPixelColor(8,NeoPixel.Color(255,0,0));  // 9. ledi kirmizi ayarladik
NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));  // 10. ledi kirmizi ayarladik
NeoPixel.setPixelColor(10,NeoPixel.Color(255,0,0)); // 11. ledi kirmizi ayarladik
NeoPixel.setPixelColor(11,NeoPixel.Color(255,0,0)); // 12. ledi kirmizi ayarladik
NeoPixel.show();  // Renkleri ayarlanan ledler yakildi
delay(200); // 200 ms bekle

NeoPixel.setPixelColor(4,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(7,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(9,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(10,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(6,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(4,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(7,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(8,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(2,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(9,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(10,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(11,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(5,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(6,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(4,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(7,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(8,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(2,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(10,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(11,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(6,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

for (int domiRobot = 1; domiRobot <= 5; domiRobot ++) {

NeoPixel.setPixelColor(0,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);}

}

Malzeme listesi

Download
İhtiyaç duyulması halinde buraya tıklayıp projeye ait dosyaları indirebilirsiniz.


Neopixel Led Satın Al

Untitled
  • Neopixel led satın alNeopixel led satın alNeopixel led satın al