Мазмұны:

Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы: 4 қадам
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы: 4 қадам

Бейне: Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы: 4 қадам

Бейне: Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы: 4 қадам
Бейне: Урок 99. Создание цифровых часов Arduino с использованием ЖК-дисплея DS3231 и семисегментного дисплея. 2024, Қараша
Anonim
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы
Фоторезисторды қолданатын сымсыз Arduino светодиодты шамы

Бұл нұсқаулық Arduino Unos пен фоторезисторды қолдана отырып, қарапайым сымсыз жарық сезгіш жарықдиодты шамды құруға қажетті қадамдарды егжей-тегжейлі сипаттайды. Бұл құрылғының мүмкін болатын қосымшасы - терезесі жоқ бөлмені жарықтандыру болуы мүмкін, ол нақты уақыт режимінде сыртқы жарықтандыру жағдайына сәйкес келеді. Бастайық!

Жабдықтар тізімі:

Arduino Uno x2

NRF24L01 сымсыз қабылдағыш x2 (Қосымша - NRF24L01 рюкзак x2)

TIP120 дарлингтон транзисторы

Фоторезистор

5 мм жарық диодты x3

Батырмаға басу

100 Ом резистор x3

10к Ом резистор x3

Әр түрлі секіргіш сымдар

1 -қадам: NRF24L01 модульдері мен схемасын сыммен қосу

NRF24L01 модульдері мен схемасының сымдары
NRF24L01 модульдері мен схемасының сымдары
NRF24L01 модульдері мен схемасының сымдары
NRF24L01 модульдері мен схемасының сымдары
NRF24L01 модульдері мен схемасының сымдары
NRF24L01 модульдері мен схемасының сымдары

Бұл жобада бір Arduino пернесін басқан кезде фоторезистордан жарық деңгейіндегі мәліметтерді жіберуші ретінде әрекет етеді. Басқа Arduino қабылдағыш ретінде қызмет етеді, сол деректерді қабылдайды және оны жарық диодты сигналға айналдырады. Бірінші суретте таратқыштың диаграммасы, ал екіншісінде қабылдағыш көрсетілген.

Ескерту: менің жобамның фотосуреттерінде NRF24L01 трансиверлері басқа ПХД -ға бекітілгенін байқайсыз. Бұл қуат реттегіші қызметін атқаратын трансиверлерге арналған рюкзак модулі. Сымдарды жеңілдетуден басқа, бұл рюкзактар 5В қуат көзін пайдалануға мүмкіндік беретін NRF24L01 қуатының кірісін реттейді. Мен түсінікті болу үшін диаграммада бұл рюкзактардан бас тарттым.

(Егер сіз рюкзактарды қолдануды шешсеңіз, NRF24L01 қорына сілтеме жасай отырып, түйреуіштердің орналасу схемасын мына сілтемеден қараңыз).

Үлкейту/егжей -тегжейлі қарау үшін тізбектің PDF көшірмесі төменде берілген.

2 -қадам: таратқышты кодтау

Соңғы қадам - кодтау. NRF24L01 модульдерімен пайдалану үшін сізге RadioHead кітапханасын немесе оған балама кітапхананы орнату қажет болады.

Бұл жоба үшін Arduinos таратқышы мен қабылдаушысы әрқайсысында әр түрлі кодты қолданады. Міне таратқыштың коды:

Ыңғайлы болу үшін мен.ino файлын (NRF_Send) тіркедім.

#қосу

#қосу

RH_NRF24 nrf24; // nrf24 ретінде трансиверді инициализациялау

int түймесі = 5; // Түйме мен фоторезистордың түйреуіш мәндерін орнату

int pResistor = A0; int мәні = 0; // Жарықтың мәні 0-1023 аралығында

жарамсыз орнату ()

{Serial.begin (9600); pinMode (түйме, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Модульдің инициализациясы Serial.println («init сәтсіз») сәтсіз аяқталса, пайдаланушыны ескертеді; // Бастапқыдан кейінгі әдепкі мәндер - 2.402 ГГц (2 арна), 2Мбит/ с, 0дБм, егер (! Nrf24.setChannel (1)) Serial.println («setChannel сәтсіз»); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println («setRF сәтсіз аяқталды»); }

бос цикл ()

{if (digitalRead (түймесі)) {// Егер түйме басылса, хабарлама жіберіңіз value = analogRead (pResistor); // Фоторезистордың мәнін оқу (0-1023) uint8_t деректер = {мән}; // nrf24.send (data, sizeof (data)) жарық мәнін қамтитын «data » деп аталатын массивті орнатады; // Массивті қабылдағышқа жіберу nrf24.waitPacketSent (); // Пакет жіберілгенше күтіңіз Serial.println («Жарық мәні:» +Жол (мән)); // Жарық мәнін сериялық мониторға басып шығарыңыз}}

3 -қадам: ресиверді кодтау

Қабылдағыш үшін код RadioHead кітапханасын да қолданады.

#қосу

#қосу

RH_NRF24 nrf24;

int LEDPin = 3;

int мәні = 0; // Жарықтың мәні 0-1023 аралығында

жарамсыз орнату ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println («init сәтсіз болды»); // Бастапқыдан кейінгі әдепкі мәндер - 2.402 ГГц (2 арна), 2Мбит/ с, 0дБм, егер (! Nrf24.setChannel (1)) Serial.println («setChannel сәтсіз»); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println («setRF сәтсіз аяқталды»); }

бос цикл ()

{// uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN] хабарын күтіңіз; // Алынған хабарды «buf » uint8_t len = sizeof (buf) деп аталатын массив ретінде сақтаңыз; // buf өлшемін «len» ретінде сақтаңыз (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Хабарды 200 миллисекундқа немесе бүкіл хабар алынғанша алады {value = buf [0]; // мәнді buF бірінші индексіне орнатады, бұл analogWrite фоторезисторынан int (LEDPin, карта (мән, 0, 1023, 0, 255)); // PWM түйреуішін жарық диодты жарықтылық үшін Serial.println (String (мән)) үшін 0-255 аралығында масштабталған мәнді шығаруға орнатады; } analogWrite (LEDPin, 0); }

4 -қадам: БОЛДЫ

Әр түрлі жарық деңгейлерінде ойнауды және светодиодтардың оларға сәйкес келуін тамашалаңыз! Фоторезистор кейде күрделі болуы мүмкін және жарықтандырылған жарық көзі бар қараңғы бөлмеде жақсы жұмыс істейді (бірақ сыртта күнмен де жұмыс жасай алады).

Ұсынылған: