Скочи на садржај

Принцип рада аналогних улаза Арудинa

Циљ овог пројекта је упознавање са начином коришћења потенциометра, радом аналогних улаза и читање вредности са сензора (у овом случају улогу сензора има потенциометар). Теоријско објашњење дато је на почетку видеo туторијала, док у наставку се може видети како практично изгледа када напон који контролишемо потенциометром читамо са аналогног улаза Ардуина, и како ту вредност напона користимо за контролу јачине светлости диоде.

Аналогни пинови Ардуина

Опсег напона који је могуће довести на аналогне улазе (А0-А5) је између 0 и 5V. Сигнали са улаза се води на А/Д конверторе унутар микроконтролера, који аналогне сигнале конвертују у одговарајуће дигиталне бројеве и могу узимати вредности између 0 и 1023. Аналогном сигналу од 0V одговара дигитална вредност 0, док напону од 5V одговара вредност од 1023. Ово практично значи да је резолуција (осетљивост) нешто мања од 50mV (дигитална вредност 1 износи око 50mV улазног напона).

А4 и А5 пинови се користе као SDA и SCL линије за I2C серијску комуникацију.

Потенциометар

Потенциометар је променљиви отпорник који функционише као разделник напона. На његовој проводној површини налази се клизач чијом се променом позиције на проводној површини мења отпор на крајевима потенциометра. У електричном колу је везан паралелно.

Потребне компоненте за пројекат

1. Потенциометар

2. ЛЕД диода

3. Отпорник 220Ω (за заштиту диоде)

Електрична шема и скица

Објашњење скице

Одељак дефиниција

Дефинишу се две константе „LED“ и „POT“ са вредностима „10“ и „А0“. Вредност „10“ одговара пину „10“ на који je повезана ЛЕД диода, док „А0“ представља аналогни улаз „А0“ на који је повезан средњи извод потенциометра.

Одељак конфигурације

У одељку конфигурације пин „10“ дефинишемо као излазни, синтакса изгледа овако:

pinMode(LED, OUTPUT)

Одељак петље

Напон на аналогном улазу „А0“ читамо функцијом „analogRead(POT)“ и смештамо у променљиву „sensorValue“.

Функцијом „map“ се врши промена опсега вредности променљиве „sensorValue“.

ledPWM = map(sensorValue, 0, 1023, 0, 255)

- sensorValue - променљива којој се мења опсег вредности
- 0 (прва 0) - минимална вредност опсега из ког мењамо
- 1023 - максимална вредност опсега из ког мењамо
- 0 (друга 0) - минимална вредност новог опсега
- 255 - максимална вредност новог опсега

Када је обављена промена опсега вредности, нова вредност се смешта у променљиву ledPWM.

Функцијом „analogWrite“ диода прикључену на пин 10 се уљкучује и светли интензитетом дефинисаним променљивом ledPWM.

Функцијом „delay“ је дефинисано кашњење од 100 милисекунди пре преласка на наредну итерацију функције „loop“.

Додатно објашњење функција „analogWrite“ и „map“

Функција analogWrite има два параметра, први је пин на који ће генерисати PWM сигнал (дигитални пинови који имају ту могућност су означени знаком ~), други параметар је целобројна вредност између 0 и 255.

Као што је поменуто, вредност напона са аналогних улаза се конвертује у дигиталне вредности у опсегу од 0 до 1023. Дакле, како би се потенциометром контролисало осветљење диоде опсег вредности променљиве „sensorValue“ мора се смањити са тренутног [0, 1023] на [0,255] коришћењем функције „map“.

Најслађе за крај – видео туторијал