Мазмуну:

Жарык сенсору (Фоторезистор) Ардуино менен Тинкеркадда: 5 кадам (Сүрөттөр менен)
Жарык сенсору (Фоторезистор) Ардуино менен Тинкеркадда: 5 кадам (Сүрөттөр менен)

Video: Жарык сенсору (Фоторезистор) Ардуино менен Тинкеркадда: 5 кадам (Сүрөттөр менен)

Video: Жарык сенсору (Фоторезистор) Ардуино менен Тинкеркадда: 5 кадам (Сүрөттөр менен)
Video: Показать расстояние от датчика расстояния VL53L1X на ЖК-дисплее Arduino 2024, Июль
Anonim
Жарык сенсору (Фоторезистор) Ардуино менен Тинкеркадда
Жарык сенсору (Фоторезистор) Ардуино менен Тинкеркадда

Tinkercad долбоорлору »

Келгиле, Ардуинонун аналогдук киргизүүсүн колдонуп, өзгөрмөлүү резистордун жарык сезгич түрү болгон фоторезисторду окуганды үйрөнөлү. Бул LDR (жарыкка көз каранды каршылык) деп да аталат.

Буга чейин сиз LED диоддорун Ардуинонун аналогдук чыгаруусу менен башкарууну жана потенциометрди окууну үйрөнгөнсүз, бул өзгөрмөлүү резистордун дагы бир түрү, андыктан биз бул сабакта бул көндүмдөргө негизделебиз. Ардуинонун аналогдук кириштери (A0-A6 менен белгиленген пиндер) бара-бара өзгөрүп турган электрдик сигналды аныктай алат жана бул сигналды 0 менен 1023 ортосундагы сандарга которот.

Сүрөт
Сүрөт

Симуляцияны баштоо жана фоторезисторго (ортодо ылдый караган сызык менен күрөң сүйрү) чыкылдатуу менен жумушчу планга орнотулган үлгү схемасын изилдеп, симуляцияланган жарык кирүүсүн тууралоо үчүн жарыктыкты сыдырманы сүйрөңүз.

Бул сабакта, сиз бул симуляцияланган схеманы өзүңүз үлгүнүн жанында курасыз. Физикалык схеманы каалашынча куруу үчүн, Arduino Uno тактаңызды, USB кабелин, ширетилбеген нанды, светодиодду, резисторлорду (220 ом жана 4.7к Ом), фоторезисторду жана нан такталарын чогултуп алыңыз.

Сиз Tinkercad схемаларын колдонуп, ээрчип кете аласыз. Сиз бул сабакты Tinkercad ичинде көрө аласыз (бекер кирүү керек)! Үлгү схемасын изилдеп, анын жанына өзүңүз куруңуз. Tinkercad Circuits-бул браузерге негизделген бекер программа, ал схемаларды курууга жана симуляциялоого мүмкүндүк берет. Бул үйрөнүү, үйрөтүү жана прототиптөө үчүн идеалдуу.

1 -кадам: Районду куруу

Circuit куруу
Circuit куруу
Circuit куруу
Circuit куруу

Сүрөттөгү панель схемасын карап көрүңүз. Сүрөттөгү салыштыруу үчүн бул үлгү схемасынын бекер зымдуу версиясын кароо пайдалуу болушу мүмкүн. Бул кадамда, сиз бул схеманын өз версиясын жумушчу пландагы үлгү боюнча түзөсүз.

Улантуу үчүн, жаңы Tinkercad Circuits терезесин жүктөңүз жана бул схеманын өз версиясын үлгү боюнча куруңуз.

Tinkercad микросхемаларынын жумушчу планында Arduino менен байланышкан фоторезисторду, LEDди, резисторлорду жана зымдарды аныктаңыз.

Учурдагы схеманын жанындагы компоненттер панелинен Arduino Uno менен нан тактасын сүйрөңүз.

Зымдарды түзүү үчүн чыкылдатуу менен, панелдик кубаттуулукту (+) жана жерге (-) рельстерди тиешелүү түрдө Arduino 5V жана жерге (GND) туташтырыңыз.

Нан тактасынын карама -каршы четиндеги тиешелүү автобустарга электр жана жер темир жолун жайыңыз (бул схема үчүн милдеттүү эмес, бирок жакшы практика).

Светодиодду эки башка панель катарына туташтырыңыз, ошондо катод (терс, кыскараак буту) каршылыктын бир бутуна туташат (100-1К Ом каалаган жерде жакшы). Резистор эки багытта жүрүшү мүмкүн, анткени резисторлор иштөө үчүн белгилүү бир жол менен туташтырылышы керек болгон LEDдан айырмаланып поляризацияланган эмес.

Башка резистордун бутун жерге туташтырыңыз.

LED анодун (оң, узун буту) Arduino пин 9га туташтырыңыз.

Фоторезисторду компоненттер панелинен панелге сүйрөңүз, ошондо анын буттары эки башка катарга туташат.

Бийликке бир фоторезистордун бутун туташтыруучу зымды түзүү үчүн чыкылдатыңыз.

Башка бутун Arduino аналогдук пин A0 менен туташтырыңыз.

A0 менен туташкан фоторезистордун бутун жер менен туташтыруу үчүн компоненттер панелинен каршылыкты сүйрөңүз жана анын маанисин 4.7k Омго тууралаңыз.

2 -кадам: Блоктор менен код

Блоктор менен код
Блоктор менен код

Келгиле, фоторезистордун абалын угуу үчүн код блокторунун редакторун колдонолу, андан кийин сенсор канчалык жарык көргөнүнө жараша LEDди салыштырмалуу жарыктыкка коюңуз. Сиз Fading LED сабагында LED аналогдук чыгаруунун эс тутумун жаңырткыңыз келиши мүмкүн.

Код редакторун ачуу үчүн "Код" баскычын басыңыз. Боз Notation блоктору - бул сиздин кодуңузга эмнени каалап жатканыңызды жазуу үчүн комментарийлер, бирок бул текст программанын бир бөлүгү катары аткарылган эмес.

Код редакторунда Variables категориясын чыкылдатыңыз.

Фоторезистордун каршылык маанисин сактоо үчүн "sensorValue" аттуу өзгөрмөнү түзүңүз.

"Орнотуу" блогун сүйрөңүз. Биз фоторезисторубуздун абалын өзгөрмөдө сактайбыз

sensorValue

Киргизүү категориясын чыкылдатып, "аналогдук окуу пин" блогун сүйрөп чыгып, "to" сөзүнөн кийин "set" блогуна коюңуз.

Биздин потенциометр A0 пининдеги Arduino менен туташкандыктан, ачылуучу тизмекти A0го өзгөртүңүз.

Чыгуу категориясын чыкылдатып, "сериялык мониторго басып чыгаруу" блогун сүйрөңүз.

Variables категориясына өтүңүз жана sensorValue өзгөрмөсүн "сериялык мониторго басып чыгаруу" блогуна сүйрөңүз жана ачылуучу тизмек жаңы сап менен басып чыгарылганын текшериңиз. Кааласаңыз, симуляцияны баштаңыз жана сенсорду тууралаганыңызда, көрсөткүчтөр кирип жатканын жана өзгөрүп жатканын текшерүү үчүн сериялык мониторду ачыңыз. Аналогдук киргизүү мааниси 0-1023 чейин.

Биз LEDге 0 (өчүрүү) менен 255 (толук жарыктык) ортосундагы сандарды жазууну каалаганыбыз үчүн, "карта" блогун колдонуп, биз үчүн кайчылаш көбөйтүүнү жасайбыз. Математика категориясына өтүңүз жана "карта" блогун сүйрөңүз.

Биринчи уячада sensorValue өзгөрмө блогуна сүйрөңүз, андан кийин диапазонду 0дон 255ке чейин коюңуз.

Артка Чыгуу категориясына, демейки боюнча "3 -пинди 0 -ге коюңуз" деп жазылган аналогдук "pin pin" блогун сүйрөңүз. 9 -пин орнотуу үчүн аны тууралаңыз.

Түзөтүлгөн номерди PWMди колдонуп, LED пинге жазуу үчүн мурда жасаган карта блогун "pin pin" блогунун "to" талаасына сүйрөңүз.

Control категориясын чыкылдатып, күтүү блогун сүйрөп, программаны.1 секундга кечиктирүү үчүн тууралаңыз.

3 -кадам: Photoresistor Arduino коду түшүндүрүлдү

Код редактору ачык болгондо, сиз сол жактагы ачылуучу менюну чыкылдатып, "Блоктор + Текст" тандап, код блоктору тарабынан түзүлгөн Arduino кодун ачып бере аласыз. Кодду кененирээк изилдеп жатканда, ээрчип жүрүңүз.

int sensorValue = 0;

Чейин

жайгашуу()

биз потенциометрден окулган учурдагы маанини сактоо үчүн өзгөрмөнү түзөбүз. Деп аталат

int

анткени бул бүтүн сан, же кандайдыр бир бүтүн сан.

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

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

Орнотуунун ичинде пинтер конфигурацияланган

pinMode ()

функция. Pin A0 киргизүү катары конфигурацияланган, андыктан биз потенциометрдин электрдик абалын "уга алабыз". Pin 9 LEDди башкаруу үчүн чыгаруу катары конфигурацияланган. Билдирүүлөрдү жөнөтүү үчүн, Arduino менен жаңы сериялык байланыш каналын ачат

Serial.begin ()

бул baud rate аргументин талап кылат (кандай ылдамдык менен байланышуу керек), бул учурда секундасына 9600 бит.

боштук цикл ()

{// sensor sensValue = analogRead (A0) маанисин окуу; // сенсордун окуусун басып чыгаруу, андыктан анын диапазонун билесиз Serial.println (sensorValue);

Кыймылдын жыйындысынан кийин баары

//

бул комментарий, бул элге программанын эмне үчүн арналганын жөнөкөй тилде түшүнүүгө жардам берет, бирок сиздин Arduino иштеген программаңызга кирбейт. Негизги циклде функция деп аталат

analogRead ();

A0 пининин абалын текшерет (бул 0-1023 чейин бүтүн сан болот), жана бул маанини өзгөрмөгө сактайт

sensorValue

// сенсордун окуусун LED диапазонуна картага түшүрүү

analogWrite (9, карта (sensorValue, 0, 1023, 0, 255)); кечиктирүү (100); // 100 миллисекунд күтө туруңуз}

Кийинки комментарийден кийинки линия бир эле учурда көп нерсени жасап жатат. Эске

analogWrite ()

эки аргументти алат, пин номери (биздин учурда 9) жана 0 менен 255 ортосунда болушу керек болгон жазуу мааниси.

карта ()

беш аргументти талап кылат: баалоо үчүн сан (дайыма өзгөрүп туруучу сенсордун өзгөрмөсү), күтүлгөн минимум жана күтүлгөн максимум, каалаган мин жана максимум. Ошентип

карта ()

биздин учурда функция кирүүчү sensorValue баалоодо жана өндүрүштү 0-1023төн 0-255ке чейин түшүрүү үчүн кайчылаш көбөйтүүнү жасоодо. Жыйынтык экинчи аргументке кайтарылат

analogWrite ();

пин 9га туташкан LEDдин жарыктыгын орнотуу.

4 -кадам: Физикалык Arduino схемасын куруңуз (милдеттүү эмес)

Ардуино физикалык схемасын куруңуз (милдеттүү эмес)
Ардуино физикалык схемасын куруңуз (милдеттүү эмес)

Физикалык Arduino Unoну программалоо үчүн акысыз программаны (же веб редактору үчүн плагинди) орнотуп, анан аны ачышыңыз керек. Ар кандай фотоэлементтердин мааниси ар башка, андыктан сиздин физикалык схемаңыз иштебесе, аны менен жупташкан резисторду алмаштырышыңыз керек болот. Резисторлор боюнча Instructables Electronics сабагынан чыңалуу бөлүштүргүчтөрү жөнүндө көбүрөөк билиңиз.

Tinkercad микросхемаларында көрсөтүлгөн байланыштарга дал келген компоненттерди жана зымдарды туташтырып Arduino Uno схемасын өткөрүңүз. Ардуино Uno физикалык тактасы менен иштөөнү тереңирээк түшүнүү үчүн, Arduino бекер Instructables классын карап көрүңүз.

Кодду Tinkercad Circuits код терезесинен көчүрүп, Arduino программаңыздын бош эскизине чаптаңыз же жүктөө баскычын (ылдый караган жебени) басыңыз жана ачыңыз

Бул файлды Arduino программасында Файл -> Мисалдар -> 03. Analog -> AnalogInOutSerial өтүү менен таба аласыз.

USB кабелиңизди сайыңыз жана программалык камсыздоонун Tools менюсунда тактаңызды жана портуңузду тандаңыз.

Кодду жүктөңүз жана колуңуз менен сенсорду жарыктан коргоңуз жана/же сенсорго жарык чачыңыз!

Сенсордук баалуулуктарды сактоо үчүн сериялык мониторду ачыңыз. Чыныгы дүйнөлүк баалуулуктар сиздин жарык шарттарыңызга жараша 0 же 1023кө чейин созулбайт окшойт. 0-1023 диапазонун диоддун максималдуу жарыктыгы диапазонун алуу үчүн байкалган минимумга жана байкалган максимумга тууралаңыз.

5 -кадам: Кийинки, аракет…

Эми сиз фоторезисторду окуп, LEDдин жарыгын көзөмөлдөө үчүн анын чыгышын картага алууну үйрөндүңүз, буга чейин үйрөнгөн ушул жана башка жөндөмүңүздү колдонууга даярсыз.

Сиз светодиодду башка түргө алмаштыра аласызбы, мисалы, серво мотору жана сенсордун учурдагы жарык деңгээлин ченегич боюнча белгилүү бир позиция катары чагылдыруу үчүн кээ бир кодду түзө аласызбы?

Фоторезисторуңузду башка аналогдук кириштерге алмаштырууга аракет кылыңыз, мисалы, УЗИ аралык сенсору же потенциометр.

Сериялык монитордун жардамы менен компьютериңиз аркылуу Arduino санарип жана аналогдук кирүүлөрдү кантип көзөмөлдөө керектиги жөнүндө көбүрөөк билиңиз.

Сунушталууда: