Съдържание:

Сензор за светлина (фоторезистор) с Arduino в Tinkercad: 5 стъпки (със снимки)
Сензор за светлина (фоторезистор) с Arduino в Tinkercad: 5 стъпки (със снимки)

Видео: Сензор за светлина (фоторезистор) с Arduino в Tinkercad: 5 стъпки (със снимки)

Видео: Сензор за светлина (фоторезистор) с Arduino в Tinkercad: 5 стъпки (със снимки)
Видео: датчик света на ардуино 2024, Ноември
Anonim
Сензор за светлина (фоторезистор) с Arduino в Tinkercad
Сензор за светлина (фоторезистор) с Arduino в Tinkercad

Проекти на Tinkercad »

Нека се научим как да четем фоторезистор, чувствителен към светлина тип променлив резистор, използвайки аналоговия вход на Arduino. Нарича се още LDR (зависим от светлина резистор).

Досега вече сте се научили да управлявате светодиодите с аналоговия изход на Arduino и да четете потенциометър, който е друг тип променлив резистор, така че ще надградим тези умения в този урок. Не забравяйте, че аналоговите входове на Arduino (щифтове с маркировка A0-A6) могат да открият постепенно променящ се електрически сигнал и да го преведат в число между 0 и 1023.

Образ
Образ

Разгледайте примерната схема, вградена тук в работната равнина, като щракнете върху Стартиране на симулация и щракнете върху фоторезистора (кафяв овал с извита линия по средата), след което плъзнете плъзгача за яркост, за да регулирате симулирания вход на светлина.

В този урок вие сами ще изградите тази симулирана верига покрай извадката. За да изградите по желание физическата верига, съберете вашата Arduino Uno платка, USB кабел, платка без запояване, LED, резистори (220 ома и 4.7k ома), фоторезистор и проводници.

Можете да го следвате практически, като използвате Tinkercad Circuits. Можете дори да видите този урок от Tinkercad (необходимо е безплатно влизане)! Разгледайте примерната верига и изградете своя собствена до нея. Tinkercad Circuits е безплатна програма, базирана на браузър, която ви позволява да изграждате и симулирате схеми. Той е идеален за учене, преподаване и създаване на прототипи.

Стъпка 1: Изградете веригата

Изградете веригата
Изградете веригата
Изградете веригата
Изградете веригата

Разгледайте схемата на макета на снимката. Може да бъде полезно да разгледате безплатна кабелна версия на тази примерна схема за сравнение, на снимката. В тази стъпка ще изградите своя собствена версия на тази схема покрай извадката в работната равнина.

За да продължите, заредете нов прозорец на Tinkercad Circuits и изградете своя собствена версия на тази схема покрай извадката.

Идентифицирайте фоторезистора, светодиода, резисторите и проводниците, свързани към Arduino в работната равнина на Tinkercad Circuits.

Плъзнете Arduino Uno и макет от панела с компоненти до работната равнина, до съществуващата схема.

Свържете релсите за захранване (+) и земята (-) към Arduino 5V и заземяване (GND) съответно, като щракнете, за да създадете проводници.

Разширете захранващите и заземителните релси до съответните им шини на противоположния край на макета (по избор за тази верига, но добра обичайна практика).

Включете светодиода в два различни реда, така че катодът (отрицателен, по-къс крак) да се свърже с единия крак на резистор (навсякъде от 100-1K ома е добре). Резисторът може да отиде в която и да е ориентация, тъй като резисторите не са поляризирани, за разлика от светодиодите, които трябва да бъдат свързани по определен начин, за да функционират.

Свържете другия резисторен крак към земята.

Свържете LED анода (положителен, по -дълъг крак) към Arduino щифт 9.

Плъзнете фоторезистор от панела с компоненти към дъската, така че краката му да се включат в два различни реда.

Щракнете, за да създадете проводник, свързващ един крак на фоторезистора към захранването.

Свържете другия крак към аналоговия щифт A0 на Arduino.

Плъзнете резистор от панела с компоненти, за да свържете крака на фоторезистора, свързан към A0 със земята, и регулирайте стойността му до 4,7 k ома.

Стъпка 2: Код с блокове

Код с блокове
Код с блокове

Нека използваме редактора на кодови блокове, за да изслушаме състоянието на фоторезистора, след което задаваме светодиод на относителна яркост въз основа на това колко светлина вижда сензорът. Може да искате да опресните паметта си за аналогов LED изход в урока Fading LED.

Щракнете върху бутона „Код“, за да отворите редактора на кодове. Сивите нотационни блокове са коментари за отбелязване на това, което възнамерявате да правите с вашия код, но този текст не се изпълнява като част от програмата.

Щракнете върху категорията Променливи в редактора на кодове.

За да съхраните стойността на съпротивлението на фоторезистора, създайте променлива, наречена "sensorValue".

Плъзнете "зададен" блок. Ще съхраняваме състоянието на нашия фоторезистор в променливата

sensorValue

Щракнете върху категорията Input и плъзнете блок "analog analog pin pin" и го поставете в блока "set" след думата "to"

Тъй като нашият потенциометър е свързан към Arduino на щифт A0, променете падащото меню на A0.

Щракнете върху категорията Output и плъзнете блока "print to serial monitor".

Придвижете се до категорията Променливи и плъзнете променливата сензорна стойност към блока "печат към сериен монитор" и се уверете, че падащото меню е настроено да отпечатва с нов ред. По желание стартирайте симулацията и отворете серийния монитор, за да проверите дали показанията влизат и се променят, когато регулирате сензора. Стойностите на аналоговия вход варират от 0-1023.

Тъй като искаме да пишем на светодиода с число между 0 (изключено) и 255 (пълна яркост), ще използваме блока "map", за да направим за нас кръстосано умножение. Придвижете се до категорията „Математика“и плъзнете блок „карта“.

В първия слот плъзнете променлив блок sensorValue, след което задайте диапазона от 0 до 255.

Обратно в категорията Изход, плъзнете аналогов блок "set pin", който по подразбиране казва "set pin 3 to 0." Регулирайте го, за да зададете щифт 9.

Плъзнете блока на картата, който сте направили по -рано, в полето "към" за задаване на щифт "блок", за да запишете коригирания номер към LED щифта с помощта на ШИМ.

Щракнете върху категорията Контрол и плъзнете блок за изчакване и го регулирайте, за да забавите програмата за 0,1 секунди.

Стъпка 3: Обяснен код на фоторезистора Arduino

Когато редакторът на кода е отворен, можете да щракнете върху падащото меню вляво и да изберете „Блокове + текст“, за да разкриете кода на Arduino, генериран от кодовите блокове. Следвайте, докато изследваме кода по -подробно.

int sensorValue = 0;

Преди

настройвам()

създаваме променлива за съхраняване на текущата стойност, отчетена от потенциометъра. Нарича се

int

защото е цяло число или произволно цяло число.

void setup ()

{pinMode (A0, INPUT); pinMode (9, OUTPUT); Serial.begin (9600); }

Вътре в настройката пиновете се конфигурират с помощта на

pinMode ()

функция. Пин А0 е конфигуриран като вход, така че можем да "слушаме" електрическото състояние на потенциометъра. Пин 9 е конфигуриран като изход за управление на светодиода. За да може да изпраща съобщения, Arduino отваря нов сериен комуникационен канал с

Serial.begin ()

който приема аргумент за скорост на предаване (каква скорост за комуникация), в този случай 9600 бита в секунда.

void loop ()

{// прочетете стойността от сензора sensorValue = analogRead (A0); // отпечатайте показанията на сензора, за да знаете неговия диапазон Serial.println (sensorValue);

Всичко след набор от наклонени черти

//

е коментар, който помага на хората да разберат на обикновен език за какво е предназначена програмата, но не е включен в програмата, която вашият Arduino изпълнява. В главния цикъл се извиква функция

analogRead ();

проверява състоянието на щифт A0 (което ще бъде цяло число от 0-1023) и съхранява тази стойност в променливата

sensorValue

// картографиране на показанията на сензора в диапазон за светодиода

analogWrite (9, map (sensorValue, 0, 1023, 0, 255)); забавяне (100); // Изчакайте 100 милисекунди (и)}

Редът след следващия коментар прави много наведнъж. Помня

analogWrite ()

приема два аргумента, пинов номер (9 в нашия случай) и стойността за запис, която трябва да бъде между 0 и 255. Вградената функция

map ()

приема пет аргумента: числото за оценка (постоянно променящата се променлива на сензора), очаквания минимум и очакван максимум и желаните min и max. Така че

map ()

функцията в нашия случай оценява входящата стойност на sensorValue и прави кръстосано умножение, за да намали изхода от 0-1023 на 0-255. Резултатът се връща във втория аргумент на

analogWrite ();

настройка на яркостта на светодиода, свързан към щифт 9.

Стъпка 4: Изградете физическа верига Arduino (по избор)

Изградете физическа верига Arduino (по избор)
Изградете физическа верига Arduino (по избор)

За да програмирате физическия си Arduino Uno, ще трябва да инсталирате безплатния софтуер (или приставка за уеб редактора), след което да го отворите. Различните фотоклетки имат различни стойности, така че ако вашата физическа верига не работи, може да се наложи да смените резистора, който е свързан с него. Научете повече за разделителите на напрежението в урока по електроника по Instructables Electronics за резистори.

Свържете веригата Arduino Uno, като включите компоненти и проводници, за да съответстват на връзките, показани тук в Tinkercad Circuits. За по-задълбочено разглеждане на работата с вашата физическа дъска Arduino Uno, разгледайте безплатния клас Arduino на Instructables.

Копирайте кода от прозореца с кодове на Tinkercad Circuits и го поставете в празна скица във вашия софтуер Arduino или щракнете върху бутона за изтегляне (стрелка надолу) и отворете

полученият файл с помощта на Arduino. Можете също да намерите този пример в софтуера Arduino, като отворите Файл -> Примери -> 03. Аналог -> AnalogInOutSerial.

Включете USB кабела и изберете дъската и порта в менюто Инструменти на софтуера.

Качете кода и използвайте ръката си, за да покриете сензора от получаване на светлина и/или да осветлите сензора си!

Отворете серийния монитор, за да наблюдавате стойностите на сензора. Вероятно стойностите в реалния свят няма да се простират чак до 0 или чак до 1023, в зависимост от условията на осветление. Не се колебайте да регулирате диапазона 0-1023 до наблюдавания минимум и максимум, за да получите максималния диапазон на изразяване на яркостта на светодиода.

Стъпка 5: След това опитайте …

Сега, след като сте се научили да четете фоторезистор и да картографирате изхода му, за да контролирате яркостта на светодиода, сте готови да приложите тези и други умения, които сте научили досега.

Можете ли да смените светодиода за друг тип изход, като серво мотор, и да създадете някакъв код, който да отразява текущото ниво на осветеност на сензора като определена позиция по протежение на манометъра?

Опитайте да смените фоторезистора си за други аналогови входове, като ултразвуков сензор за разстояние или потенциометър.

Научете повече за това как да наблюдавате цифровите и аналоговите входове на вашия Arduino през компютъра с помощта на сериен монитор.

Препоръчано: