فهرست مطالب:

سنسور نور (مقاومت در برابر نور) با آردوینو در Tinkercad: 5 مرحله (همراه با تصاویر)
سنسور نور (مقاومت در برابر نور) با آردوینو در Tinkercad: 5 مرحله (همراه با تصاویر)

تصویری: سنسور نور (مقاومت در برابر نور) با آردوینو در Tinkercad: 5 مرحله (همراه با تصاویر)

تصویری: سنسور نور (مقاومت در برابر نور) با آردوینو در Tinkercad: 5 مرحله (همراه با تصاویر)
تصویری: پروژه آردوینو - حسگر های مقاومتی نور - تشخیص میزان نور محیط 2024, نوامبر
Anonim
سنسور نور (مقاومت در برابر نور) با آردوینو در Tinkercad
سنسور نور (مقاومت در برابر نور) با آردوینو در Tinkercad

پروژه های Tinkercad »

بیایید نحوه خواندن مقاومت نوری ، یک نوع مقاومت متغیر حساس به نور ، با استفاده از ورودی آنالوگ آردوینو را بیاموزیم. به آن LDR (مقاومت وابسته به نور) نیز می گویند.

تا کنون شما کنترل LED ها با خروجی آنالوگ آردوینو و خواندن پتانسیومتر را که نوع دیگری از مقاومت های متغیر است ، یاد گرفته اید ، بنابراین ما در این درس بر این مهارت ها می پردازیم. به یاد داشته باشید که ورودی های آنالوگ آردوینو (پین هایی با علامت A0-A6) می توانند سیگنال الکتریکی را که به تدریج تغییر می کند ، تشخیص داده و آن سیگنال را به عددی بین 0 تا 1023 ترجمه کند.

تصویر
تصویر

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

در این درس ، شما خودتان این مدار شبیه سازی شده را در کنار نمونه ایجاد می کنید. برای ساخت اختیاری مدار فیزیکی ، برد Arduino Uno ، کابل USB ، تخته نان بدون لحیم ، LED ، مقاومت (220 اهم و 4.7k اهم) ، مقاومت در برابر عکس و سیم های نان بردار را جمع کنید.

می توانید بصورت مجازی با استفاده از مدارهای Tinkercad پیگیری کنید. حتی می توانید این درس را از داخل Tinkercad مشاهده کنید (ورود رایگان لازم است)! مدار نمونه را کاوش کرده و خود را درست در کنار آن بسازید. مدارهای Tinkercad یک برنامه رایگان مبتنی بر مرورگر است که به شما امکان می دهد مدارها را بسازید و شبیه سازی کنید. برای یادگیری ، آموزش و نمونه سازی اولیه مناسب است.

مرحله 1: ایجاد مدار

ساختن مدار
ساختن مدار
ساختن مدار
ساختن مدار

نگاهی به مدار تخته نرد در تصویر بیندازید. نگاه کردن به نسخه سیمی آزاد این مدار نمونه برای مقایسه ، در تصویر مفید است. در این مرحله ، شما نسخه شخصی خود را از این مدار در کنار نمونه در محل کار می سازید.

برای پیگیری ، یک پنجره جدید مدارهای Tinkercad را بارگذاری کرده و نسخه خود را از این مدار در کنار نمونه بسازید.

در محل کار مدارهای Tinkercad مدارهای مقاوم در برابر نور ، LED ، مقاومتها و سیمهای متصل به آردوینو را شناسایی کنید.

Arduino Uno و breadboard را از پنل اجزاء به صفحه کار ، کنار مدار موجود بکشید.

به ترتیب با کلیک برای ایجاد سیم ، ریل های تغذیه (+) و زمین (-) را به ترتیب به آردوینو 5V و زمین (GND) وصل کنید.

ریل های قدرت و زمین را به اتوبوس های مربوطه خود در لبه مقابل تخته نان گسترش دهید (اختیاری برای این مدار اما روش معمول خوب است).

LED را به دو ردیف مختلف بردبرد متصل کنید تا کاتد (پایه کوتاه و منفی) به یک پایه مقاومت متصل شود (در هر نقطه از 100-1K اهم خوب است). مقاومت می تواند در هر دو جهت باشد زیرا مقاومت ها برعکس LED ها ، که باید به طریقی خاص به هم متصل شوند ، قطبی نشده اند.

پای دیگر مقاومت را به زمین وصل کنید.

آند LED (پایه بلندتر) را به پین 9 آردوینو وصل کنید.

یک مقاومت نوری را از پانل اجزا به تخته نانو بکشید ، بنابراین پایه های آن به دو ردیف مختلف متصل می شوند.

برای ایجاد سیم اتصال یک پایه مقاومت به نور به برق ، کلیک کنید.

پای دیگر را به پین آنالوگ A0 آردوینو وصل کنید.

یک مقاومت را از پنل اجزا بکشید تا پای مقاومت نوری متصل به A0 با زمین متصل شود و مقدار آن را به 4.7 کیلو اهم تنظیم کنید.

مرحله 2: کد با بلوک ها

کد با بلوک
کد با بلوک

بیایید از ویرایشگر بلوک های کد برای گوش دادن به وضعیت مقاومت در برابر عکس استفاده کنیم ، سپس LED را بر اساس میزان روشنایی سنسور روی روشنایی نسبی تنظیم کنیم. ممکن است بخواهید در درس Fading LED حافظه خود را از خروجی آنالوگ LED تازه کنید.

روی دکمه "کد" کلیک کنید تا ویرایشگر کد باز شود. بلوک های خاکستری Notation نظراتی هستند برای توجه به آنچه قصد دارید کد شما انجام دهد ، اما این متن به عنوان بخشی از برنامه اجرا نمی شود.

در ویرایشگر کد روی دسته متغیرها کلیک کنید.

برای ذخیره مقدار مقاومت نوری مقاومت ، متغیری با نام "sensorValue" ایجاد کنید.

بلوک "مجموعه" را بیرون بکشید. ما وضعیت مقاومت نوری خود را در متغیر ذخیره می کنیم

sensorValue

روی دسته ورودی کلیک کنید و بلوک "پین خواندن آنالوگ" را بیرون بکشید و بعد از کلمه "به" آن را در بلوک "تنظیم" قرار دهید.

از آنجا که پتانسیومتر ما به پین A0 به آردوینو متصل است ، کشویی را به A0 تغییر دهید.

روی دسته Output کلیک کرده و بلوک "print to serial monitor" را بیرون بکشید.

به دسته متغیرها بروید و حسگر متغیر خود را روی بلوک "print to serial monitor" بکشید و مطمئن شوید که کشویی برای چاپ با یک خط جدید تنظیم شده باشد. در صورت تمایل شبیه سازی را شروع کرده و مانیتور سریال را باز کنید تا مطمئن شوید هنگام تنظیم سنسور ، قرائت وارد شده و تغییر می کند. مقادیر ورودی آنالوگ بین 0-1023 است.

از آنجا که می خواهیم با LED بین 0 (خاموش) و 255 (روشنایی کامل) روی LED بنویسیم ، از بلوک "map" برای انجام چند ضرب متقابل برای خود استفاده می کنیم. به دسته ریاضی بروید و یک بلوک "نقشه" را بیرون بکشید.

در اولین شکاف ، بلوک متغیر sensorValue را بکشید ، سپس محدوده را از 0 تا 255 تنظیم کنید.

بازگشت به بخش خروجی ، یک بلوک "تنظیم پین" آنالوگ را بکشید ، که به طور پیش فرض می گوید "تنظیم پین 3 را روی 0". آن را برای تنظیم پین 9 تنظیم کنید.

بلوک نقشه ای را که قبلاً ساخته اید ، به قسمت "تنظیم پین" بلوک "به" بکشید تا شماره تنظیم شده را با استفاده از PWM روی پین LED بنویسید.

روی دسته کنترل کلیک کنید و یک بلوک انتظار را بکشید ، و آن را طوری تنظیم کنید که برنامه به مدت 1 ثانیه به تأخیر بیفتد.

مرحله 3: کد آردوینو Photoresistor توضیح داده شده است

هنگامی که ویرایشگر کد باز است ، می توانید روی منوی کشویی در سمت چپ کلیک کرده و "Blocks + Text" را انتخاب کنید تا کد آردوینو ایجاد شده توسط بلوک های کد نشان داده شود. با ما همراه باشید تا کد را با جزئیات بیشتری بررسی کنیم.

int sensorValue = 0؛

قبل از

برپایی()

، ما یک متغیر برای ذخیره مقدار فعلی خوانده شده از پتانسیومتر ایجاد می کنیم. نامیده می شود

int

زیرا یک عدد صحیح یا هر عدد کامل است.

void setup ()

{pinMode (A0 ، INPUT) ؛ pinMode (9 ، OUTPUT) ؛ Serial.begin (9600)؛ }

در داخل راه اندازی ، پین ها با استفاده از پیکربندی می شوند

pinMode ()

عملکرد. پین A0 به عنوان ورودی پیکربندی شده است ، بنابراین می توانیم به وضعیت الکتریکی پتانسیومتر "گوش" دهیم. پین 9 به عنوان خروجی برای کنترل LED پیکربندی شده است. Arduino برای اینکه بتواند پیام ارسال کند ، یک کانال ارتباطی سریال جدید با آن باز می کند

Serial.begin ()

، که استدلال نرخ باود (سرعت برقراری ارتباط) را می گیرد ، در این حالت 9600 بیت در ثانیه.

حلقه خالی ()

{// مقدار سنسور sensorValue = analogRead (A0) را بخوانید ؛ // خواندن سنسور را طوری چاپ کنید که محدوده آن را بدانید Serial.println (sensorValue) ؛

هر چیزی پس از مجموعه ای از ضربات

//

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

analogRead ()؛

وضعیت پین A0 (که از 0-1023 یک عدد کامل است) را بررسی می کند و این مقدار را در متغیر ذخیره می کند

sensorValue

// سنسور خوانده شده را در محدوده ای برای LED قرار دهید

analogWrite (9 ، نقشه (sensorValue ، 0 ، 1023 ، 0 ، 255)) ؛ تأخیر (100) ؛ // صبر کنید تا 100 میلی ثانیه}

خطی که به دنبال نظر بعدی می آید ، کارهای زیادی را در یک زمان انجام می دهد. یاد آوردن

analogWrite ()

دو آرگومان می گیرد ، شماره پین (در مورد ما 9) و مقدار نوشتن که باید بین 0 تا 255 باشد. تابع درون خطی

نقشه ()

پنج آرگومان دارد: عدد مورد ارزیابی (متغیر سنسور در حال تغییر) ، حداقل و حداکثر مورد انتظار و حداقل و حداکثر مورد نظر. بنابراین

نقشه ()

در مورد ما عملکرد ارزیابی سنسور ورودی و انجام چند ضرب متقاطع برای کاهش خروجی از 0-1023 به 0-255 است. نتیجه به آرگومان دوم برگردانده می شود

analogWrite ()؛

، تنظیم روشنایی LED متصل به پین 9.

مرحله 4: یک مدار فیزیکی آردوینو بسازید (اختیاری)

ساخت یک مدار فیزیکی آردوینو (اختیاری)
ساخت یک مدار فیزیکی آردوینو (اختیاری)

برای برنامه ریزی Arduino Uno فیزیکی خود ، باید نرم افزار رایگان (یا افزونه ای برای ویرایشگر وب) را نصب کرده ، سپس آن را باز کنید. فتوسل های مختلف دارای مقادیر متفاوتی هستند ، بنابراین اگر مدار فیزیکی شما کار نمی کند ، ممکن است لازم باشد مقاومت متصل شده با آن را تغییر دهید. در مورد کلاسهای الکترونیک دستورالعمل مقاومت ها ، در مورد تقسیم کننده های ولتاژ بیشتر بدانید.

با اتصال قطعات و سیمها به مدار Arduino Uno سیم کشی کنید تا با اتصالات نشان داده شده در مدارهای Tinkercad مطابقت داشته باشد. برای آشنایی بیشتر با کار با برد فیزیکی Arduino Uno ، کلاس رایگان Arduino را مشاهده کنید.

کد را از پنجره کد مدارهای Tinkercad کپی کرده و در نرم افزار Arduino خود در یک طرح خالی بچسبانید ، یا روی دکمه بارگیری (پیکان رو به پایین) کلیک کنید و باز کنید

همچنین می توانید این مثال را در نرم افزار Arduino با رفتن به مسیر File -> Examples -> 03. Analog -> AnalogInOutSerial پیدا کنید.

کابل USB خود را وصل کرده و برد و پورت خود را در منوی Tools نرم افزار انتخاب کنید.

کد را بارگذاری کنید و با دست خود سنسور را از دریافت نور بپوشانید و/یا نوری را به سنسور خود بتابانید!

مانیتور سریال را باز کنید تا مقادیر سنسور خود را مشاهده کنید. به احتمال زیاد ، بسته به شرایط نوری شما ، ارزشهای واقعی تا 0 یا 1023 ادامه نخواهد داشت. با خیال راحت محدوده 0-1023 را به حداقل و حداکثر مشاهده شده خود تنظیم کنید تا حداکثر محدوده بیان روشنایی را در LED دریافت کنید.

مرحله 5: بعد ، سعی کنید…

اکنون که خواندن یک مقاومت نوری و ترسیم خروجی آن را برای کنترل روشنایی یک LED یاد گرفته اید ، آماده استفاده از این مهارت ها و سایر مهارتهایی هستید که تا کنون آموخته اید.

آیا می توانید LED را با نوع دیگری از خروجی ، مانند سروو موتور ، عوض کنید و مقداری کد ایجاد کنید که سطح نور فعلی سنسور را به عنوان یک موقعیت معین در طول یک سنج نشان دهد؟

سعی کنید مقاومت عکس خود را با سایر ورودی های آنالوگ مانند سنسور فاصله اولتراسونیک یا پتانسیومتر جایگزین کنید.

با نحوه نظارت بر ورودی های دیجیتال و آنالوگ Arduino خود از طریق رایانه با استفاده از Serial Monitor بیشتر آشنا شوید.

توصیه شده: