Jinsi Ya Kuunganisha Accelerometer Kwa Arduino

Orodha ya maudhui:

Jinsi Ya Kuunganisha Accelerometer Kwa Arduino
Jinsi Ya Kuunganisha Accelerometer Kwa Arduino

Video: Jinsi Ya Kuunganisha Accelerometer Kwa Arduino

Video: Jinsi Ya Kuunganisha Accelerometer Kwa Arduino
Video: DIY Gimbal | Учебное пособие по Arduino и MPU6050 2024, Novemba
Anonim

Wakati huu tutashughulikia kuunganisha ADXL335 analog triaxial accelerometer na Arduino.

Analog Accelerometer ADXL335
Analog Accelerometer ADXL335

Muhimu

  • - Arduino;
  • - kasi ya ADXL335;
  • - kompyuta ya kibinafsi na mazingira ya maendeleo ya IDE ya Arduino.

Maagizo

Hatua ya 1

Accelerometers hutumiwa kuamua vector ya kuongeza kasi. Accelerometer ya ADXL335 ina shoka tatu, na kwa sababu ya hii, inaweza kuamua vector ya kuongeza kasi katika nafasi ya pande tatu. Kwa sababu ya ukweli kwamba nguvu ya mvuto pia ni vector, accelerometer inaweza kuamua mwelekeo wake katika nafasi ya pande tatu ikilinganishwa na katikati ya Dunia.

Kielelezo kinaonyesha picha kutoka kwa pasipoti (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) kwa kasi ya ADXL335. Imeonyeshwa hapa ni shoka za uratibu za unyeti wa kasi inayohusiana na uwekaji wa kijiometri wa mwili wa kifaa katika nafasi, na pia meza ya maadili ya voltage kutoka kwa njia 3 za kasi ya kasi kulingana na mwelekeo wake katika nafasi. Takwimu kwenye jedwali hutolewa kwa sensor wakati wa kupumzika.

Wacha tuangalie kwa karibu kile ambacho kasi ya kasi inatuonyesha. Wacha sensor ilale kwa usawa, kwa mfano, kwenye meza. Kisha makadirio ya vector ya kuongeza kasi itakuwa sawa na 1g kando ya mhimili wa Z, au Zout = 1g. Shoka zingine mbili zitakuwa na zero: Xout = 0 na Yout = 0. Wakati sensorer imegeuzwa "nyuma yake", itaelekezwa kwa mwelekeo tofauti ukilinganisha na vector ya mvuto, yaani. Zout = -1g. Vivyo hivyo, vipimo vinachukuliwa kwenye shoka zote tatu. Ni wazi kwamba kasi ya kuongeza kasi inaweza kuwekwa kama inavyotarajiwa katika nafasi, kwa hivyo tutachukua masomo zaidi ya sifuri kutoka kwa njia zote tatu.

Ikiwa uchunguzi umetikiswa kwa nguvu kando ya mhimili wima wa Z, thamani ya Zout itakuwa kubwa kuliko "1g". Kuongeza kasi ya kupimika ni "3g" katika kila shoka katika mwelekeo wowote (yaani zote na "plus" na "minus").

Shoka za unyeti wa Accelerometer na jedwali la maadili ya pato
Shoka za unyeti wa Accelerometer na jedwali la maadili ya pato

Hatua ya 2

Nadhani tuligundua kanuni ya utendaji wa kiharusi. Sasa wacha tuangalie mchoro wa unganisho.

Chip ya accelerometer ya ADXL335 ni ndogo na imewekwa kwenye kifurushi cha BGA, na ni ngumu kuipandisha kwenye bodi nyumbani. Kwa hivyo, nitatumia moduli ya GY-61 iliyotengenezwa tayari na accelerometer ya ADXL335. Moduli kama hizo katika duka za mkondoni za Kichina zinagharimu karibu senti moja.

Ili kuongeza kasi, ni muhimu kusambaza voltage +3, 3 V kwenye pini ya VCC ya moduli. Njia za kupima sensorer zimeunganishwa na pini za analog za Arduino, kwa mfano, "A0", "A1" na " A2 ". Huu ndio mzunguko mzima:)

Mchoro wa wiring wa accelerometer ya ADXL335 kwa Arduno
Mchoro wa wiring wa accelerometer ya ADXL335 kwa Arduno

Hatua ya 3

Wacha tupakie mchoro huu kwenye kumbukumbu ya Arduino. Tutasoma usomaji kutoka kwa pembejeo za analog kwenye chaneli tatu, ubadilishe kuwa voltage na uitoe kwenye bandari ya serial.

Arduino ina ADC ya 10-bit, na kiwango cha juu kinachoruhusiwa kwa pini ni volts 5. Voltages zilizopimwa zimesimbwa na bits ambazo zinaweza kuchukua tu nambari 2 - 0 au 1. Hii inamaanisha kuwa anuwai yote ya kipimo itagawanywa na (1 + 1) kwa nguvu ya 10, i.e. kwenye sehemu 1024 sawa.

Ili kubadilisha usomaji kuwa volts, unahitaji kugawanya kila thamani inayopimwa kwa pembejeo ya analog na 1024 (sehemu), na kisha uzidishe na 5 (volts).

Wacha tuone ni nini kinatoka kwa accelerometer kutumia Z-axis kama mfano (safu ya mwisho). Wakati sensor imewekwa usawa na inaangalia juu, nambari huja (2.03 +/- 0.01). Kwa hivyo hii inapaswa kuendana na kuongeza kasi "+ 1g" kando ya mhimili wa Z na pembe ya digrii 0. Flip sensor. Nambari zinafika (1, 69 +/- 0, 01), ambayo inapaswa kulingana na "-1g" na pembe ya digrii 180.

Mchoro wa kusoma wa Accelerometer
Mchoro wa kusoma wa Accelerometer

Hatua ya 4

Wacha tuchukue maadili kutoka kwa kipima kasi katika pembe za digrii 90 na 270 na tuziingize kwenye meza. Jedwali linaonyesha pembe za mzunguko wa accelerometer (safu "A") na maadili yanayofanana ya Zout katika volts (safu "B").

Kwa uwazi, njama ya voltages katika pato la Zout dhidi ya pembe ya mzunguko inaonyeshwa. Sehemu ya samawati ndio masafa ya kupumzika (kwa kuongeza kasi ya 1g). Sanduku la rangi ya waridi kwenye grafu ni margin ili tuweze kupima kasi hadi + 3g na hadi -3g.

Katika mzunguko wa digrii 90, mhimili wa Z una kasi ya sifuri. Wale. Thamani ya voliti 1.67 ni zero ya masharti kwa mhimili wa Z. Kisha unaweza kupata kuongeza kasi kama hii:

g = Zout - Zo / unyeti_z, hapa Zout ni kipimo kilichopimwa katika millivolts, Zo ni thamani ya kuongeza kasi ya sifuri katika millivolts, unyeti_z ni unyeti wa sensa kando ya mhimili wa Z. sensor kutumia fomula:

unyeti_z = [Z (digrii 0) - Z (digrii 90)] * 1000. Katika kesi hii, unyeti wa kasi ya kasi kando ya mhimili wa Z = (2, 03 - 1, 68) * 1000 = 350 mV. Vivyo hivyo, unyeti utahitajika kuhesabiwa kwa shoka za X na Y.

Safu wima "C" ya jedwali inaonyesha kasi iliyohesabiwa kwa pembe tano kwa unyeti wa 350. Kama unavyoona, zinafanana kabisa na zile zilizoonyeshwa kwenye Mchoro 1.

Mawasiliano ya pembe za mzunguko wa kasi ya kasi kwa usomaji
Mawasiliano ya pembe za mzunguko wa kasi ya kasi kwa usomaji

Hatua ya 5

Kukumbuka kozi ya msingi ya jiometri, tunapata fomula ya kuhesabu pembe za mzunguko wa kasi ya kasi:

angle_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

Maadili yako katika radians. Kubadilisha kuwa digrii, kugawanya kwa Pi na kuzidisha kwa 180.

Kama matokeo, mchoro kamili wa kuhesabu pembe za kuongeza kasi na mzunguko wa kasi ya kasi kwenye shoka zote imeonyeshwa kwenye mfano. Maoni hutoa ufafanuzi wa nambari ya programu.

Wakati wa kutoa kwa bandari ya "Serial.print ()", tabia ya "\ t" inaashiria tabia ya kichupo ili safu ziwe sawa na maadili yapo moja chini ya nyingine. "+" inamaanisha concatenation (concatenation) ya kamba. Kwa kuongezea, mwendeshaji wa "Kamba ()" anamwambia wazi mkusanyaji kuwa nambari ya nambari lazima ibadilishwe kuwa kamba. Mzunguko () mwendeshaji huzunguka kona kwa digrii 1 iliyo karibu.

Mchoro ambao huhesabu kasi na pembe za kasi ya kasi
Mchoro ambao huhesabu kasi na pembe za kasi ya kasi

Hatua ya 6

Kwa hivyo, tulijifunza jinsi ya kuchukua na kusindika data kutoka kwa accelerometer ya ADXL335 kwa kutumia Arduino. Sasa tunaweza kutumia kiharusi katika miundo yetu.

Ilipendekeza: