فهرست مطالب:

لامپ LED بی سیم آردوینو با استفاده از مقاومت در برابر نور: 4 مرحله
لامپ LED بی سیم آردوینو با استفاده از مقاومت در برابر نور: 4 مرحله

تصویری: لامپ LED بی سیم آردوینو با استفاده از مقاومت در برابر نور: 4 مرحله

تصویری: لامپ LED بی سیم آردوینو با استفاده از مقاومت در برابر نور: 4 مرحله
تصویری: ساخت سیستمی برای کنترل روشنایی محیط 2024, نوامبر
Anonim
لامپ LED بی سیم آردوینو با استفاده از Photoresistor
لامپ LED بی سیم آردوینو با استفاده از Photoresistor
لامپ LED بی سیم آردوینو با استفاده از Photoresistor
لامپ LED بی سیم آردوینو با استفاده از Photoresistor
لامپ LED بی سیم آردوینو با استفاده از Photoresistor
لامپ LED بی سیم آردوینو با استفاده از Photoresistor

این دستورالعمل مراحل لازم برای ساخت یک لامپ LED بی سیم اولیه با استفاده از Arduino Unos و یک مقاومت در برابر نور را توضیح می دهد. یکی از کاربردهای احتمالی این دستگاه ، روشنایی اتاقی است که پنجره هایی با نور مصنوعی خورشید ندارد و با شرایط روشنایی واقعی بیرون در زمان واقعی مطابقت دارد. بیایید شروع کنیم!

لیست عرضه:

آردوینو Uno x2

فرستنده گیرنده بی سیم NRF24L01 x2 (اختیاری - NRF24L01 کوله پشتی x2)

TIP120 ترانزیستور دارلینگتون

مقاومت در برابر نور

LED های 5 میلی متری x3

دکمه فشاری

مقاومت 100 اهم x3

مقاومت 10k اهم x3

سیم های مختلف جهنده

مرحله 1: سیم کشی ماژول ها و مدار NRF24L01

سیم کشی ماژول ها و مدار NRF24L01
سیم کشی ماژول ها و مدار NRF24L01
سیم کشی ماژول ها و مدار NRF24L01
سیم کشی ماژول ها و مدار NRF24L01
سیم کشی ماژول ها و مدار NRF24L01
سیم کشی ماژول ها و مدار NRF24L01

در این پروژه ، یک آردوینو به عنوان فرستنده عمل می کند و هنگام فشار دادن دکمه فشار داده های سطح نور را از مقاومت نوری ارسال می کند. آردوینو دیگر به عنوان گیرنده عمل می کند و این داده ها را گرفته و به سیگنال LED تبدیل می کند. تصویر اول نمودار فرستنده و تصویر دوم گیرنده را نشان می دهد.

توجه: در عکسهای پروژه من متوجه خواهید شد که گیرنده های گیرنده NRF24L01 به یک PCB دیگر متصل شده اند. این یک ماژول کوله پشتی برای فرستنده گیرنده است که به عنوان تنظیم کننده قدرت عمل می کند. این کوله پشتی ها علاوه بر سهولت سیم کشی ، ورودی برق NRF24L01 را تنظیم کرده و امکان استفاده از منبع تغذیه 5 ولت را فراهم می کند. من برای شفافیت این کوله پشتی ها را در نمودارم حذف کرده ام.

(اگر تصمیم به استفاده از کوله پشتی گرفتید ، لطفاً برای مشاهده نمودار محل سنجاق ها در رابطه با موجودی NRF24L01 به این پیوند مراجعه کنید).

در زیر یک پی دی اف از مدار ضمیمه شده است ، برای بزرگنمایی راحت تر و مشاهده دقیق تر.

مرحله 2: کدگذاری فرستنده

آخرین مرحله کد نویسی است. برای استفاده از ماژول های NRF24L01 باید کتابخانه RadioHead یا کتابخانه ای معادل را نصب کنید.

برای این پروژه ، فرستنده و گیرنده آردوینوس از کد متفاوتی در هر کدام استفاده می کنند. در اینجا کد فرستنده آمده است:

همچنین فایل.ino (NRF_Send) را برای راحتی پیوست کرده ام.

#عبارتند از

#عبارتند از

RH_NRF24 nrf24؛ // راه اندازی اولیه گیرنده به عنوان nrf24

دکمه int = 5 ؛ // تنظیم مقادیر پین برای دکمه و مقاومت در برابر عکس

int pResistor = A0؛ int value = 0؛ // مقدار نور از 0-1023

void setup ()

{Serial.begin (9600) ؛ pinMode (دکمه ، ورودی) ؛ pinMode (pResistor ، INPUT) ؛ if (! nrf24.init ()) // درصورت خرابی مقداردهی اولیه ماژول به کاربر هشدار می دهد Serial.println ("init fail") ؛ // پیش فرضها پس از init عبارتند از 2.402 گیگاهرتز (کانال 2) ، 2 مگابیت بر ثانیه ، 0dBm اگر (! nrf24.setChannel (1)) Serial.println ("setChannel failed") ؛ if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps، RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ناموفق بود")؛ }

حلقه خالی ()

{if (digitalRead (دکمه)) {// اگر دکمه فشار داده شده است پیام ارسال کنید مقدار = analogRead (pResistor) ؛ // خواندن مقدار مقاومت در برابر عکس (0-1023) uint8_t data = {value}؛ // مجموعه ای از آرایه به نام "data " حاوی مقدار نور nrf24.send (داده ، اندازه (داده)) ؛ // ارسال آرایه به گیرنده nrf24.waitPacketSent ()؛ // منتظر بمانید تا بسته ارسال شود Serial.println ("Light Light:" +String (value))؛ // مقدار نور را در مانیتور سریال چاپ کنید}}

مرحله 3: کدگذاری گیرنده

برای گیرنده ، کد همچنین از کتابخانه RadioHead استفاده می کند.

#عبارتند از

#عبارتند از

RH_NRF24 nrf24؛

int LEDPin = 3 ؛

مقدار int = 0 ؛ // مقدار نور از 0-1023

void setup ()

{Serial.begin (9600) ؛ pinMode (LEDPin ، OUTPUT) ؛ if (! nrf24.init ()) Serial.println ("init fail")؛ // پیش فرض ها پس از init عبارتند از 2.402 گیگاهرتز (کانال 2) ، 2 مگابیت بر ثانیه ، 0dBm اگر (! nrf24.setChannel (1)) Serial.println ("setChannel failed") ؛ 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 تعیین می کند ، که int از photoWististor analogWrite است (LEDPin ، map (مقدار ، 0 ، 1023 ، 0 ، 255)) ؛ // پین PWM را برای خروجی مقدار مقیاس شده بین 0-255 برای روشنایی LED Serial.println (String (مقدار)) تنظیم می کند. } analogWrite (LEDPin ، 0) ؛ }

مرحله 4: انجام شد

از بازی با سطوح مختلف نور و تماشای مطابقت LED ها با آنها لذت ببرید! گاهی اوقات مقاومت در برابر نور ممکن است مشکل باشد و در یک اتاق تاریک با منبع نور موضعی بهترین کار را می کند (اما می تواند در خارج با خورشید نیز کار کند).

توصیه شده: