Kategorijos: Mikrovaldiklio grandinės
Peržiūrų skaičius: 18998
Straipsnio komentarai: 0

Analoginių jutiklių prijungimas prie Arduino, skaitymo jutikliai

 

Jutikliai naudojami matuoti kiekius, aplinkos sąlygas ir reakcijas į būsenos ir padėties pokyčius. Jų išvestyje gali būti tiek skaitmeniniai signalai, sudaryti iš vienų, tiek iš nulių, ir analoginiai, sudaryti iš begalinio skaičiaus įtampų tam tikru intervalu.


Apie jutiklius

Atitinkamai, jutikliai yra suskirstyti į dvi grupes:

1. Skaitmeninis.

2. Analoginis.

Norėdami nuskaityti skaitmenines vertes, mūsų atveju galima naudoti tiek skaitmeninius, tiek analoginius mikrovaldiklio įėjimus Avr Arduino lentoje. Analoginiai jutikliai turi būti prijungti per analoginio į skaitmeninį keitiklį (ADC). ATMEGA328, jis yra įdiegtas daugumoje ARDUINO plokščių (plačiau apie tai svetainėje yra straipsnis), savo grandinėje yra įmontuotas ADC. Galima pasirinkti net 6 analoginius įėjimus.

Jei to jums nepakanka, galite naudoti papildomą išorinį ADC, kad prisijungtumėte prie skaitmeninių įėjimų, tačiau dėl to, kad pridedami apdorojimo algoritmai ir ADC valdymas, kodas bus sudėtingas ir padidės jo apimtis. Analoginių-skaitmeninių keitiklių tema yra pakankamai plati, kad apie juos galite sukurti atskirą straipsnį ar ciklą. Lengviau naudoti lentą su daugybe jų arba multiplekseriais. Pažvelkime, kaip prijungti analoginius jutiklius prie Arduino.

Analoginių jutiklių prijungimas prie Arduino, jutiklių rodmenų skaitymas

Bendroji analoginių jutiklių schema ir jų sujungimas

Jutiklis gali būti net įprastas potenciometras. Tiesą sakant, tai yra varžos padėties jutiklis, šiuo principu jie kontroliuoja skysčių lygį, pasvirimo kampą, kažko atidarymą. Jis gali būti sujungtas su arduino dviem būdais.

Bendroji analoginių jutiklių schema ir jų sujungimas

Aukščiau pateikta grandinė leidžia nuskaityti reikšmes nuo 0 iki 1023 dėl to, kad potenciometrui krinta visa įtampa. Čia veikia įtampos daliklio principas, bet kurioje variklio padėtyje įtampa paskirstoma tiesiškai ant varžos sluoksnio paviršiaus arba pagal logaritminę skalę (priklausomai nuo potenciometro) tą įtampos dalį, kuri lieka tarp slankiklio išėjimo (slankiojantis kontaktas) ir žemės (gnd) patenka į įėjimą. Lentelėje šis ryšys atrodo taip:

Analoginių jutiklių laidų schema

Antrasis variantas yra prijungtas pagal klasikinio varžinio daliklio schemą, čia įtampa potenciometro maksimalaus pasipriešinimo taške priklauso nuo viršutinio rezistoriaus varžos (R2 pav.).

Klasikinis varžinis daliklis

Apskritai, varžinis daliklis yra labai svarbus ne tik darbo su mikrovaldikliais srityje, bet ir apskritai elektronikoje. Žemiau matote bendrą schemą, taip pat apskaičiuotus koeficientus įtampos vertei ant apatinės rankos nustatyti.

Apatinės rankos įtampos vertės nustatymo schema ir projektiniai ryšiai

Toks ryšys būdingas ne tik potenciometrui, bet ir visiems analoginiams jutikliams, nes dauguma jų veikia pasipriešinimo (laidumo) kitimo principu veikiami išorinių šaltinių - temperatūros, šviesos, įvairių rūšių spinduliuotės ir kt.

Toliau pateikiama paprasčiausia ryšio schema termistoriusiš esmės jo pagrindu gali būti pagamintas termometras. Bet jos rodmenų tikslumas priklausys nuo atsparumo temperatūrai perskaičiavimo lentelės tikslumo, energijos šaltinio stabilumo ir atsparumo pokyčių koeficientų (įskaitant žasto rezistorių), veikiant tą pačią temperatūrą. Tai galima sumažinti pasirinkus optimaliausią varžą, jų galią ir veikimo sroves.

