Конвертовање аналогног у дигитално (аналогно серијско читање) - Основе Ардуина

Испробајте Наш Инструмент За Елиминисање Проблема





У овим основама Ардуина покушавамо да разумемо процедуру примене кода у којој се спољни аналогни сигнал доводи на Ардуино аналогни улаз и преводи или претвара у одговарајуће пропорционално дигитално очитавање. Овде користимо променљиви отпор у облику лонца као аналогног извора сигнала.

Аналогни серијски читач

У овом примеру учимо метод читања аналогног улаза са спољног уређаја, таквог потенциометра, који је н електро-механички уређај дизајниран за примену променљивог отпора у колу путем ручног рада.



Ардуино се може користити за мерење величине напона који излази из потенциометра како би се очитао и идентификовао његов одговарајући променљиви отпор. То се може постићи напајањем напона у аналогни улазни порт Ардуино као аналогне вредности.

Овде ћемо видети како се горе наведено спроводи након успостављања серијске комуникације преко Ардуина и повезаног рачунара.



Потребан хардвер

Ардуино Боард

Потенциометар од 10 килом

Цирцуит Оператион

Као што је приказано на горњем дијаграму, спојите три жице које излазе из лонца на ваше Ардуино портове.

Жица са једног од спољних каблова лонца додељена је тлу или негативној линији плоче.

Други слободни крајњи спољни крајни кабл се повезује са + 5В плоче.

Преостало је централно водство пота, које се завршава на аналогном улазу Ардуино плоче.

Када се осовина лонца ротира, отпор преко средишњег кабла и спољне стезаљке помера се са више на ниже и обрнуто, у зависности од тога којој се страни клизач приближава.

На пример, када се клизач окрене према одводу + 5В, средишњи проводник се приближава 5В и тежи да добије целу вредност док додирује додељени одвод од 5В. Слично томе, када се клизачко вратило помери према уземљеном каблу лонца, средишњи кабл тежи да постигне нулти потенцијал.

Горњи линеарно променљиви напон напајања преко средишњег кабла лонца чита аналогни улаз ардуино ради његове интерпретације у одговарајући променљиви отпор лонца.

Ардуино затвара интерно коло аналогно-дигиталног претварача које ефикасно тумачи горе поменути лонац и претвара га у бројеве између 0 и 1023.

Одређени положај над осовином лонца резултира пропорционалним бројем између 0 и 1023 који Ардуино преводи, а за крајње вредности од 5В и нула волти, интерпретације су очигледно 0 и 1023.

У наведеном програму треба само покренути функцију подешавања за покретање серијске комуникације, брзина је 9600 бита података у секунди, преко ваше плоче Ардуино и рачунара.

Очекивана команда је у облику:

Сериал.бегин (9600)

После тога, у главној петљи вашег кода, примењујемо променљиву да бисмо поправили вредност отпора (која би била онаква како се расправљало између 0 и 1023, управо погодна за инт тип података) примљену од пот води:

инт сенсорВалуе = аналогРеад (А0)

За крај, одштампајте ове информације у свој серијски прозор као децималну (ДЕЦ) вредност. За ово можете да примените наредбу Сериал.принтлн () у последњем реду кода:

Сериал.принтлн (сенсорВалуе, ДЕЦ)

После тога, сваки пут када се покрене Сериал Монитор у развојној домени Ардуино (то се ради кликом на дугме одмах са десне стране дугмета „Отпреми“ у заглављу програма).

видели бисмо доследан ланац цифара који се креће од 0-1023, што одговара променљивом положају ротације осовине лонца.

Ако у неком тренутку зауставимо ротацију осовине лонца, одговарајући тренутни број ће се приказати на екрану Ардуина, то би се опет пропорционално променило док наставимо да мењамо положај осовине лонца.

Код

/ *
АналогРеадСериал
Чита аналогни улаз на пину 0, исписује резултат на серијски монитор.
Причврстите средишњи клин потенциометра на клин А0, а спољни клинови на + 5В и уземљење.

Овај пример кода је у јавном домену.
* /

// рутина подешавања се покреће једном када притиснете ресет:
воид сетуп () {
// иницијализација серијске комуникације брзином од 9600 бита у секунди:
Сериал.бегин (9600)
}

// рутина петље се изнова изнова понавља:
воид лооп () {
// очитавање улаза на аналогном пину 0:
инт сенсорВалуе = аналогРеад (А0)
// исписати вредност коју сте прочитали:
Сериал.принтлн (сенсорВалуе)
делаи (1) // кашњење између очитавања ради стабилности
}




Претходно: Надгледање стања прекидача (дигитални серијски читач) - Основе Ардуина Следеће: 1.25В до 120В струјни круг регулатора напона који се може подесити