
Ana Sayfa » Arduino
nRF24L01 Remote Control LED

nRF24L01 ile Kablosuz LED Kontrol Devresi
Arduino ile nRF24L01 modülün kullanımı için basit bir uygulama yaptım.
#include <SPI.h> // SPI Arayüzünü dahil ettik. #include "RF24.h" // RF24 kütüpanelerini dahil ettik. byte data[1]; // Göndereceğimiz data değişkenini oluşturduk. const uint64_t pipe = 0xF0F0F0F0A1LL; // Paralel veri yolu adresleri tanımlamasını yaptık. RF24 radio(9,10); // Modülün CE pinini 9.pin CS pinini de 10.pine bağlayacağımızı belirttik. void setup(){ pinMode(3, INPUT_PULLUP); // Arduino'nun 2.pinini dahili dirençli giriş olarak ayarladık. pinMode(5, INPUT_PULLUP); // Arduino'nun 4.pinini dahili dirençli giriş olarak ayarladık. pinMode(7, INPUT_PULLUP); // Arduino'nun 6.pinini dahili dirençli giriş olarak ayarladık. radio.begin(); // Kablosuz iletişimi başlattık. radio.openWritingPipe(pipe); // Gönderim yapacağımız kanalın ID'sini tanımladık. } void loop(){ if(digitalRead(3)==HIGH || digitalRead(5)==HIGH || digitalRead(7)==HIGH){ data[0]=0; } if(digitalRead(3)==LOW){ data[0]=1; } if(digitalRead(5)==LOW){ data[0]=2; } if(digitalRead(7)==LOW){ data[0]=3; } radio.write(data, 1); //Sonra da bu mesaj gönderilsin. }
#include <SPI.h> // SPI Arayüzünü dahil ettik. #include "RF24.h" // RF24 kütüpanelerini dahil ettik. byte data[1]; // Göndereceğimiz data değişkenini oluşturduk. boolean var; // Bit şeklinde var değişkeninini oluşturduk. const uint64_t pipe = 0xF0F0F0F0A1LL; // Paralel veri yolu adresleri tanımlamasını yaptık. RF24 radio(9,10); // Modülün CE pinini 9.pin CS pinini de 10.pine bağlayacağımızı belirttik. void setup(){ pinMode(3, OUTPUT); // Arduino'nun 2.pinini çıkış olarak ayarladık. pinMode(5, OUTPUT); // Arduino'nun 4.pinini çıkış olarak ayarladık. pinMode(7, OUTPUT); // Arduino'nun 6.pinini çıkış olarak ayarladık. radio.begin(); // Kablosuz iletişimi başlattık. radio.openReadingPipe(1,pipe); // Veri alacağımız kanalın ID'sini tanımladık. radio.startListening(); } void loop(){ if(radio.available()){ var = false; while(!var){ var = radio.read(data, 1); if(data[0] == 0){ digitalWrite(3, LOW); digitalWrite(5, LOW); digitalWrite(7, LOW); } if(data[0] == 1){ digitalWrite(3, HIGH); } if(data[0] == 2){ digitalWrite(5, HIGH); } if(data[0] == 3){ digitalWrite(7, HIGH); } } } }
Sound Detection Clap Switch

Arduino ~ Alkış ile Lamba Yakma
int alkis = 0; long algilama_araligi_baslangic = 0; long algilama_araligi = 0; boolean isik_durumu = false; void setup(){ pinMode(10, INPUT); pinMode(8, OUTPUT); } void loop(){ if(digitalRead(10) == 0){ if(alkis == 0){ algilama_araligi_baslangic = algilama_araligi = millis(); alkis++; } else if(alkis > 0 && millis() - algilama_araligi >= 49){ algilama_araligi = millis(); alkis++; } } if(millis() - algilama_araligi_baslangic >= 399){ if(alkis == 2){ if(!isik_durumu){ isik_durumu = true; digitalWrite(8, HIGH); } else if(isik_durumu){ isik_durumu = false; digitalWrite(8, LOW); } } alkis = 0; } }
TV Kumandası ile LED Kontrolü

Arduino TV Kumandası ile LED Kontrolü
IR (Kızılötesi) ile Haberleşme yapacağız.
Next Uydu alıcının kumandasını, IR alıcı olarak TSOP4838 malzemeyi kullandım.
Kumandanın;
1.ci Tuşu: "34935" kodu 2.ci Tuşu: "18615" kodu
3.ci Tuşu: "51255" kodu 4.ci Tuşu: "10455" kodu
Kırmızı Power Tuşu: "20655" kodunu gönderiyor.
Bu kumanda ilk kodu gönderiyor sonra başka bir kod gönderiyor. Bu sayede butona bir kez basılmış oluyor. Eğer sizin kumandanızda bu yoksa yazılımda değişiklik yapmanız gerekecek yoksa LED'leriniz sürekli aç kapa yapacaktır.
Kumandanın kodlarını görmek için Serial Monitör'den bakabilirsiniz.
Başka bir kumanda kullanıyorsanız benim kumanda kodlarımla değiştirmeniz gerekiyor.
NOT: Bu kullandığım kütüphane Arduino v1.0.5 versiyonu ile çalışmaktadır. Arduino v1.0.6 versiyonunda çalışmamıştır.
#include <IRremote.h> byte RECV_PIN = 2; IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ Serial.begin(9600); irrecv.enableIRIn(); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void loop(){ if(irrecv.decode(&results)){ unsigned int Gelen_Veri = results.value; switch(Gelen_Veri){ case 34935: digitalWrite(3, !digitalRead(3)); break; case 18615: digitalWrite(4, !digitalRead(4)); break; case 51255: digitalWrite(5, !digitalRead(5)); break; case 10455: digitalWrite(6, !digitalRead(6)); break; case 20655: digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); break; } Serial.println(Gelen_Veri); irrecv.resume(); } }
Download Library:
https://yadi.sk/d/9tP7A7A5eZk3P
https://yadi.sk/d/9tP7A7A5eZk3P
Ters Zaman Rölesi

Arduino Ters Zaman Rölesi
byte ROLE_1 = 2; byte ROLE_2 = 3; byte ROLE_3 = 4; byte ROLE_4 = 5; byte BUTON_1 = 8; byte BUTON_2 = 9; byte BUTON_3 = 10; byte BUTON_4 = 11; long ZAMAN = 50000; long SAYICI_1; long SAYICI_2; long SAYICI_3; long SAYICI_4; void setup(){ pinMode(BUTON_1, INPUT_PULLUP); pinMode(BUTON_2, INPUT_PULLUP); pinMode(BUTON_3, INPUT_PULLUP); pinMode(BUTON_4, INPUT_PULLUP); pinMode(ROLE_1, OUTPUT); pinMode(ROLE_2, OUTPUT); pinMode(ROLE_3, OUTPUT); pinMode(ROLE_4, OUTPUT); } void loop(){ if(digitalRead(BUTON_1) == (LOW)){ digitalWrite(ROLE_1, HIGH); SAYICI_1 = ZAMAN; } if(digitalRead(BUTON_2) == (LOW)){ digitalWrite(ROLE_2, HIGH); SAYICI_2 = ZAMAN; } if(digitalRead(BUTON_3) == (LOW)){ digitalWrite(ROLE_3, HIGH); SAYICI_3 = ZAMAN; } if(digitalRead(BUTON_4) == (LOW)){ digitalWrite(ROLE_4, HIGH); SAYICI_4 = ZAMAN; } if(SAYICI_1 != 0){ SAYICI_1 = SAYICI_1 - 1; }else{ digitalWrite(ROLE_1, LOW); } if(SAYICI_2 != 0){ SAYICI_2 = SAYICI_2 - 1; }else{ digitalWrite(ROLE_2, LOW); } if(SAYICI_3 != 0){ SAYICI_3 = SAYICI_3 - 1; }else{ digitalWrite(ROLE_3, LOW); } if(SAYICI_4 != 0){ SAYICI_4 = SAYICI_4 - 1; }else{ digitalWrite(ROLE_4, LOW); } }














