kategória: Obvody mikrokontrolérov
Počet zobrazení: 18998
Komentáre k článku: 0

Pripojenie analógových snímačov k Arduino, snímanie snímačov

 

Senzory sa používajú na meranie množstiev, podmienok prostredia a reakcií na zmeny stavov a polôh. Na ich výstupe môžu byť digitálne signály, ktoré sa skladajú zo signálov núl a núl, a analógové signály pozostávajúce z nekonečného počtu napätí v určitom intervale.


O senzoroch

Preto sú senzory rozdelené do dvoch skupín:

1. Digitálne.

2. Analógové.

Na čítanie digitálnych hodnôt je možné v našom prípade použiť digitálne aj analógové vstupy mikrokontroléra Avr na doske Arduino, Analógové snímače musia byť pripojené prostredníctvom analógovo-digitálneho prevodníka (ADC). ATMEGA328 je nainštalovaný vo väčšine dosiek ARDUINO (viac o tom na webe je článok), obsahuje vo svojom obvode zabudovanú ADC. K dispozícii je až 6 analógových vstupov.

Ak to pre vás nestačí, môžete na pripojenie k digitálnym vstupom použiť ďalší externý ADC, čo však skomplikuje kód a zvýši jeho objem v dôsledku pridania algoritmov spracovania a kontroly ADC. Téma analógovo-digitálnych prevodníkov je dostatočne široká, takže o nich môžete vytvoriť samostatný článok alebo cyklus. Je ľahšie používať dosku s veľkým počtom z nich alebo multiplexery. Pozrime sa, ako pripojiť analógové senzory k Arduino.

Pripojenie analógových senzorov k Arduino, čítanie údajov zo senzorov

Všeobecná schéma analógových snímačov a ich pripojenie

Senzor môže byť dokonca konvenčným potenciometrom. V skutočnosti je to odporový snímač polohy, na základe ktorého regulujú hladinu tekutín, uhol sklonu, otváranie niečoho. To môže byť spojený s arduino dvoma spôsobmi.

Všeobecná schéma analógových snímačov a ich pripojenie

Vyššie uvedený obvod vám umožňuje odčítať hodnoty od 0 do 1023, pretože všetky napätia na potenciometri klesajú. Princíp deliča napätia tu pracuje, v ktorejkoľvek polohe motora, je napätie distribuované lineárne na povrchu odporovej vrstvy alebo na logaritmickej stupnici (v závislosti od potenciometra), že časť napätia, ktorá zostáva medzi výstupom jazdca (klzný kontakt) a zemou (GND) sa dostane na vstup. Na spojovacej doske vyzerá toto spojenie takto:

Schéma zapojenia analógových snímačov

Druhá možnosť je pripojená podľa schémy klasického odporového deliča, pričom tu napätie v bode maximálneho odporu potenciometra závisí od odporu horného odporu (na obrázku R2).

Klasický oddeľovač odporu

Vo všeobecnosti je odporový delič veľmi dôležitý nielen v oblasti práce s mikrokontrolérmi, ale všeobecne aj v elektronike. Nižšie vidíte všeobecnú schému, ako aj vypočítané pomery na určenie hodnoty napätia na dolnom ramene.

Schéma a konštrukčné vzťahy na určovanie hodnoty napätia na dolnom ramene

Takéto spojenie je charakteristické nielen pre potenciometer, ale pre všetky analógové snímače, pretože väčšina z nich pracuje na princípe zmeny odporu (vodivosti) pod vplyvom vonkajších zdrojov - teploty, svetla, žiarenia rôznych druhov atď.

Nasleduje najjednoduchšia schéma zapojenia termistorv zásade môže byť teplomer vyrobený na jeho základe. Presnosť jeho odčítaní však bude závisieť od presnosti tabuľky premeny odporu na teplotu, stability zdroja energie a koeficientov zmeny odporu (vrátane odporu horného ramena) pod vplyvom rovnakej teploty. To je možné minimalizovať výberom optimálnych odporov, ich výkonu a prevádzkových prúdov.

Najjednoduchšie schéma pripojenia termistora

Rovnakým spôsobom môžete ako svetelný senzor pripojiť fotodiódy, fototranzistory. Fotoelektronika našla uplatnenie v senzoroch, ktoré určujú vzdialenosť a prítomnosť objektu, z ktorých jeden sa budeme zaoberať neskôr.

fotoodpor

Obrázok ukazuje pripojenie fotorezistora k arduínu.

Schéma pripojenia fotorezistora na arduino

Softvérová časť

Predtým, ako hovorím o pripojení konkrétnych senzorov, som sa rozhodol zvážiť softvér na ich spracovanie. Všetky analógové signály sa čítajú z rovnakých portov pomocou príkazu analogRead ().Je potrebné poznamenať, že Arduino UNO a ďalšie modely s rozmermi 168 a 328 atmega majú 10-bitový ADC. To znamená, že mikrokontrolér vidí vstupný signál ako číslo od 0 do 1023 - celkovo 1024 hodnôt. Ak uvažujete, že napájacie napätie je 5 voltov, potom vstupná citlivosť:

5/1024 = 0,0048 V alebo 4,8 mV

To znamená, že pri hodnote 0 na vstupe je napätie 0 a hodnote 10 na vstupe - 48 mV.

V niektorých prípadoch sa na prevod hodnôt na požadovanú úroveň (napríklad na prenos na výstup PWM) 1024 delí číslom a ako výsledok delenia by sa malo získať požadované maximum. Funkcia mapy (zdroj, nízka, vysoká, vysoká, vysoká, nízka) funguje jasnejšie, keď:

  • nízke - nižšie číslo pred konverziou podľa funkcie;

  • vch - horný;

  • VCh - nižšie číslo po spracovaní funkciou (na výstupe);

  • VHV - hore.

Praktická aplikácia na prevod funkcie na vstupnú hodnotu na prenos do PWM (maximálna hodnota je 255, na prevod údajov z ADC na výstup PWM, 1024 sa delí 4):

Možnosť 1 - rozdelenie.

int x;

x = analogRead (pot) / 4;

// bude prijaté číslo od 0 do 1023

// vydelíme ho číslom 4 a dostaneme celé číslo od 0 do 255 analogových slov (led, x);

Možnosť 2 - funkcia MAP - otvára ďalšie príležitosti, ale o to viac neskôr.

prázdna slučka ()

{int val = analogRead (0);

val = mapa (val, 0, 1023, 0, 255);

analogWrite (led, val); }

Alebo ešte kratšie:

analogWrite (led, map (val, 0, 1023, 0, 255))

Nie všetky senzory majú na výstupe 5 voltov, t. číslo 1024 nie je vždy vhodné deliť, aby sa získalo rovnaké 256 pre PWM (alebo akékoľvek iné). Môže to byť 2 a 2,5 volty a ďalšie hodnoty, keď maximálny signál bude napríklad 500.


Populárne analógové senzory

Všeobecný pohľad na senzor pre arduino a jeho pripojenie je uvedený nižšie:

Ako pripojiť analógový senzor

Zvyčajne existujú tri výstupy, môže to byť štvrtý - digitálny, ale toto sú vlastnosti.

Vysvetlenie označenia výstupov analógového snímača:

  • G - mínus výkon, spoločný autobus, zem. Môže byť označený ako GND, „-“;

  • V - plus výkon. Môže sa označovať ako Vcc, Vtg, „+“;

  • S - výstupný signál, možný zápis - Out, SGN, Vout, sign.

Začiatočníci, ktorí sa naučia čítať hodnoty snímačov, si vyberajú projekty všetkých druhov teplomerov. Takéto snímače sú v digitálnom prevedení, napríklad DS18B20, a v analógovej verzii - jedná sa o všetky druhy mikroobvodov, ako je LM35, TMP35, TMP36 a ďalšie. Tu je príklad modulárnej konštrukcie takého senzora na doske.

Analógový snímač na TMP36

Presnosť senzora je od 0,5 do 2 stupňov. Výstupné hodnoty sú postavené na čipe TMP36, rovnako ako mnoho jeho analógov, 10 mV / ° C. Pri 0 ° je výstupný signál 0 V a potom sa pridá 10 mV na 1 stupeň. To znamená, že pri 25,5 stupňa je napätie 0,255 V, je možná odchýlka v rámci chyby a samovoľného zahrievania kryštálu IC (až do 0,1 ° C).


V závislosti od použitého mikroobvodu sa meracie rozsahy a výstupné napätia môžu líšiť, pozri tabuľku.

Teplotné rozsahy a výstupné napätie snímača

V prípade vysokokvalitného teplomeru však nemôžete len čítať hodnoty a zobrazovať ich na displeji LCD alebo na sériovom porte na komunikáciu s počítačom. Na zabezpečenie stability výstupného signálu celého systému ako celku musíte priemerné hodnoty zo senzorov, analógových aj digitálnych, v rámci určitých limitov priemerovať. bez obmedzenia ich rýchlosti a presnosti (všetko je limitované). Je to kvôli prítomnosti hluku, rušenia, nestabilných kontaktov (pre odporové snímače založené na potenciometri pozri poruchu snímača hladiny vody alebo paliva v nádrži automobilu).

Kódy pre prácu s väčšinou senzorov sú dosť objemné, takže ich nedám všetkým, dajú sa ľahko nájsť v sieti pomocou žiadosti „senzor + názov Arduino“.

Ďalším senzorom, ktorý robotickí inžinieri arduino často používajú, je senzor linky. Je založený na fotoelektronických zariadeniach, typ fototranzistorov.

Senzor vedenia

S ich pomocou robot, ktorý sa pohybuje pozdĺž čiary (používa sa v automatizovanej výrobe na dodávanie častí), určuje prítomnosť bieleho alebo čierneho pruhu. Na pravej strane obrázku sú viditeľné dve zariadenia podobné LED. Jednou z nich je LED, ktorá môže vysielať v neviditeľnom spektre a druhá je fototranzistor.

Svetlo sa odráža od povrchu, ak je tma - fototranzistor neprijíma odrazený prúd, ale ak svetlo prijíma a otvára sa. Algoritmy, ktoré vložíte do mikrokontroléra, spracujú signál a určia správnosť a smer pohybu a opravia ich. Optická myš, ktorú s najväčšou pravdepodobnosťou držíte pri čítaní týchto čiar v ruke, je usporiadaná podobne.

Doplním sa o susedný senzor - senzor vzdialenosti od Sharpu, ktorý sa používa aj v robotike, ako aj v podmienkach monitorovania polohy objektov v priestore (so zodpovedajúcou chybou TX).

Ostrý senzor vzdialenosti

Funguje to na rovnakom princípe. Knižnice a príklady ich náčrtov a projektov sú k dispozícii vo veľkom počte na stránkach venovaných Arduinu.


záver

Používanie analógových senzorov je veľmi jednoduché a pomocou ľahko sa naučiteľného programovacieho jazyka Arduino sa rýchlo učíte jednoduchým zariadeniam. Tento prístup má v porovnaní s digitálnymi náprotivkami značné nedostatky. Je to kvôli veľkej variabilite parametrov, čo spôsobuje problémy pri výmene senzora. Možno budete musieť upraviť zdrojový kód programu.

Je pravda, že jednotlivé analógové zariadenia obsahujú zdroje referenčného napätia a stabilizátory prúdu, čo má pozitívny vplyv na opakovateľnosť konečného produktu a zariadenia pri hromadnej výrobe. Použitím digitálnych zariadení sa dá vyhnúť všetkým problémom.

Digitálne obvody ako také znižujú potrebu vyladenia a úpravy obvodu po montáži. To vám dáva možnosť zostaviť niekoľko rovnakých zariadení do toho istého zdrojového kódu, ktorého podrobnosti poskytnú rovnaké signály, s odporovými snímačmi je to zriedkavé.

Pozri tiež na našich webových stránkach:Pripojenie externých zariadení k Arduino

Pozri tiež na electro-sk.tomathouse.com:

  • Aký je rozdiel medzi analógovými a digitálnymi snímačmi
  • Meranie teploty a vlhkosti na Arduino - výber metód
  • Ako sa prevádza prevod analógového signálu na digitálny
  • Najpopulárnejšie senzory pre Arduino
  • Ako je riadkový senzor usporiadaný a ako funguje

  •