İçindekiler:
- Adım 1: NRF24L01 Modüllerini ve Devresini Kablolama
- Adım 2: Vericinin Kodlanması
- Adım 3: Alıcının Kodlanması
- Adım 4: BİTTİ
Video: Fotodirenç Kullanan Kablosuz Arduino Işık Uyumlu LED Lamba: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu talimat, Arduino Unos ve bir fotodirenç kullanarak ilkel bir kablosuz ışık algılamalı LED lamba oluşturmak için gerekli adımları detaylandırmaktadır. Bu cihaz için olası bir uygulama, pencereleri olmayan bir odayı, gerçek zamanlı olarak dışarıdaki gerçek aydınlatma koşullarına uygun şekilde yapay güneş ışığıyla aydınlatmak olabilir. Başlayalım!
Tedarik listesi:
Arduino Uno x2
NRF24L01 Kablosuz alıcı-verici x2 (Opsiyonel - NRF24L01 sırt çantası x2)
TIP120 darlington transistör
Fotodirenç
5 mm LED'ler x3
Butona basınız
100 ohm direnç x3
10k ohm direnç x3
Çeşitli Jumper Telleri
Adım 1: NRF24L01 Modüllerini ve Devresini Kablolama
Bu projede, bir Arduino verici olarak hareket edecek ve butona basıldığında fotodirençten ışık seviyesi verisi gönderecektir. Diğer Arduino, bu verileri alıp LED'lere sinyale dönüştüren bir alıcı görevi görecek. İlk görüntü verici şemasını, ikincisi ise alıcıyı gösterir.
Not: Projemin fotoğraflarında, NRF24L01 alıcı-vericilerinin başka bir PCB'ye bağlı olduğunu fark edeceksiniz. Bu, güç düzenleyicisi olarak işlev gören alıcı-vericiler için bir sırt çantası modülüdür. Bu sırt çantaları, kablolamayı kolaylaştırmanın yanı sıra, NRF24L01 için güç girişini düzenleyerek 5V güç kaynağının kullanılmasına izin verir. Bu sırt çantalarını açıklığa kavuşturmak için diyagramımda atladım.
(Sırt çantalarını kullanmaya karar verirseniz, NRF24L01 stoğuna göre pim konumlarının bir şeması için lütfen bu bağlantıya bakın).
Aşağıda, daha kolay yakınlaştırma/detaylı görüntüleme için devrenin bir PDF kopyası eklenmiştir.
Adım 2: Vericinin Kodlanması
Son adım kodlamadır. NRF24L01 modülleriyle kullanmak için RadioHead kitaplığını veya eşdeğer bir kitaplığı kurmanız gerekir.
Bu proje için, verici ve alıcı Arduinos, her birinde farklı kod kullanır. İşte vericinin kodu:
Ayrıca kolaylık olması için.ino dosyasını (NRF_Send) ekledim.
#Dahil etmek
#Dahil etmek
RH_NRF24 nrf24; // Bir alıcı-vericiyi nrf24 olarak başlatma
int düğmesi = 5; //Buton ve fotodirenç için pin değerlerinin ayarlanması
int pDirenç = A0; int değeri = 0; // 0-1023 arası ışık değeri
geçersiz kurulum()
{ Serial.başlangıç(9600); pinMode(düğme, GİRİŞ); pinMode(pDirenç, GİRİŞ); if (!nrf24.init()) // Modülün başlatılması başarısız olursa kullanıcıyı uyarır Serial.println("init başarısız"); // Başlatmadan sonraki varsayılanlar 2.402 GHz (kanal 2), 2Mbps, 0dBm if (!nrf24.setChannel(1)) Serial.println("setChannel başarısız"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF başarısız"); }
boşluk döngüsü()
{ if (digitalRead(button)) { //butona basılırsa mesaj gönder değer = analogRead(pResistor); //Fotorezistörün (0-1023) değerini okuyun uint8_t data = {value}; // nrf24.send(data, sizeof(data)); ışık değerini içeren "data" adında bir dizi ayarlar. //Diziyi alıcıya gönder nrf24.waitPacketSent(); //Paket gönderilene kadar bekleyin Serial.println("Işık Değeri: " +String(değer)); //Işık değerini seri monitöre yazdırın } }
Adım 3: Alıcının Kodlanması
Alıcı için kod ayrıca RadioHead Kitaplığını kullanır.
#Dahil etmek
#Dahil etmek
RH_NRF24 nrf24;
int LEDPin = 3;
int değeri = 0; // 0-1023 arası ışık değeri
geçersiz kurulum()
{ Serial.başlangıç(9600); pinMode(LEDPin, ÇIKIŞ); if (!nrf24.init()) Serial.println("init başarısız"); // Başlatmadan sonraki varsayılanlar 2.402 GHz (kanal 2), 2Mbps, 0dBm if (!nrf24.setChannel(1)) Serial.println("setChannel başarısız"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF başarısız"); }
boşluk döngüsü()
{ // Mesaj bekleyin uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; //Alınan mesajı "buf" adlı bir dizi olarak saklayın uint8_t len = sizeof(buf); //Buf boyutunu "len" olarak saklar while (nrf24.waitAvailableTimeout(200) && nrf24.recv(buf, &len)) //Mesajı 200 milisaniye boyunca veya tüm mesaj alınana kadar alır { değer = buf[0]; //Fotodirenç analogWrite(LEDPin, map(value, 0, 1023, 0, 255)); //LED parlaklığı için 0-255 arasında ölçeklenmiş bir değer çıkışı verecek şekilde PWM pinini ayarlar Serial.println(String(value)); } analogWrite(LEDPin, 0); }
Adım 4: BİTTİ
Farklı ışık seviyeleriyle oynamanın ve LED'lerin onlarla eşleşmesini izlemenin tadını çıkarın! Fotodirenç bazen titiz olabilir ve en iyi yerel ışık kaynağına sahip karanlık bir odada çalışır (ancak dışarıda güneşle de çalışabilir).
Önerilen:
PIR, 3D Baskılı Balkabağı ve Troll Arduino Uyumlu Sesli Şaka/pratik Şaka Panosu Kullanan Cadılar Bayramı Korkutma Makinesi: 5 Adım
PIR, 3D Basılı Balkabağı ve Troll Arduino Uyumlu Sesli Şakacı/pratik Şaka Panosu Kullanan Cadılar Bayramı Korkutma Makinesi: EngineeringShock Electronics'ten Patrick Thomas Mitchell tarafından oluşturulan ve çok uzun zaman önce Kickstarter'da tamamen finanse edilen Troll panosu. Bazı kullanım örnekleri yazmaya ve bir denemede bir Arduino kütüphanesi oluşturmaya yardımcı olmak için ödülümü birkaç hafta erken aldım
Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç): 5 Adım (Resimlerle)
Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç): Arduino'nun Analog Girişini kullanarak ışığa duyarlı bir değişken direnç türü olan bir fotorezistörün nasıl okunacağını öğrenelim. Ayrıca LDR (ışığa bağlı direnç) olarak da adlandırılır. Şimdiye kadar Arduino'nun analog çıkışıyla LED'leri kontrol etmeyi öğrendiniz ve
HC12 Kablosuz Modülü Kullanan Kablosuz Arduino Robotu: 7 Adım
HC12 Kablosuz Modülünü Kullanan Kablosuz Arduino Robotu: Merhaba arkadaşlar, tekrar hoş geldiniz. Bir önceki yazımda, H Köprü Devresinin ne olduğunu, L293D motor sürücü IC'sini, yüksek akım motor sürücülerini sürmek için bindirme L293D Motor sürücü IC'sini ve kendi L293D motor Sürücü Kartınızı nasıl tasarlayıp yapabileceğinizi,
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
5 Arduino ve 5 NRF24L01 Kablosuz Modül Kullanan 4 Yönlü Trafik Işık Sistemi: 7 Adım (Resimli)
5 Arduino ve 5 NRF24L01 Kablosuz Modülü Kullanan 4 Yönlü Trafik Işığı Sistemi: Kısa bir süre önce bir breadboard üzerinde tek bir trafik ışığı çiftini detaylandıran bir Eğitilebilir Tablo oluşturdum. Ayrıca bir NRF24L01 kablosuz modülünü kullanmak için temel çerçeveyi gösteren başka bir Eğitilebilir Tablo oluşturdum. beni düşündürdü! Oldukça fazla