kategorije: Sklopovi mikrokontrolera
Broj pregleda: 18998
Komentari na članak: 0

Spajanje analognih senzora na Arduino, očitavanje senzora

 

Senzori se koriste za mjerenje količina, stanja okoliša i reakcija na promjene stanja i položaja. Na njihovom izlazu mogu postojati i digitalni signali koji se sastoje od niza i nula, i analogni koji se sastoje od beskonačnog broja napona u određenom intervalu.


O senzorima

U skladu s tim, senzori su podijeljeni u dvije skupine:

1. Digitalni.

2. analogni.

Za čitanje digitalnih vrijednosti u našem se slučaju mogu koristiti i digitalni i analogni ulazi mikrokontrolera Avr na Arduinoj ploči, Analogni senzori moraju se spojiti preko analogno-digitalnog pretvarača (ADC). ATMEGA328, to je ono što je instalirano na većini ARDUINO ploča (više o tome na web mjestu je članak), sadrži u svom krugu ugrađeni ADC. Na raspolaganju je čak 6 analognih ulaza.

Ako vam ovo nije dovoljno, možete koristiti dodatni vanjski ADC za povezivanje s digitalnim ulazima, ali to će kod zakomplicirati i povećati njegovu glasnoću, zbog dodavanja algoritama za obradu i ADC kontrole. Tema analogno-digitalnih pretvarača dovoljno je široka da o njima možete napraviti zasebni članak ili ciklus. Lakše je koristiti ploču s velikim brojem njih ili multipleksere. Pogledajmo kako spojiti analogne senzore na Arduino.

Spajanje analognih senzora na Arduino, čitanje očitanja senzora

Opća shema analognih senzora i njihova povezanost

Senzor može biti čak i uobičajeni potenciometar. Zapravo je senzor položaja otpora, na takvom principu oni kontroliraju razinu tekućine, kut nagiba, otvaranje nečega. Može se povezati s arduinom na dva načina.

Opća shema analognih senzora i njihova povezanost

Gornji krug omogućuje očitavanje vrijednosti od 0 do 1023, zbog činjenice da sav napon pada na potenciometru. Ovdje djeluje princip djelitelja napona, u bilo kojem položaju motora, napon se raspodjeljuje linearno na površini otporničkog sloja ili na logaritamskoj skali (ovisno o potenciometru) onaj dio napona koji ostaje između izlaza klizača (klizni kontakt) i zemlje (gnd) dođe do ulaza. Ova povezanost na ploči izgleda ovako:

Dijagram ožičenja za analogne senzore

Druga opcija povezana je prema shemi klasičnog otporničkog razdjelnika, gdje napon u točki maksimalnog otpora potenciometra ovisi o otporu gornjeg otpornika (na slici R2).

Klasični otpornički razdjelnik

Općenito, otpornički razdjelnik je vrlo važan ne samo u području rada s mikrokontrolerima, već i u elektronici općenito. Ispod je prikazana opća shema, kao i izračunati omjeri za određivanje vrijednosti napona na donjem kraku.

Shema i konstrukcijski odnosi za određivanje vrijednosti napona na donjem kraku

Takva veza karakteristična je ne samo za potenciometar, već i za sve analogne senzore, jer većina njih radi na principu promjene otpora (vodljivosti) pod utjecajem vanjskih izvora - temperature, svjetlosti, zračenja raznih vrsta itd.

Slijedi najjednostavniji dijagram veze termorezistoru principu se na njegovoj osnovi može napraviti termometar. Ali točnost njegovih očitanja ovisit će o točnosti tablice pretvaranja otpornosti na temperaturu, stabilnosti izvora napajanja i koeficijenata promjene otpora (uključujući otpornik nadlaktice) pod utjecajem iste temperature. To se može umanjiti odabirom optimalnih otpora, njihove snage i struje struje.

Najjednostavniji dijagram spajanja termistora

Na isti način možete spojiti fotodiode, fototransistore kao svjetlosni senzor. Fotoelektronika je našla primjenu u senzorima koji određuju udaljenost i prisutnost objekta, a jedan od njih ćemo razmotriti kasnije.

fotootpornik

Na slici je prikazana povezanost fotoresistera s arduinom.

Shema povezivanja fotoresistera sa arduinom

Softverski dio

Prije nego što govorim o povezivanju određenih senzora, odlučio sam razmotriti softver za njihovu obradu. Svi analogni signali se čitaju iz istih priključaka pomoću naredbe analogRead ().Vrijedi napomenuti da Arduino UNO i drugi modeli sa 168 i 328 atmega imaju 10-bitni ADC. To znači da mikrokontroler vidi ulazni signal kao broj od 0 do 1023 - ukupno 1024 vrijednosti. Ako smatrate da je napon napajanja 5 volti, tada je ulazna osjetljivost:

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

To jest, uz vrijednost 0 na ulazu, napon je 0, a na ulazu vrijednost 10 - 48 mV.

U nekim slučajevima, za pretvaranje vrijednosti na željenu razinu (na primjer, za prijenos na PWM izlazu), 1024 se dijeli s brojem, a kao rezultat podjele, treba se dobiti potreban maksimum. Funkcija karte (izvor, niska, visoka, visoka, visoka, niska) funkcionira jasnije, gdje:

  • nizak - niži broj prije pretvorbe po funkciji;

  • vch - gornji;

  • VCh - manji broj nakon obrade pomoću funkcije (na izlazu);

  • VHV - vrh.

Praktična aplikacija za pretvaranje funkcije u ulaznu vrijednost za prijenos na PWM (maksimalna vrijednost je 255, za pretvaranje podataka iz ADC u izlaz PWM, 1024 je podijeljeno s 4):

Opcija 1 - podjela.

int x;

x = analogRead (pot) / 4;

// primit će se broj od 0 do 1023

// podijeli ga s 4, dobivamo cijeli broj od 0 do 255 analogWrite (led, x);

Opcija 2 - funkcija MAP - otvara više mogućnosti, ali o tome kasnije.

void petlja ()

{int val = analogRead (0);

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

analogWrite (vodio, val); }

Ili još kraće:

analogWrite (vodio, karta (val, 0, 1023, 0, 255))

Nisu svi senzori na izlazu 5 volti, tj. broj 1024 nije uvijek prikladno podijeliti za dobivanje istih 256 za PWM (ili bilo koji drugi). To mogu biti 2 i 2,5 V i druge vrijednosti, kada će maksimalni signal biti, na primjer, 500.


Popularni analogni senzori

Opći prikaz senzora za arduino i njegovu vezu prikazan je dolje:

Kako spojiti analogni senzor

Obično postoje tri izlaza, možda postoji i četvrti - digitalni, ali to su značajke.

Objašnjenje imenovanja izlaza analognog senzora:

  • G - minus snaga, uobičajeni autobus, zemlja. Može se označiti kao GND, "-";

  • V - plus snaga. Može se označiti kao Vcc, Vtg, "+";

  • S - izlazni signal, moguća notacija - Izlaz, SGN, Vout, znak.

Početnici koji uče kako čitati vrijednosti senzora biraju projekte svih vrsta termometra. Takvi su senzori u digitalnom dizajnu, na primjer DS18B20, i u analognom - to su sve vrste mikro krugova poput LM35, TMP35, TMP36 i drugih. Evo primjera modularnog dizajna takvog senzora na ploči.

Analogni senzor na TMP36

Točnost senzora je od 0,5 do 2 stupnja. Izgrađen na TMP36 čipu, kao i mnogi njegovi analozi, njegove izlazne vrijednosti su 10 mV / ° C. Na 0 ° izlazni signal je 0 V, a zatim se dodaje 10 mV po 1 stupnju. Odnosno, na 25,5 stupnjeva napon je 0,255 V, odstupanje je moguće unutar pogreške i samo zagrijavanja IC kristala (do 0,1 ° C).


Ovisno o upotrijebljenom mikro krugu, mjerni rasponi i izlazni naponi mogu se razlikovati, vidi tablicu.

Temperaturni rasponi i izlazni naponi senzora

No, za visokokvalitetni termometar ne možete samo pročitati vrijednosti i prikazati ih na LCD indikatoru ili serijskom priključku za komunikaciju s računalom, za stabilnost izlaznog signala cijelog sustava u cjelini trebate prosječno odrediti vrijednosti senzora, i analognih i digitalnih, u određenim granicama, dok bez narušavanja njihove brzine i točnosti (postoji ograničenje za sve). To je zbog prisutnosti buke, smetnji, nestabilnih kontakata (za otporne senzore temeljene na potenciometru, pogledajte neispravnosti senzora razine vode ili goriva u spremniku automobila).

Kodovi za rad s većinom senzora su prilično obimni, tako da im neću dati sve, mogu ih lako pronaći na mreži zahtjevom "senzor + Arduino ime".

Sljedeći senzor koji arduino robotski inženjeri često koriste je linijski senzor. Temelji se na fotoelektronskim uređajima, vrsta fototransistora.

Linijski senzor

Uz njihovu pomoć, robot koji se kreće duž linije (koristi se u automatiziranoj proizvodnji za isporuku dijelova) utvrđuje prisutnost bijele ili crne trake. S desne strane slike vidljiva su dva uređaja slična LED-ima. Jedan od njih je LED, može emitirati u nevidljivom spektru, a drugi je fototransistor.

Svjetlost se odbija od površine ako je tamna - fototransistor ne prima reflektirani tok, ali ako svjetlost primi i otvori se. Algoritmi koje postavljate u mikrokontroler obrađuju signal i određuju ispravnost i smjer kretanja te ih ispravljaju. Optički miš, koji najvjerojatnije držite u ruci dok čitate ove redove, sličan je raspored.

Dopunit ću s susjednim senzorom - senzor udaljenosti od Sharpa, također se koristi u robotici, kao i u uvjetima praćenja položaja objekata u prostoru (s pripadajućom TX pogreškom).

Senzor oštre udaljenosti

Djeluje na istom principu. Biblioteke i primjeri skica i projekata s njima dostupni su u velikom broju na web lokacijama posvećenim Arduinu.


zaključak

Upotreba analognih senzora vrlo je jednostavna, a uz Arduino programski jezik koji se lako uči brzo možete naučiti jednostavne uređaje. Ovaj pristup ima značajne nedostatke u usporedbi s digitalnim kolegama. To je zbog velikog odstupanja u parametrima, što uzrokuje probleme prilikom zamjene senzora. Možda ćete morati uređivati ​​izvorni kôd programa.

Istina, pojedini analogni uređaji sadrže referentne izvore napona i stabilizatore struje, što ima pozitivan učinak na konačni proizvod i ponovljivost uređaja u masovnoj proizvodnji. Svi problemi mogu se izbjeći korištenjem digitalnih uređaja.

Digitalno kolo kao takvo smanjuje potrebu za podešavanjem i podešavanjem kruga nakon sklapanja. To vam daje mogućnost sastavljanja nekoliko identičnih uređaja na istom izvornom kodu, čiji će detalji dati iste signale, a otpornim senzorima je to rijetkost.

Pogledajte i na našoj web stranici:Spajanje vanjskih uređaja na Arduino

Pogledajte također na elektrohomepro.com:

  • Koja je razlika između analognih i digitalnih senzora
  • Mjerenje temperature i vlažnosti na Arduinu - izbor načina
  • Kako se pretvara analogni signal u digitalni
  • Najpopularniji senzori za Arduino
  • Kako je uređen i djeluje linijski senzor

  •