Işık devre yapımı

Merhaba ben ledlerin yanma süresinin ayarlanabilir bir şekilde çalışmasını sağlayan bir ışık devresi yapmak istiyorum.Bunu en uygun maliyette nasıl yapabilirim.

Bunu hazır takılı olan bir lede mi yapmak istiyorsunuz? Yoksa ledi de alıp , sıfırdan mı bişeyler yapacaksınız ?

Eğer led hali hazırda çalışır durumdaysa ve ortamda wifi varsa, elinde olması gereken malzemeler ;

  • NodeMCU
  • Role
  • Kolay bir bağlantı için biraz jumper kablolar
  • 5 Volt veya 3.3 Volt adaptör

Role : Buy 1 Way 5V Relay Module with cheap price

NodeMCU : Buy NodeMCU LoLin ESP8266 Development Board with cheap price

Led dediğim küçük ampuller de olur manüel sisteme yakın hazır herhangi birşey yok

Belirli bir saat aralığında mı çalışmasını istiyorsunuz. Yoksa “başla” dediğin andan itibaren belirli bir süre mi ?

Mesela sağda 6 ampül veya led var solda da aynı şekilde bir düğmeye bastığımda sağdaki 6 ışık belli saniye aralığı bir sonraki ışığa geçiş yaparak yanacak soldakide aynı şekilde

Bu kod isteğini karşılayacaktır. İstersen kendine göre düzenleyebilirsin. Örneğin atlamaHizi değerini 2000 yaparsan 2 saniyede bir , bir sonraki ledi yakar.

Sen isteğinde 6 adet ledi bulunan 2 farklı grubun sırayla yansın demişsin. Dediğin gibi ayarladım. Kod içerisinde şu şekilde görebilirsin :

byte ledPinleri[][grupGenisligi] = {
  { 1, 2, 3, 4, 5, 6 } ,   // 1. Grup
  { 7, 8, 9, 10, 11, 12 } // 2. Grup
};

Diyelim ki 4 adet ledi bulunan 3 farklı grup yapmak istiyorsun. Onun için kodda yapman gereken değişiklik şunlar olur :

#define grupGenisligi 4

byte ledPinleri[][grupGenisligi] = {
  { 1, 2, 3, 4 } ,   // 1. Grup
  { 5, 6, 7, 8 },   // 2. Grup
  { 9, 10, 11, 12 } // 3. Grup
};

Kodun Tamamı :

#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))

#define grupGenisligi 6
#define atlamaHizi 1000 // 1 saniye

byte ledPinleri[][grupGenisligi] = {
  { 1, 2, 3, 4, 5, 6 } ,
  { 7, 8, 9, 10, 11, 12 }
};

void setup() {
  for ( byte i = 0 ; i < ARRAY_SIZE(ledPinleri) ; i++ ) {
    for ( byte j = 0 ; j < grupGenisligi ; j++ ) {
      pinMode(ledPinleri[i][j], OUTPUT);
    }
  }
}

void loop() {
  for ( byte i = 0 ; i < grupGenisligi ; i++ ) {
    for ( byte j = 0 ; j < ARRAY_SIZE(ledPinleri) ; j++ ) {
      digitalWrite(ledPinleri[j][i], HIGH);
    }

    delay(atlamaHizi);

    for ( byte j = 0 ; j < ARRAY_SIZE(ledPinleri) ; j++ ) {
      digitalWrite(ledPinleri[j][i], LOW);
    }
  }
}