- Nødvendige komponenter:
- MPU6050 gyrosensor:
- Beskrivelse:
- Kretsdiagram og forklaring:
- Programmering Forklaring
MPU6050- sensoren har mange funksjoner over den enkelte brikken. Den består av et MEMS akselerometer, en MEMS gyro og temperatursensor. Denne modulen er veldig nøyaktig når den konverterer analoge verdier til digital fordi den har en 16bit analog til digital omformer maskinvare for hver kanal. Denne modulen er i stand til å fange x-, y- og z-kanaler samtidig. Den har et I2C-grensesnitt for å kommunisere med vertskontrolleren. Denne MPU6050-modulen er en kompakt brikke som har både akselerometer og gyro. Dette er en veldig nyttig enhet for mange applikasjoner som droner, roboter, bevegelsessensorer. Det kalles også gyroskop eller trippelaksel akselerometer.
I dag i denne artikkelen skal vi grensesnitt dette MPU6050 Gyroskop med Arduino og vise verdiene over 16x2 LCD.
Nødvendige komponenter:
- Arduino Uno
- MPU-6050
- 10K POTTE
- Jumper wire
- Brettbrett
- USB-kabel
- Strømforsyning
MPU6050 gyrosensor:
MPU-6050 er en 8-pins 6-akset gyro og akselerometer i en enkelt brikke. Denne modulen fungerer på I2C seriell kommunikasjon som standard, men den kan konfigureres for SPI-grensesnitt ved å konfigurere registeret. For I2C har dette SDA- og SCL-linjer. Nesten alle pinnene er multifunksjonelle, men her fortsetter vi bare med I2C-moduspinner.
Pin-konfigurasjon:
Vcc: - denne pinnen brukes til å drive MPU6050-modulen i forhold til bakken
GND: - dette er bakkenål
SDA: - SDA-pinne brukes til data mellom kontrolleren og mpu6050-modulen
SCL: - SCL-pin brukes til klokkeinngang
XDA: - Dette er sensor I2C SDA-datalinje for konfigurering og lesing fra eksterne sensorer ((valgfritt) som ikke brukes i vårt tilfelle)
XCL: - Dette er sensor I2C SCL klokkelinje for konfigurering og lesing fra eksterne sensorer ((valgfritt) som ikke brukes i vårt tilfelle)
ADO: - I2C Slave Address LSB (ikke aktuelt i vårt tilfelle)
INT: - Avbryt pin for indikasjon på data klar.
Beskrivelse:
I denne artikkelen viser vi temperatur-, gyro- og akselerometeravlesninger over LCD ved hjelp av MPU6050 med Arduino. Denne modulen gir oss radverdier og normaliserte verdier i utdata, men radverdier er ikke stabile, så her har vi vist normaliserte verdier over LCD. Hvis du bare vil ha akselerometerverdi, kan du også bruke Akselerometer ADXL335 med Arduino.
I dette prosjektet har vi først vist en temperaturverdi over LCD og etter 10 sekunder viser vi gyroverdier og etter 10 sekunder har vi akselerometeravlesninger som vist på bildene nedenfor:
Kretsdiagram og forklaring:
Kretsskjemaet, for grensesnitt MPU6050 med Arduino, er veldig enkelt her. Vi har brukt en LCD og MPU6050. Og her har vi brukt en bærbar USB-strømforsyning. En 10 k gryte brukes til å kontrollere lysstyrken på LCD-skjermen. I forbindelse med MPU6050 har vi utført 5 tilkoblinger der vi har koblet 3.3v strømforsyning og jord til MPU6050 til 3.3v og bakken til Arduino. SCL og SDA-pinner på MPU6050 er koblet til Arduinos A4- og A5-pinne. Og INT-pinnen til MPU6050 er koblet til å avbryte 0 av Arduino (D2). LCDs RS, RW og EN er direkte koblet til 8, GND og 9 av Arduino. Datapinnen er direkte koblet til det digitale pin nummer 10, 11, 12 og 13.
Programmering Forklaring
Programmeringsdel er også enkelt for dette prosjektet. Her har vi brukt dette MPU6050-biblioteket til å grensesnitt det med Arduino. Så først og fremst må vi laste ned MPU6050-biblioteket fra GitHub og installere det i Arduino IDE.
Etter det kan vi finne eksempelkoder i eksemplet. Brukeren kan teste koden ved å laste dem opp direkte til Arduino og kan se verdier over seriell skjerm. Eller brukeren kan bruke koden vår gitt på slutten av artikkelen for å vise verdier over LCD og seriell skjerm også.
I kodingen har vi tatt med noen påkrevde biblioteker som MPU6050 og LCD.
#inkludere
I installasjonsfunksjonen initialiserer vi begge enhetene og skriver velkomstmelding over LCD
ugyldig oppsett () {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 ("Enheten ble ikke funnet"); Serial.println ("Kunne ikke finne en gyldig MPU6050-sensor, sjekk kabling!"); forsinkelse (500); } count = 0; mpu.calibrateGyro (); mpu.setThreshold (3); I loop- funksjon har vi kalt tre funksjoner i løpet av hvert 10. sekund for å vise temperatur, gyro og akselerometeravlesning på LCD. Disse tre funksjonene er tempShow, gyroShow og accelShow , du kan sjekke disse funksjonene i den komplette Arduino-koden gitt på slutten av denne artikkelen:
ugyldig sløyfe () {lcd.clear (); lcd.print ("Temperatur"); lang st = millis (); Serial.println ("Temperatur"); mens (millis ()
MPU6050 gyro og akselerometer brukes begge til å oppdage posisjonen og retningen til en hvilken som helst enhet. Gyro bruker jordens tyngdekraft for å bestemme x-, y- og z-akseposisjonene og akselerometeret oppdager basert på hastigheten på bevegelsesendringen. Vi har allerede brukt akselerometeret med Arduino i mange av våre prosjekter som:
- Akselerometerbasert håndbevegelseskontrollert robot
- Arduino-basert bilvarslingssystem
- Jordskjelvdetektoralarm ved hjelp av Arduino