Агуулгын хүснэгт:

Фоторезистор ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн: 4 алхам
Фоторезистор ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн: 4 алхам
Anonim
Photoresistor ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн
Photoresistor ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн
Photoresistor ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн
Photoresistor ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн
Photoresistor ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн
Photoresistor ашиглан утасгүй Arduino гэрэлтэй тохирох LED чийдэн

Энэхүү зааварчилгаа нь Arduino Unos болон фоторезистор ашиглан энгийн утасгүй гэрэл мэдрэгч LED чийдэнг бүтээхэд шаардлагатай алхамуудыг нарийвчлан тайлбарласан болно. Энэ төхөөрөмжийн боломжит програм бол хиймэл нарны гэрэлтэй цонхгүй өрөөг гэрэлтүүлэх бөгөөд гадаа байгаа гэрэлтүүлгийн нөхцөлийг бодит цаг хугацаанд нь тааруулах явдал юм. Эхэлцгээе!

Нийлүүлэлтийн жагсаалт:

Arduino Uno x2

NRF24L01 утасгүй дамжуулагч x2 (Нэмэлт - NRF24L01 үүргэвч x2)

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

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

5 мм LED x3

Дарах товчлуур

100 Ом эсэргүүцэл x3

10 к ом эсэргүүцэл x3

Төрөл бүрийн холбогч утас

Алхам 1: NRF24L01 модулиуд ба хэлхээг холбох

NRF24L01 модулиуд ба хэлхээний утас
NRF24L01 модулиуд ба хэлхээний утас
NRF24L01 модулиуд ба хэлхээний утас
NRF24L01 модулиуд ба хэлхээний утас
NRF24L01 модулиуд ба хэлхээний утас
NRF24L01 модулиуд ба хэлхээний утас

Энэ төсөлд нэг Arduino нь дамжуулагчийн үүргийг гүйцэтгэх бөгөөд товчлуур дарагдсан үед фоторезистороос гэрлийн түвшний өгөгдлийг илгээх болно. Нөгөө Arduino нь хүлээн авагчийн үүргийг гүйцэтгэж, энэ өгөгдлийг LED дохио болгон хувиргах болно. Эхний зураг нь дамжуулагчийн диаграмыг, хоёр дахь нь хүлээн авагчийг харуулав.

Тэмдэглэл: Миний төслийн зургуудаас NRF24L01 дамжуулагчийг өөр ПХБ -д хавсаргасан болохыг та анзаарах болно. Энэ бол цахилгаан зохицуулагчийн үүргийг гүйцэтгэдэг үүрэн холбооны модуль юм. Эдгээр үүргэвч нь утсыг хөнгөвчлөхөөс гадна NRF24L01 -ийн тэжээлийн оролтыг зохицуулж, 5V цахилгаан хангамж ашиглах боломжийг олгодог. Би ойлгомжтой байх үүднээс диаграмдаа эдгээр үүргэвчийг орхисон.

(Хэрэв та үүргэвчийг ашиглахаар шийдсэн бол 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 (товчлуур, оролт); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Модулийг эхлүүлэх нь амжилтгүй болсон тохиолдолд хэрэглэгчийг сэрэмжлүүлдэг Serial.println ("init амжилтгүй болсон"); // Init -ээс хойшхи анхдагч утга нь 2.402 GHz (суваг 2), 2Mbps, 0dBm бол (! Nrf24.setChannel (1)) Serial.println ("setChannel амжилтгүй болсон"); хэрэв (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF амжилтгүй болсон"); }

хоосон давталт ()

{if (digitalRead (button)) {// Хэрэв товчлуур дарагдсан бол мессеж илгээх утга = analogRead (pResistor); // Фоторезисторын утгыг уншина уу (0-1023) uint8_t өгөгдөл = {утга}; // nrf24.send (data, sizeof (data)) гэрлийн утгыг агуулсан "data " нэртэй массивыг тохируулдаг; // массивыг хүлээн авагч руу илгээнэ үү nrf24.waitPacketSent (); // Пакет илгээгдэх хүртэл хүлээнэ үү Serial.println ("Хөнгөн утга:" +String (утга)); // Гэрлийн утгыг цуваа дэлгэц дээр хэвлэнэ үү}}

Алхам 3: Хүлээн авагчийг кодлох

Хүлээн авагчийн хувьд код нь RadioHead номын санг бас ашигладаг.

#оруулах

#оруулах

RH_NRF24 nrf24;

int LEDPin = 3;

int утга = 0; // 0-1023 хүртэлх гэрлийн утга

хүчингүй тохиргоо ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init амжилтгүй болсон"); // Init -ээс хойшхи анхдагч утга нь 2.402 GHz (суваг 2), 2Mbps, 0dBm бол (! Nrf24.setChannel (1)) Serial.println ("setChannel амжилтгүй болсон"); хэрэв (! 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" хэлбэрээр хадгалах]; // Фото резисторын analogWrite (LEDPin, газрын зураг (утга, 0, 1023, 0, 255)) int болох buf -ийн эхний индекст утгыг тохируулна; // ХОУХ-ны зүүг LED гэрэлтүүлгийн хувьд 0-255 хооронд масштабтай утгыг гаргадаг Serial.println (String (утга)); } analogWrite (LEDPin, 0); }

Алхам 4: Гүйцэтгэв

Өөр өөр гэрлийн түвшингээр тоглож, LED -ууд хоорондоо таарч байгааг үзээрэй! Фоторезистор нь заримдаа нарийн төвөгтэй байдаг бөгөөд гэрлийн эх үүсвэртэй харанхуй өрөөнд хамгийн сайн ажилладаг (гэхдээ гадаа нарны гэрэлтэй ажиллах боломжтой).

Зөвлөмж болгож буй: