Prevod z analógového na digitálny (analógový čítací sériový) - základy Arduina

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V týchto základoch Arduina sa snažíme porozumieť postupu implementácie kódu, pri ktorom sa na analógový vstup Arduino privádza externý analógový signál a prekladá sa alebo prevádza na zodpovedajúci proporčný digitálny výstup. Tu ako zdroj analógového signálu používame premenlivý odpor vo forme potu.

Analógové čítanie sériové

V tomto príklade sa naučíme metódu čítania analógového vstupu z externého zariadenia, napríklad z potenciometra, čo je n-elektromechanické zariadenie určené na implementáciu meniaceho sa odporu v obvode ručnou prevádzkou.



Arduino možno použiť na meranie veľkosti napätia vychádzajúceho z potenciometra, aby bolo možné načítať a identifikovať jeho príslušne sa meniaci odpor. To je možné dosiahnuť napájaním napätia do analógového vstupného portu Arduino ako analógovej hodnoty.

Tu uvidíme, ako sa vynucuje vyššie uvedené po nadviazaní sériovej komunikácie cez Arduino a prepojený počítač.



Vyžaduje sa hardvér

Doska Arduino

10-kilohmový potenciometer

Prevádzka obvodu

Ako je znázornené na schéme vyššie, zapojte tri vodiče vychádzajúce z hrnca do vašich portov Arduino.

Drôt z jedného z vonkajších vývodov nádoby je priradený k zemi alebo zápornej čiare dosky.

Druhý voľný krajný vonkajší koniec je pripojený k + 5V dosky.

Ostáva stredový vývod banky, ktorý sa ukončí na analógový vstup dosky Arduino.

Pri otáčaní hriadeľa hrnca sa odpor cez stredový prívod a vonkajší terminál posúva z vyššieho na dolný a naopak v závislosti od toho, ku ktorej strane sa posuvné rameno dostane bližšie.

Napríklad keď je posuvné rameno otočené smerom k vodiču + 5 V, stredný vodič sa priblíži k 5 V a má tendenciu získavať celú hodnotu pri dotyku s vodičom priradeným 5 V. Podobne, keď sa posúvač hriadeľa pohybuje smerom k prívodu zemnej nádoby, stredový vodič má tendenciu dosahovať nulový potenciál.

Vyššie uvedené lineárne sa meniace napájacie napätie na strednom vodiči banky sa číta z arduino analógového vstupu na jej interpretáciu do zodpovedajúcim spôsobom sa meniaceho odporu banky.

Arduino obsahuje vnútorné obvody analógovo-digitálneho prevodníka, ktoré efektívne interpretujú vyššie uvedený pohyb hrnca a prevádzajú ho na čísla medzi 0 a 1023.

Konkrétna poloha nad hriadeľom hrnca vedie k tomu, že Arduino preloží proporcionálne číslo medzi 0 a 1023 a pre koncové hodnoty 5 V a nulové volty sú interpretácie zjavne 0 a 1023.

V spomenutom programe je potrebné iba spustiť funkciu nastavenia na spustenie sériovej komunikácie, pričom rýchlosť je 9600 bitov dát za sekundu na celej doske Arduino a počítači.

Očakávaný príkaz je v tvare:

Serial.begin (9600)

Následne v hlavnej slučke vášho kódu vynútime premennú, aby sme opravili hodnotu odporu (ktorá by bola, ako je diskutované medzi 0 a 1023, vhodná len pre dátový typ int), ktorú ste dostali z potenciálnych káblov:

int sensorValue = analogRead (A0)

Na záver si tieto informácie vytlačte do sériového okna ako desatinnú hodnotu (DEC). Na implementáciu v poslednom riadku kódu môžete použiť príkaz Serial.println ():

Serial.println (sensorValue, DEC)

Potom, kedykoľvek sa inicializuje Serial Monitor vo vývojovej doméne Arduino (to sa deje kliknutím na tlačidlo, ktoré sa nachádza priamo na pravej strane tlačidla „Nahrať“ v hlavičke programu).

videli by sme konzistentný reťazec číslic bežiaci od 0-1023, zodpovedajúci meniacej sa rotačnej polohe hrotu hrnca.

Ak v určitom okamihu zastavíme rotáciu hrncového hriadeľa, na obrazovke Arduina sa zobrazí príslušné okamžité číslo, to by sa opäť proporcionálne zmenilo, keď budeme pokračovať v zmene polohy hrncového hriadeľa.

Kód

/ *
AnalogReadSerial
Načíta analógový vstup na kolíku 0 a výsledok vytlačí na sériový monitor.
Stredový kolík potenciometra pripevnite na kolík A0 a vonkajšie kolíky na + 5 V a uzemnite.

Tento príkladový kód je voľným dielom.
* /

// rutina nastavenia sa spustí raz, keď stlačíte reset:
void setup () {
// inicializuje sériovú komunikáciu rýchlosťou 9600 bitov za sekundu:
Serial.begin (9600)
}

// rutina cyklu beží navždy a znova:
void loop () {
// načítanie vstupu na analógovom kolíku 0:
int sensorValue = analogRead (A0)
// vytlačiť prečítanú hodnotu:
Serial.println (sensorValue)
delay (1) // oneskorenie medzi načítaniami kvôli stabilite
}




Predchádzajúci: Monitorovanie stavu prepínača (digitálne čítanie sériovo) - základy Arduina Ďalej: Obvod regulátora napätia s nastaviteľným napätím 1,25 V až 120 V