Kategorijas: Mikrokontrolleru shēmas
Skatījumu skaits: 18998
Komentāri par rakstu: 0

Analogo sensoru pievienošana Arduino, lasīšanas sensori

 

Sensorus izmanto, lai izmērītu daudzumus, vides apstākļus un reakcijas uz stāvokļu un stāvokļa izmaiņām. To izvadē var būt gan digitālie signāli, kas sastāv no vieniem, gan nulles, un analogie, kas sastāv no bezgalīga sprieguma skaita noteiktā intervālā.


Par sensoriem

Attiecīgi sensori ir sadalīti divās grupās:

1. Digitāls.

2. Analogais.

Lai lasītu digitālās vērtības, mūsu gadījumā var izmantot gan mikrokontrollera digitālās, gan analogās ieejas Avr uz Arduino kuģa. Analogie sensori jāpievieno, izmantojot analogo-digitālo pārveidotāju (ADC). ATMEGA328, tas ir tas, kas ir uzstādīts lielākajā daļā ARDUINO plātņu (vairāk par šo vietnē ir raksts), savā shēmā ir iebūvēts ADC. Pieejamas ir 6 analogās ieejas.

Ja jums ar to nepietiek, varat izmantot papildu ārēju ADC, lai izveidotu savienojumu ar digitālajām ieejām, taču tas sarežģīs kodu un palielinās tā apjomu, pateicoties apstrādes algoritmu un ADC vadībai. Analogo-digitālo pārveidotāju tēma ir pietiekami plaša, lai jūs par tiem varētu izveidot atsevišķu rakstu vai ciklu. Vienkāršāk ir izmantot dēli ar lielu skaitu to vai multipleksoru. Apskatīsim, kā savienot analogos sensorus ar Arduino.

Analogo sensoru pievienošana Arduino, sensoru rādījumu nolasīšana

Analogo sensoru vispārīgā shēma un to savienojums

Sensors var būt pat parasts potenciometrs. Faktiski tas ir pretestības stāvokļa sensors, uz šī principa viņi īsteno šķidrumu līmeņa kontroli, slīpuma leņķi, kaut kā atvēršanu. To var savienot arduino divos veidos.

Analogo sensoru vispārīgā shēma un to savienojums

Iepriekš minētā shēma ļauj nolasīt vērtības no 0 līdz 1023, ņemot vērā faktu, ka potenciometram pazeminās viss spriegums. Šeit darbojas sprieguma dalītāja princips, jebkurā motora pozīcijā spriegums tiek sadalīts lineāri uz pretestības slāņa virsmas vai logaritmiskajā skalā (atkarīgs no potenciometra), tā sprieguma daļa, kas paliek starp slīdņa izeju (bīdāmo kontaktu) un zemi (gnd), nonāk līdz ieejai. Uz maizes dēļa šis savienojums izskatās šādi:

Analogo sensoru savienojuma shēma

Otrā opcija ir savienota saskaņā ar klasisko pretestības dalītāju ķēdi, šeit spriegums potenciometra maksimālās pretestības punktā ir atkarīgs no augšējā rezistora pretestības (R2 attēlā).

Klasiskais pretestības dalītājs

Kopumā pretestības dalītājs ir ļoti svarīgs ne tikai darba jomā ar mikrokontrolleriem, bet arī elektronikā kopumā. Zemāk redzat vispārīgo shēmu, kā arī aprēķinātās attiecības sprieguma vērtības noteikšanai apakšējā roka.

Shēma un konstrukcijas sakarības sprieguma vērtības noteikšanai apakšdelmā

Šāds savienojums ir raksturīgs ne tikai potenciometram, bet visiem analogiem sensoriem, jo ​​vairums no tiem darbojas pēc pretestības (vadītspējas) mainīšanas principa ārēju avotu - temperatūras, gaismas, dažāda veida starojuma - ietekmē.

Šī ir vienkāršākā savienojuma shēma termistoruprincipā uz tā pamata var izgatavot termometru. Bet tā nolasījumu precizitāte būs atkarīga no temperatūras pretestības pārveidošanas tabulas precizitātes, enerģijas avota stabilitātes un pretestības maiņas koeficientiem (ieskaitot augšdelma rezistoru) tajā pašā temperatūrā. To var samazināt, izvēloties optimālo pretestību, to jaudu un darba strāvas.

Vienkāršākā termistora savienojuma shēma

Tādā pašā veidā jūs varat savienot fotodiodes, fototransistorus kā gaismas sensoru. Fotoelektronika ir atradusi pielietojumu sensoros, kas nosaka attālumu un objekta klātbūtni, no kuriem vienu mēs apsvērsim vēlāk.

Fotorezistors

Attēlā parādīts fotorezistora savienojums ar arino.

Fotorezistora savienojuma shēma arduino

Programmatūras daļa

Pirms es runāju par īpašu sensoru savienošanu, es nolēmu apsvērt programmatūru to apstrādei. Visi analogie signāli tiek nolasīti no tām pašām pieslēgvietām, izmantojot komandu analogRead ().Ir vērts atzīmēt, ka Arduino UNO un citiem modeļiem ar 168 un 328 atmega ir 10 bitu ADC. Tas nozīmē, ka mikrokontrollers ieejas signālu redz kā skaitli no 0 līdz 1023 - kopā 1024 vērtības. Ja uzskatāt, ka barošanas spriegums ir 5 volti, tad ieejas jutība:

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

Tas ir, ar vērtību 0 pie ieejas spriegums ir 0, un ar vērtību 10 pie ieejas - 48 mV.

Dažos gadījumos, lai konvertētu vērtības vēlamajā līmenī (piemēram, lai pārsūtītu uz PWM izvadi), 1024 tiek dalīts ar skaitli, un sadalīšanas rezultātā jāiegūst nepieciešamais maksimums. Kartes funkcija (avots, zema, augsta, augsta, augsta, zema) darbojas skaidrāk, ja:

  • zems - mazāks skaitlis pirms pārveidošanas pēc funkcijas;

  • vch - augšējais;

  • VCh - zemākais skaitlis pēc apstrādes ar funkciju (pie izvades);

  • VHV - augšā.

Praktisks pielietojums ievades vērtības funkcijas konvertēšanai pārraidīšanai uz PWM (maksimālā vērtība 255, datu konvertēšanai no ADC uz izeju PWM 1024, dalīta ar 4):

1. variants - dalīšana.

int x;

x = analogRead (katls) / 4;

// tiks saņemts numurs no 0 līdz 1023

// daliet to ar 4, iegūstam veselu skaitli no 0 līdz 255 analogWrite (led, x);

2. risinājums - funkcija KARTE - paver vairāk iespēju, bet vairāk par to vēlāk.

tukšs cilpa ()

{int val = analogRead (0);

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

analogWrite (led, val); }

Vai pat īsāk:

analogWrite (vadīts, karte (val., 0, 1023, 0, 255))

Ne visiem sensoriem izejā ir 5 volti, t.i. numuru 1024 ne vienmēr ir ērti sadalīt, lai iegūtu to pašu 256 PWM (vai jebkuram citam). Tas var būt 2 un 2,5 volti un citas vērtības, kad maksimālais signāls būs, piemēram, 500.


Populārie analogie sensori

Arduino sensora un tā savienojuma vispārējs skats ir parādīts zemāk:

Kā pieslēgt analogo sensoru

Parasti ir trīs izejas, var būt arī ceturtā - digitālā, bet tās ir funkcijas.

Analogā sensora izeju apzīmējuma skaidrojums:

  • G - mīnus jauda, ​​kopne, zeme. Var tikt apzīmēts kā GND, “-”;

  • V - plus jauda. Var apzīmēt kā Vcc, Vtg, "+";

  • S - izejas signāls, iespējamā apzīmējums - Out, SGN, Vout, sign.

Iesācēji, lai uzzinātu, kā lasīt sensoru vērtības, izvēlas visu veidu termometru projektus. Šādi sensori ir digitālajā dizainā, piemēram, DS18B20, un analogie - tie ir visu veidu mikroshēmas, piemēram, LM35, TMP35, TMP36 un citi. Šeit ir piemērs šāda sensora modulārajai konstrukcijai uz tāfeles.

Analogs sensors TMP36

Sensora precizitāte ir no 0,5 līdz 2 grādiem. Uzcelta uz TMP36 mikroshēmas, tāpat kā daudzi tās analogi, tā izejas vērtības ir 10 mV / ° C. Pie 0 ° izejas signāls ir 0 V, un pēc tam pievieno 10 mV uz 1 grādu. Tas ir, ja 25,5 grādi spriegums ir 0,255 V, ir iespējama novirze IC kristāla kļūdas un pašsildīšanas robežās (līdz 0,1 ° C).


Atkarībā no izmantotās mikroshēmas mērījumu diapazoni un izejas spriegumi var atšķirties, sk. Tabulu.

Temperatūras diapazoni un sensora izejas spriegumi

Tomēr augstas kvalitātes termometram jūs varat ne tikai nolasīt vērtības un parādīt tās LCD indikatorā vai seriālajā pieslēgvietā saziņai ar personālo datoru, lai visas sistēmas izejas signāla stabilitātei kopumā būtu jānovērtē vērtības no sensoriem - gan analogiem, gan digitāliem, noteiktos ierobežojumos, kamēr nemazinot to ātrumu un precizitāti (visam ir ierobežojums). Tas ir saistīts ar trokšņa, traucējumu, nestabilu kontaktu klātbūtni (rezistīvajiem sensoriem, kuru pamatā ir potenciometrs, sk. Ūdens vai degvielas līmeņa sensora darbības traucējumus automašīnas tvertnē).

Kodi darbam ar lielāko daļu sensoru ir diezgan apjomīgi, tāpēc es tos visus neatdošu, tos tīklā var viegli atrast ar pieprasījumu “sensors + Arduino vārds”.

Nākamais sensors, kuru arduino robotu inženieri bieži izmanto, ir līnijas sensors. Tā pamatā ir fotoelektroniskās ierīces, fototransistoru tips.

Līnijas sensors

Ar viņu palīdzību robots, kas pārvietojas pa līniju (tiek izmantots automatizētā ražošanā, lai piegādātu detaļas), nosaka baltas vai melnas sloksnes klātbūtni. Attēla labajā pusē ir redzamas divas ierīces, kas ir līdzīgas gaismas diodēm. Viens no tiem ir LED, tas var izstarot neredzamā spektrā, bet otrais ir fototransistors.

Gaisma tiek atstarota no virsmas, ja tā ir tumša - fototransistors nesaņem atstarotu straumi, bet, ja gaisma saņem un tā atveras. Mikrokontrollerā ievietotie algoritmi apstrādā signālu, nosaka kustības pareizību un virzienu, kā arī tos izlabo. Līdzīgi ir sakārtota arī optiskā pele, kuru, visticamāk, turot rokā, lasot šīs līnijas.

Papildināšu ar blakus esošo sensoru - attāluma sensoru no Sharp, tas tiek izmantots arī robotikā, kā arī objektu atrašanās vietas uzraudzības apstākļos (ar atbilstošo TX kļūdu).

Asas distances sensors

Tas darbojas pēc tāda paša principa. Arduino vietnēs ir daudz bibliotēku, kā arī skicu un ar tām saistītu projektu piemēru.


Secinājums

Analogo sensoru izmantošana ir ļoti vienkārša, un ar viegli iemācāmās Arduino programmēšanas valodas palīdzību jūs ātri apgūstat vienkāršas ierīces. Šai pieejai ir ievērojami trūkumi, salīdzinot ar digitālajiem partneriem. Tas ir saistīts ar lielām parametru atšķirībām, un tas rada problēmas, nomainot sensoru. Jums, iespējams, būs jārediģē programmas avota kods.

Tiesa, atsevišķās analogās ierīcēs ir iekļauti atsauces sprieguma avoti un strāvas stabilizatori, kas pozitīvi ietekmē galaprodukta un ierīces atkārtojamību masveida ražošanā. Visas problēmas var novērst, izmantojot digitālās ierīces.

Digitālā shēma kā tāda samazina nepieciešamību pēc montāžas noregulēt un pielāgot ķēdi. Tas dod jums iespēju vienā avota kodā salikt vairākas identiskas ierīces, kuru informācija sniegs vienādus signālus, ar pretestības sensoriem tas notiek reti.

Skatīt arī mūsu mājas lapā:Ārējo ierīču pievienošana Arduino

Skatīt arī vietnē i.electricianexp.com:

  • Kāda ir atšķirība starp analogo un digitālo sensoru
  • Temperatūras un mitruma mērīšana Arduino - metožu izvēle
  • Kā notiek analogā signāla pārvēršana ciparu formātā
  • Populārākie Arduino sensori
  • Kā līnijas sensors ir sakārtots un darbojas

  •