Satura rādītājs:
- 1. darbība: sastāvdaļas
- 2. solis: princips
- 3. darbība. Procedūras
- 4. solis: kods
- 5. darbība: koda analīze
Video: ADXL345 Izmantojot Arduino Uno R3: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Šajā nodarbībā mēs iemācīsimies izmantot paātrinājuma sensoru ADXL345.
1. darbība: sastāvdaļas
- Arduino Uno dēlis * 1
- USB kabelis * 1
- ADXL345 *1
- Maizes dēlis * 1
- Jumper vadi
2. solis: princips
Paātrinājuma laikā radītā spēka mērīšanai izmanto akselerometru. Vissvarīgākais ir plaši pazīstamais gravitācijas paātrinājums, kas ir 1 g.
Izmērot gravitācijas izraisīto paātrinājumu, jūs varat aprēķināt ierīces slīpuma leņķi pret līdzenu virsmu. Analizējot dinamisko paātrinājumu, jūs varat pateikt, kā ierīce pārvietojas. Piemēram, pašbalansējošais dēlis vai hoverboard izmanto paātrinājuma sensoru un žiroskopu Kalmana filtram un stājas korekcijai.
ADXL345
ADXL345 ir mazs, plāns, mazjaudas, 3 asu akselerometrs ar augstas izšķirtspējas (13 bitu) mērījumu līdz ± 16 g. Digitālie izvaddati ir formatēti kā divu bitu 16 bitu papildinājumi, un tiem var piekļūt, izmantojot SPI (3 vai 4 vadu) vai I2C digitālo saskarni. Šajā eksperimentā tiek izmantota digitālā saskarne I2C.
Tas ir labi piemērots, lai izmērītu statisko gravitācijas paātrinājumu slīpuma noteikšanas lietojumos, kā arī dinamisku paātrinājumu, ko rada kustība vai trieciens. Tā augstā izšķirtspēja (4 mg/LSB) ļauj mērīt slīpuma izmaiņas par mazāk nekā 1,0 °. Un lieliskā jutība (3,9 mg/LSB @2g) nodrošina augstas precizitātes izvadi līdz pat ± 16 g.
Kā darbojas ADXL345
ADXL345 nosaka paātrinājumu ar sensora komponentu priekšpusē, un pēc tam elektriskā signāla uztveršanas sastāvdaļa to pārveido par elektrisko signālu, kas ir analogs. Pēc tam modulī integrētais AD adapteris pārveidos analogo signālu digitālā.
X_OUT, Y_OUT un Z_OUT ir vērtības attiecīgi X, Y un Z asī. Novietojiet moduli ar virspusi uz augšu: Z_OUT var sasniegt ne vairāk kā +1 g, minimālais X_OUT ir -1 g virzienā uz cirvja virzienu, bet minimālais Y_OUT ir -1 g virzienā Ay. No otras puses, pagrieziet moduli otrādi: minimālais Z_OUT ir -1 g, maksimālais X_OUT ir +1 g pret cirvja virzienu, bet maksimālais Y_OUT ir +1 g virzienā Ay., kā parādīts zemāk. Pagrieziet ADXL345 moduli, un jūs redzēsit trīs vērtību izmaiņas.
ja kanāls A mainās no augsta līmeņa uz zemu, ja kanāls B ir augsts līmenis, tas norāda, ka rotējošais kodētājs griežas pulksteņrādītāja virzienā (CW); ja B kanāls tajā brīdī ir zems, tas nozīmē griešanos pretēji pulksteņrādītāja virzienam (CCW). Tātad, ja mēs nolasām kanāla B vērtību, kad kanāls A ir zems, mēs varam zināt, kurā virzienā rotējošais kodētājs griežas.
Princips: skatiet rotācijas kodētāja moduļa shematisko diagrammu zemāk. No tā mēs redzam, ka rotējošā kodētāja 3. tapa, proti, moduļa CLK, ir kanāls B. 5. tapa, kas ir DT, ir kanāls A. Lai uzzinātu ierakstītāja rotācijas virzienu, vienkārši nolasiet CLK vērtību un DT.
Ķēdē ir 3.3V sprieguma regulatora mikroshēma, tāpēc moduli var darbināt ar 5V vai 3.3V.
Tā kā SDO ir pievienots GND, ADXL345 I2C adrese ir 0x53, 0xA6 rakstīšanai, 0xA7 lasīšanai
ADXL345 moduļa tapas funkcija.
3. darbība. Procedūras
Solis 1. Izveidojiet ķēdi.
2. darbība:
Lejupielādējiet kodu no vietnes
3. darbība:
Augšupielādējiet skici uz Arduino Uno tāfeles
Noklikšķiniet uz augšupielādes ikonas, lai augšupielādētu kodu vadības panelī.
Ja loga apakšdaļā parādās augšupielāde, tas nozīmē, ka skice ir veiksmīgi augšupielādēta.
Pēc augšupielādes atveriet Serial Monitor, kur varat redzēt atklātos datus. Mainoties moduļa paātrinājumam, skaitlis logā attiecīgi mainīsies.
4. solis: kods
// ADXL335
/********************************
ADXL335
piezīme: vcc5v, bet ADXL335 Vs ir 3.3V
Ķēde:
5V: VCC
analogs 0: x ass
analogs 1: y ass
2. analogs: z ass
Pēc dedzināšanas
programmu, atveriet seriālā monitora atkļūdošanas logu, kur var redzēt, ka tiek parādīti atklātie dati. Ja paātrinājums mainās, skaitlis attiecīgi mainīsies.
*********************************
/E -pasts:
//Mājas lapa: www.primerobotics.in
const int xpin =
A0; // akselerometra x ass
const int ypin =
A1; // y ass
const int zpin =
A2; // z ass (tikai 3 asu modeļiem)
anulēts iestatījums ()
{
// inicializēt seriālos sakarus:
Sērijas sākums (9600);
}
tukša cilpa ()
{
int x = analogRead (xpin); // lasīt no xpin
kavēšanās (1); //
int y = analogRead (ypin); // lasīt no ypin
kavēšanās (1);
int z = analogRead (zpin); // lasīt no zpin
pludiņš nulle_G = 338,0; // ADXL335 barošanas avots
ar Vs 3.3V: 3.3V/5V*1024 = 676/2 = 338
//Sērijas.druka (x);
//Sērijas.print ("\t ");
//Sērijas.druka (y);
//Sērijas.print ("\t ");
//Sērijas.druka (z);
//Sērijas.print ("\n ");
peldēt
zero_Gx = 331.5; // x ass izeja zero_G: (x_max + x_min)/2
peldēt
zero_Gy = 329,5; // y ass zero_G izeja: (y_max + y_min)/2
float zero_Gz = 340.0; //
z ass nulle_G izeja: (z_max + z_min)/2
pludiņa skala =
67,6; // barošanas avots ar Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67,6g
pludiņa skala_x =
65; // x ass mērogs: x_max/3.3v*330mv/g
pludiņa skala_y =
68,5; // y ass skala: y_max/3.3v*330mv/g
pludiņa skala_z =
68; // z ass skala: z_max/3.3v*330mv/g
Sērijas nospiedums (((pludiņš) x
- nulle_Gx)/skala_x); // izdrukāt x vērtību sērijas monitorā
Serial.print ("\ t");
Sērijas nospiedums (((pludiņš) y
- nulle_Gy)/skala_y); // izdrukāt y vērtību sērijas monitorā
Serial.print ("\ t");
Sērijas nospiedums (((pludiņš) z
- nulle_Gz)/skala_z); // drukājiet z vērtību sērijas monitorā
Serial.print ("\ n");
kavēšanās (1000); // pagaidiet 1 sekundi
}
5. darbība: koda analīze
ADXL345 eksperimenta kods sastāv no 3 daļām: inicializējiet katru portu un ierīci, iegūstiet un saglabājiet no sensoriem nosūtītos datus un pārveidojiet datus.
Ieteicams:
Led kontrole, izmantojot lietotni Blynk, izmantojot Nodemcu, izmantojot internetu: 5 soļi
Led kontrole, izmantojot lietotni Blynk, izmantojot Nodemcu, izmantojot internetu: Sveiki, visi šodien, mēs jums parādīsim, kā jūs varat kontrolēt LED, izmantojot viedtālruni internetā
DIY -- Kā izveidot zirnekļa robotu, kuru var vadīt, izmantojot viedtālruni, izmantojot Arduino Uno: 6 soļi
DIY || Kā izveidot zirnekļa robotu, kuru var kontrolēt, izmantojot viedtālruni, izmantojot Arduino Uno: Veidojot zirnekļa robotu, var uzzināt tik daudz par robotiku. Tāpat kā robotu izgatavošana ir izklaidējoša un izaicinoša. Šajā videoklipā mēs jums parādīsim, kā izveidot zirnekļa robotu, kuru varam darbināt, izmantojot savu viedtālruni (Androi
Vadiet Ws2812 Neopixel LED STRIP, izmantojot Bluetooth, izmantojot Arduino Uno: 4 soļi
Vadiet Ws2812 Neopixel LED STRIP, izmantojot Bluetooth, izmantojot Arduino Uno: Sveiki, puiši, šajā pamācībā mēs iemācīsimies kontrolēt neopikselu ar arduino. Tātad būtībā arduino tiks savienots, izmantojot Bluetooth, izmantojot hc05 Bluetooth moduli, uz viedtālruni, un viedtālrunis nosūtīs komandas, lai mainītu neopikselu vadītās sloksnes krāsu
Atskaņojiet dziesmas, izmantojot Arduino, izmantojot ADC līdz PWM, izmantojot Flyback transformatoru vai skaļruni: 4 soļi
Atskaņot dziesmas ar Arduino, izmantojot ADC, lai PWM Flyback transformatorā vai skaļrunī: Sveiki, puiši, šī ir mana cita pamācības otrā daļa (tas bija daudz grūti). Būtībā šajā projektā esmu izmantojis ADC un taimeri savā Arduino, lai pārvērst audio signālu par PWM signālu. Tas ir daudz vieglāk nekā mana iepriekšējā instrukcija
Kontrolējiet Arduino, izmantojot viedtālruni, izmantojot USB, izmantojot lietotni Blynk: 7 soļi (ar attēliem)
Kontrolējiet Arduino, izmantojot viedtālruni, izmantojot USB, izmantojot lietotni Blynk: Šajā apmācībā mēs iemācīsimies lietot lietotni Blynk un Arduino, lai kontrolētu lampu, kombinācija notiks, izmantojot USB seriālo portu. Šīs pamācības mērķis ir parādīt vienkāršākais risinājums, lai attālināti kontrolētu savu Arduino vai c