- Nødvendige komponenter:
- MPU6050 gyrosensor:
- Beskrivelse:
- Kredsløbsdiagram og forklaring:
- Programmering Forklaring
MPU6050- sensoren har mange funktioner over den enkelte chip. Det består af et MEMS-accelerometer, en MEMS-gyro og temperatursensor. Dette modul er meget nøjagtigt ved konvertering af analoge værdier til digitale, fordi det har en 16bit analog til digital konverterhardware til hver kanal. Dette modul er i stand til at fange x-, y- og z-kanaler på samme tid. Den har en I2C-grænseflade til at kommunikere med værtscontrolleren. Dette MPU6050-modul er en kompakt chip med både accelerometer og gyro. Dette er en meget nyttig enhed til mange applikationer som droner, robotter, bevægelsessensorer. Det kaldes også gyroskop eller tredobbelt akselerometer.
I dag i denne artikel skal vi interface dette MPU6050 Gyroskop med Arduino og vise værdierne over 16x2 LCD.
Nødvendige komponenter:
- Arduino Uno
- MPU-6050
- 10K POTTE
- Jumper wire
- Brødbræt
- USB-kabel
- Strømforsyning
MPU6050 gyrosensor:
MPU-6050 er en 8-pin 6-akset gyro og accelerometer i en enkelt chip. Dette modul fungerer som standard på I2C seriel kommunikation, men det kan konfigureres til SPI-interface ved at konfigurere det register. For I2C har dette SDA og SCL linjer. Næsten alle benene er multifunktionelle, men her fortsætter vi kun med I2C-mode ben.
Pin-konfiguration:
Vcc: - denne ben bruges til at forsyne MPU6050-modulet med hensyn til jord
GND: - dette er jordnål
SDA: - SDA-ben bruges til data mellem controller og mpu6050-modul
SCL: - SCL-pin bruges til urindgang
XDA: - Dette er sensor I2C SDA-datalinje til konfiguration og læsning fra eksterne sensorer ((valgfri), der ikke bruges i vores tilfælde)
XCL: - Dette er sensor I2C SCL urlinje til konfiguration og læsning fra eksterne sensorer ((valgfri), der ikke bruges i vores tilfælde)
ADO: - I2C Slave Address LSB (ikke relevant i vores tilfælde)
INT: - Afbryd pin til indikation af data klar.
Beskrivelse:
I denne artikel viser vi temperatur-, gyro- og accelerometeraflæsninger over LCD ved hjælp af MPU6050 med Arduino. Dette modul giver os rækkeværdier og normaliserede værdier i output, men rækkeværdier er ikke stabile, så her har vi vist normaliserede værdier over LCD. Hvis du bare vil have accelerometerværdi, kan du også bruge Accelerometer ADXL335 med Arduino.
I dette projekt har vi først vist en temperaturværdi over LCD, og efter 10 sekunder viser vi gyroværdier, og efter 10 sekunder har vi accelerometeraflæsninger som vist på nedenstående billeder:
Kredsløbsdiagram og forklaring:
Kredsløbsdiagrammet til grænseflade mellem MPU6050 og Arduino er meget simpelt, her har vi brugt en LCD og MPU6050. Og her har vi brugt en bærbar USB-strømforsyning. En 10k pot bruges til at kontrollere lysstyrken på LCD'et. I forbindelse med MPU6050 har vi foretaget 5 forbindelser, hvor vi har tilsluttet 3.3v strømforsyning og jord af MPU6050 til 3.3v og jord på Arduino. SCL og SDA-ben på MPU6050 er forbundet med Arduinos A4- og A5-ben. Og INT-stift på MPU6050 er forbundet til at afbryde 0 af Arduino (D2). LCD's RS, RW og EN er direkte forbundet til 8, GND og 9 i Arduino. Datapin er direkte forbundet til det digitale pin nummer 10, 11, 12 og 13.
Programmering Forklaring
Programmeringsdel er også let for dette projekt. Her har vi brugt dette MPU6050-bibliotek til at interface det med Arduino. Så først og fremmest skal vi downloade MPU6050-biblioteket fra GitHub og installere det i Arduino IDE.
Efter det kan vi finde eksempler på koder i eksemplet. Brugeren kan teste denne kode ved direkte at uploade dem til Arduino og kan se værdier over seriel skærm. Eller brugeren kan også bruge vores kode, der er anført i slutningen af artiklen, til at vise værdier over LCD og seriel skærm.
I kodningen har vi inkluderet nogle påkrævede biblioteker som MPU6050 og LCD.
#omfatte
I installationsfunktionen initialiserer vi begge enheder og skriver velkomstbesked over LCD
ugyldig opsætning () {lcd.begin (16,2); lcd.createChar (0, grad); Serial.begin (9600); Serial.println ("Initialiser MPU6050"); mens (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Enhed ikke fundet"); Serial.println ("Kunne ikke finde en gyldig MPU6050-sensor, tjek ledningerne!"); forsinkelse (500); } antal = 0; mpu.calibrateGyro (); mpu.setThreshold (3); I loop- funktion har vi kaldt tre funktioner i hver 10 sekund til visning af temperatur, gyro og accelerometeraflæsning på LCD. Disse tre funktioner er tempShow, gyroShow og accelShow , du kan kontrollere disse funktioner i den komplette Arduino-kode, der er givet i slutningen af denne artikel:
ugyldig sløjfe () {lcd.clear (); lcd.print ("temperatur"); lang st = millis (); Serial.println ("Temperatur"); mens (millis ()
MPU6050 gyro og accelerometer bruges begge til at detektere placeringen og orienteringen af en hvilken som helst enhed. Gyro bruger jordens tyngdekraft til at bestemme positionerne x, y og z-akse, og accelerometer registrerer baseret på hastigheden af bevægelsesændringen. Vi har allerede brugt accelerometeret med Arduino i mange af vores projekter som:
- Accelerometerbaseret håndbevægelsesstyret robot
- Arduino-baseret alarmsystem til køretøjsulykker
- Jordskælvdetektoralarm ved hjælp af Arduino