Paprasčiausia termistoriaus prijungimo schema

Tokiu pat būdu galite prijungti fotodiodus, fototranzistorius kaip šviesos jutiklį. Fotoelektronika rado jutikliuose, kurie nustato atstumą ir objekto buvimą, vieną iš jų mes apsvarstysime vėliau.

Fotorezistorius

Paveikslėlyje parodytas fotorezistoriaus ryšys su arduino.

Fotorezistoriaus ir arduino jungties schema

Programinės įrangos dalis

Prieš pradėdamas kalbėti apie konkrečių jutiklių prijungimą, nusprendžiau apsvarstyti jų apdorojimo programinę įrangą. Visi analoginiai signalai nuskaitomi iš tų pačių prievadų, naudojant „analogRead ()“ komandą.Verta paminėti, kad „Arduino UNO“ ir kiti modeliai, turintys 168 ir 328 atmega, turi 10 bitų ADC. Tai reiškia, kad mikrovaldiklis įvesties signalą mato kaip skaičių nuo 0 iki 1023 - iš viso 1024 reikšmes. Jei manote, kad maitinimo įtampa yra 5 voltai, tada įėjimo jautrumas:

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

T. y., Kai įvesties vertė 0, įtampa lygi 0, o įvesties vertė 10 - 48 mV.

Kai kuriais atvejais norint konvertuoti reikšmes į norimą lygį (pavyzdžiui, perduoti į PWM išėjimą), 1024 padalijamas iš skaičiaus, o dalijant reikėtų gauti reikiamą maksimumą. Žemėlapio funkcija (šaltinis, žemas, aukštas, aukštas, aukštas, žemas) aiškiau veikia ten, kur:

  • mažas - mažesnis skaičius prieš konvertavimą pagal funkciją;

  • vch - viršutinė;

  • VCh - mažesnis skaičius po apdorojimo pagal funkciją (išvestyje);

  • VHV - viršuje.

Praktinis pritaikymas konvertuoti funkciją į įvesties vertę perdavimui į PWM (maksimali vertė yra 255, konvertuojant duomenis iš ADC į PWM išėjimą, 1024 padalijama iš 4):

1 variantas - padalijimas.

int x;

x = analoginis skaitymas (puodas) / 4;

// bus gautas skaičius nuo 0 iki 1023

// padalinkite iš 4, gausime sveiką skaičių nuo 0 iki 255 analoWrite (led, x);

2 variantas - funkcija ŽEMĖLAPIS - atveria daugiau galimybių, bet daugiau apie tai vėliau.

tuščia kilpa ()

{int val = analogRead (0);

val = žemėlapis (val, 0, 1023, 0, 255);

analoWrite (led, val); }

Arba dar trumpiau:

analoWrite (veda, žemėlapis (val., 0, 1023, 0, 255))

Ne visų jutiklių išėjime yra 5 voltai, t. skaičių 1024 ne visada patogu padalyti, norint gauti tą patį 256, skirtą PWM (ar bet kuriam kitam). Tai gali būti 2 ir 2,5 voltai bei kitos vertės, kai didžiausias signalas bus, pavyzdžiui, 500.


Populiarūs analoginiai jutikliai

Bendras arduino jutiklio ir jo jungties vaizdas pateiktas žemiau:

Kaip prijungti analoginį jutiklį

Paprastai yra trys išėjimai, gali būti ir ketvirtas - skaitmeninis, tačiau tai yra savybės.

Analoginio jutiklio išėjimų žymėjimo paaiškinimas:

  • G - minusinė galia, bendras autobusas, žemė. Gali būti paskirta kaip GND, „-“;

  • V - plius galia. Gali būti žymimi kaip Vcc, Vtg, "+";

  • S - išvesties signalas, galimas žymėjimas - Out, SGN, Vout, sign.

Pradedantiesiems, norintiems nuskaityti jutiklių vertes, pasirenkami visų rūšių termometrų projektai. Tokie jutikliai yra skaitmeninio dizaino, pavyzdžiui, DS18B20, ir analoginiai - tai yra visų rūšių mikroschemos, tokios kaip LM35, TMP35, TMP36 ir kitos. Štai tokio jutiklio modulinės konstrukcijos pavyzdys lentoje.

Analoginis jutiklis TMP36

Jutiklio tikslumas yra nuo 0,5 iki 2 laipsnių. Pastatytas ant TMP36 lusto, kaip ir daugelis jo analogų, jo išvesties vertės yra 10 mV / ° C. Esant 0 °, išėjimo signalas yra 0 V, tada pridedama 10 mV 1 laipsniui. Tai yra, esant 25,5 laipsnių įtampa yra 0,255 V, gali būti nukrypimas nuo paklaidos ir IC kristalo pašildymo (iki 0,1 ° C).


Priklausomai nuo naudojamo mikro grandinės, matavimo diapazonai ir išėjimo įtampa gali skirtis, žr. Lentelę.

Temperatūros diapazonai ir jutiklio išėjimo įtampa

Tačiau jei norite naudoti aukštos kokybės termometrą, jūs tiesiog negalite perskaityti verčių ir nerodyti jų skystųjų kristalų ekrano indikatoriuje arba nuosekliajame prievade, kad galėtumėte palaikyti visos sistemos išėjimo signalą, kad būtų stabilus visos sistemos išvesties signalas. nepakenkiant jų greičiui ir tikslumui (viskam yra riba). Taip yra dėl triukšmo, trukdžių, nestabilių kontaktų (jei varžos jutikliai yra pagrįsti potenciometru, žr. Vandens ar degalų lygio jutiklio gedimus automobilio bake).

Kodai, skirti dirbti su daugeliu jutiklių, yra gana dideli, todėl aš jų neduosiu, juos tinkle galima lengvai rasti pagal užklausą „jutiklis + Arduino vardas“.

Kitas jutiklis, kurį dažnai naudoja arduino robotikos inžinieriai, yra linijos jutiklis. Tai pagrįsta fotoelektroniniais prietaisais, fototranzistorių tipas.

Linijos jutiklis

Su jų pagalba robotas, kuris juda linija (naudojamas automatinėje gamyboje dalims pristatyti) nustato baltos arba juodos juostelės buvimą. Dešinėje paveikslo pusėje matomi du į šviesos diodus panašūs įtaisai. Vienas iš jų yra šviesos diodas, jis gali skleisti nematomame spektre, o antrasis yra fototransistorius.

Šviesa atsispindi nuo paviršiaus, jei ji tamsi - fototransistorius negauna atspindėto srauto, bet jei šviesa gauna ir ji atsidaro. Algoritmai, kuriuos įdėjote į mikrovaldiklį, apdoroja signalą ir nustato judėjimo teisingumą ir kryptį bei juos taiso. Panašiai išdėstyta ir optinė pelė, kurią greičiausiai laikote rankoje skaitydami šias eilutes.

Aš papildysiu šalia esančiu jutikliu - atstumo jutikliu nuo „Sharp“, jis taip pat naudojamas robotikoje, taip pat objektų padėties erdvėje stebėjimo sąlygomis (su atitinkama TX klaida).

Staigaus atstumo jutiklis

Jis veikia tuo pačiu principu. Biblioteka ir eskizų pavyzdžiai bei projektai su jais yra gausybė Arduino skirtose svetainėse.


Išvada

Panaudoti analoginius jutiklius yra labai paprasta, o naudodamiesi lengvai mokoma „Arduino“ programavimo kalba greitai išmokite paprastus įrenginius. Šis požiūris turi didelių trūkumų, palyginti su skaitmeniniais partneriais. Taip yra dėl labai skirtingų parametrų, todėl keičiant jutiklį kyla problemų. Jums gali tekti redaguoti programos šaltinį.

Tiesa, atskiri analoginiai įtaisai turi atskaitos įtampos šaltinius ir srovės stabilizatorius, o tai daro teigiamą poveikį galutinio produkto ir prietaiso pakartojamumui masinės gamybos metu. Visų problemų galima išvengti naudojant skaitmeninius įrenginius.

Skaitmeninė grandinė sumažina poreikį suderinti ir sureguliuoti grandinę po surinkimo. Tai suteikia jums galimybę surinkti kelis tapačius įrenginius tame pačiame šaltinio kode, kurio detalės duos tuos pačius signalus, su varžiniais jutikliais tai yra retai.

Taip pat žiūrėkite mūsų svetainėje:Išorinių įrenginių prijungimas prie Arduino

Taip pat žiūrėkite tinklalapyje i.electricianexp.com:

  • Kuo skiriasi analoginiai ir skaitmeniniai jutikliai
  • Temperatūros ir drėgmės matavimas „Arduino“ - tam tikras metodas
  • Kaip keičiamas analoginis signalas į skaitmeninį
  • Populiariausi „Arduino“ jutikliai
  • Kaip linijos jutiklis yra išdėstytas ir veikia

  •