Tokrat se bomo ukvarjali s priključitvijo analognega triaksialnega merilnika pospeška ADXL335 na Arduino.
Potrebno
- - Arduino;
- - merilnik pospeška ADXL335;
- - osebni računalnik z razvojnim okoljem Arduino IDE.
Navodila
Korak 1
Merilniki pospeška se uporabljajo za določanje vektorja pospeška. Merilec pospeška ADXL335 ima tri osi in zahvaljujoč temu lahko določi vektor pospeška v tridimenzionalnem prostoru. Ker je gravitacijska sila tudi vektor, lahko merilnik pospeška določi svojo orientacijo v tridimenzionalnem prostoru glede na središče Zemlje.
Na sliki so slike iz potnega lista (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) za merilnik pospeška ADXL335. Tu so prikazane koordinatne osi občutljivosti merilnika pospeška glede na geometrijsko postavitev telesa naprave v vesolju, pa tudi tabela vrednosti napetosti iz 3 kanalov merilnika pospeška, odvisno od njegove orientacije v prostoru. Podatki v tabeli so podani za senzor v mirovanju.
Poglejmo si podrobneje, kaj nam kaže merilnik pospeška. Senzor naj leži vodoravno, na primer na mizi. Potem bo projekcija vektorja pospeška enaka 1g vzdolž osi Z ali Zout = 1g. Preostali dve osi bosta imeli ničli: Xout = 0 in Yout = 0. Ko je senzor obrnjen "na hrbet", bo usmerjen v nasprotni smeri glede na gravitacijski vektor, tj. Zout = -1g. Podobno se izvajajo meritve na vseh treh oseh. Jasno je, da je merilnik pospeška mogoče namestiti po želji v vesolje, zato bomo z vseh treh kanalov odčitali odčitke, ki niso nič.
Če sondo močno stresamo vzdolž navpične osi Z, bo vrednost Zout večja od "1g". Največji izmerljivi pospešek je "3g" v vsaki osi v katero koli smer (tj. Oba s "plus" in "minus").
2. korak
Mislim, da smo ugotovili princip delovanja merilnika pospeška. Zdaj pa poglejmo diagram povezave.
Analogni merilec pospeška ADXL335 je precej majhen in je vgrajen v BGA paket, doma pa ga je težko namestiti na ploščo. Zato bom uporabil pripravljeni modul GY-61 z merilnikom pospeška ADXL335. Takšni moduli v kitajskih spletnih trgovinah stanejo skoraj drobiž.
Za napajanje merilnika pospeška je treba na zatič VCC modula napajati napetost +3, 3 V. Merilni kanali senzorja so povezani z analognimi zatiči Arduino, na primer "A0", "A1" in " A2 ". To je celo vezje:)
3. korak
Naložimo to skico v Arduino spomin. Odčitke bomo prebrali z analognih vhodov na treh kanalih, jih pretvorili v napetost in jih poslali v serijska vrata.
Arduino ima 10-bitni ADC, največja dovoljena napetost pin pa je 5 voltov. Izmerjene napetosti so kodirane z bitami, ki imajo lahko le 2 vrednosti - 0 ali 1. To pomeni, da bo celotno merilno območje deljeno z (1 + 1) do 10. moči, tj. na 1024 enakih odsekih.
Če želite odčitke pretvoriti v volte, morate vsako vrednost, izmerjeno na analognem vhodu, razdeliti na 1024 (segmenti) in nato pomnožiti s 5 (volti).
Poglejmo, kaj v resnici izhaja iz merilnika pospeška, na primer za os Z (zadnji stolpec). Ko je senzor postavljen vodoravno in gleda navzgor, se prikažejo številke (2,03 +/- 0,01). Torej mora to ustrezati pospešku "+ 1g" vzdolž osi Z in kotu 0 stopinj. Obrnite senzor. Prispejo številke (1, 69 +/- 0, 01), ki naj ustrezajo "-1g" in kotu 180 stopinj.
4. korak
Vzemimo vrednosti merilnika pospeška pod kotom 90 in 270 stopinj in jih vnesite v tabelo. Tabela prikazuje kote vrtenja merilnika pospeška (stolpec "A") in ustrezne vrednosti Zout v voltih (stolpec "B").
Zaradi jasnosti je prikazana ploskev napetosti na izhodu Zout glede na kot vrtenja. Modro polje je domet v mirovanju (pri pospešku 1 g). Rožnato polje na grafu je rob, tako da lahko izmerimo pospešek do + 3g in do -3g.
Pri rotaciji za 90 stopinj ima os Z pospešek nič. Tisti. vrednost 1,67 voltov je pogojna nič Zo za os Z. Nato lahko najdete pospešek tako:
g = Zout - Zo / občutljivost_z, tukaj je Zout izmerjena vrednost v milivoltih, Zo vrednost pri ničelnem pospešku v milivoltih, občutljivost_z je občutljivost senzorja vzdolž osi Z. umerite merilnik pospeška in izračunajte vrednost občutljivosti posebej za vaš senzor po formuli:
občutljivost_z = [Z (0 stopinj) - Z (90 stopinj)] * 1000. V tem primeru je občutljivost merilnika pospeška vzdolž osi Z = (2, 03 - 1, 68) * 1000 = 350 mV. Podobno bo treba izračunati občutljivost za osi X in Y.
Stolpec "C" tabele prikazuje pospešek, izračunan za pet kotov pri občutljivosti 350. Kot lahko vidite, praktično sovpadajo s tistimi, prikazanimi na sliki 1.
5. korak
Če se spomnimo osnovnega tečaja geometrije, dobimo formulo za izračun kotov vrtenja merilnika pospeška:
kot_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].
Vrednosti so v radianih. Če jih želite pretvoriti v stopinje, jih delite s Pi in pomnožite z 180.
Posledično je na sliki prikazana celotna skica, ki izračunava kote pospeška in vrtenja merilnika pospeška vzdolž vseh osi. V komentarjih so pojasnila programske kode.
Pri izhodu v vrata "Serial.print ()" znak "\ t" označuje znak zavihka, tako da so stolpci enakomerni, vrednosti pa ena pod drugo. "+" pomeni združevanje (združevanje) nizov. Poleg tega operator "String ()" prevajalniku izrecno pove, da je treba številsko vrednost pretvoriti v niz. Operator round () zaokroži vogal na najbližjo 1 stopinjo.
6. korak
Tako smo se naučili, kako jemati in obdelovati podatke iz analognega merilnika pospeška ADXL335 z uporabo Arduina. Zdaj lahko merilnik pospeška uporabljamo pri svojih modelih.