- Componente necesare:
- Senzor giroscopic MPU6050:
- Descriere:
- Schema și explicația circuitului:
- Explicație de programare
Senzorul MPU6050 are multe funcții asupra unui singur cip. Este format dintr-un accelerometru MEMS, un giroscop MEMS și un senzor de temperatură. Acest modul este foarte precis în timp ce convertește valorile analogice în digitale deoarece are un convertor de 16 biți analog în digital pentru fiecare canal. Acest modul este capabil să capteze canalele x, y și z în același timp. Are o interfață I2C pentru a comunica cu controlerul gazdă. Acest modul MPU6050 este un cip compact care are atât accelerometru, cât și giroscop. Acesta este un dispozitiv foarte util pentru multe aplicații precum drone, roboți, senzori de mișcare. Se mai numește giroscop sau accelerometru cu trei axe.
Astăzi, în acest articol, vom interfața acest giroscop MPU6050 cu Arduino și vom afișa valorile pe 16x2 LCD.
Componente necesare:
- Arduino Uno
- MPU-6050
- GHID 10K
- Sârmă jumper
- Breadboard
- cablu USB
- Alimentare electrică
Senzor giroscopic MPU6050:
MPU-6050 este un giroscop cu 8 axe și un accelerometru într-un singur cip. Acest modul funcționează în mod implicit pe comunicația serială I2C, dar poate fi configurat pentru interfața SPI configurându-l registru. Pentru I2C, acesta are linii SDA și SCL. Aproape toți pinii sunt multifuncționali, dar aici continuăm doar cu pinii de mod I2C.
Configurarea pinului:
Vcc: - acest pin este utilizat pentru alimentarea modulului MPU6050 în raport cu solul
GND: - acesta este pinul la sol
SDA: - pinul SDA este utilizat pentru date între controler și modulul mpu6050
SCL: - Pinul SCL este utilizat pentru intrarea ceasului
XDA: - Aceasta este linia de date a senzorului I2C SDA pentru configurarea și citirea de la senzori externi ((opțional) neutilizați în cazul nostru)
XCL: - Aceasta este linia de ceas a senzorului I2C SCL pentru configurarea și citirea de la senzori externi ((opțional) neutilizați în cazul nostru)
ADO: - I2C Slave Address LSB (nu se aplică în cazul nostru)
INT: - Pin de întrerupere pentru indicarea datelor gata.
Descriere:
În acest articol, afișăm citiri de temperatură, giroscop și accelerometru pe ecranul LCD folosind MPU6050 cu Arduino. Acest modul ne oferă valori de rând și valori normalizate în ieșire, dar valorile de rând nu sunt stabile, așa că aici avem valori normalizate pe ecranul LCD. Dacă doriți doar valoarea accelerometrului, puteți utiliza și Accelerometer ADXL335 cu Arduino.
În acest proiect, am arătat mai întâi o valoare a temperaturii pe ecranul LCD și după 10 secunde afișăm valorile giroscopice și după 10 secunde avem citiri ale accelerometrului așa cum se arată în imaginile de mai jos:
Schema și explicația circuitului:
Schema circuitului, pentru interfațarea MPU6050 cu Arduino, este foarte simplă aici am folosit un LCD și MPU6050. Și aici am folosit o sursă de alimentare USB pentru laptop. O oală de 10k este utilizată pentru controlul luminozității ecranului LCD. În legătură cu MPU6050, am realizat 5 conexiuni în care am conectat sursa de alimentare de 3.3v și masa de la MPU6050 la 3.3v și la masa Arduino. Pinii SCL și SDA ai MPU6050 sunt conectați cu pinii Arduino A4 și A5. Și pinul INT al MPU6050 este conectat la întreruperea 0 a Arduino (D2). LCD-urile RS, RW și EN sunt conectate direct la 8, gnd și 9 din Arduino. Pinul de date este conectat direct la pinul digital numărul 10, 11, 12 și 13.
Explicație de programare
Partea de programare este, de asemenea, ușoară pentru acest proiect. Aici am folosit această bibliotecă MPU6050 pentru a o interfața cu Arduino. Deci, în primul rând, trebuie să descărcăm biblioteca MPU6050 din GitHub și să o instalăm în Arduino IDE.
După el, putem găsi exemple de coduri în exemplu. Utilizatorul poate testa acel cod încărcându-l direct pe Arduino și poate vedea valorile pe monitorul serial. Sau utilizatorul poate folosi codul nostru dat la sfârșitul articolului pentru a afișa valori și pe ecranul LCD și pe monitorul serial.
În codificare, am inclus câteva biblioteci necesare, cum ar fi MPU6050 și LCD.
#include
În funcția de configurare , inițializăm ambele dispozitive și scriem un mesaj de bun venit pe ecranul LCD
void setup () {lcd.begin (16,2); lcd.createChar (0, grad); Serial.begin (9600); Serial.println ("Initialize MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print („Dispozitivul nu a fost găsit”); Serial.println („Nu s-a putut găsi un senzor MPU6050 valid, verificați cablarea!”); întârziere (500); } număr = 0; mpu.calibrateGyro (); mpu.setThreshold (3); În funcție de buclă , am numit trei funcții în fiecare 10 secunde pentru afișarea citirii temperaturii, giroscopului și accelerometrului pe LCD. Aceste trei funcții sunt tempShow, gyroShow și accelShow , puteți verifica acele funcții în codul Arduino complet dat la sfârșitul acestui articol:
bucla void () {lcd.clear (); lcd.print ("Temperatură"); lung st = milis (); Serial.println ("Temperatura"); while (milis ()
Ambele giroscop și accelerometru MPU6050 sunt utilizate pentru a detecta poziția și orientarea oricărui dispozitiv. Gyro folosește gravitația pământului pentru a determina pozițiile axelor x, y și z și accelerometrul detectează pe baza ratei schimbării mișcării. Am folosit deja accelerometrul cu Arduino în multe dintre proiectele noastre precum:
- Robot controlat prin gesturi de mână bazat pe accelerometru
- Sistem de alertă în caz de accident bazat pe vehicul Arduino
- Alarmă detector cutremur folosind Arduino