- Nödvändiga komponenter:
- MPU6050 gyrosensor:
- Beskrivning:
- Kretsschema och förklaring:
- Programmeringsförklaring
MPU6050- sensorn har många funktioner över det enda chipet. Den består av en MEMS-accelerometer, en MEMS-gyro och temperatursensor. Den här modulen är mycket exakt när man konverterar analoga värden till digitala eftersom den har en 16-bitars analog till digital omvandlare för varje kanal. Den här modulen kan fånga x-, y- och z-kanaler samtidigt. Den har ett I2C-gränssnitt för att kommunicera med värdstyrenheten. Denna MPU6050-modul är ett kompakt chip med både accelerometer och gyro. Detta är en mycket användbar enhet för många applikationer som drönare, robotar, rörelsesensorer. Det kallas också Gyroscope eller Triple Axel accelerometer.
Idag i den här artikeln ska vi gränssnitt detta MPU6050 Gyroskop med Arduino och visa värden över 16x2 LCD.
Nödvändiga komponenter:
- Arduino Uno
- MPU-6050
- 10K POT
- Bygeltråd
- Bakbord
- USB-kabel
- Strömförsörjning
MPU6050 gyrosensor:
MPU-6050 är en 8-pin 6-axlig gyro och accelerometer i ett enda chip. Den här modulen fungerar som standard på seriell I2C-kommunikation men den kan konfigureras för SPI-gränssnitt genom att konfigurera registeret. För I2C har detta SDA- och SCL-linjer. Nästan alla stift är multifunktionella men här fortsätter vi bara med I2C-lägesstift.
Pin-konfiguration:
Vcc: - denna stift används för att driva MPU6050-modulen i förhållande till marken
GND: - detta är markstift
SDA: - SDA-stift används för data mellan styrenhet och mpu6050-modulen
SCL: - SCL-stift används för klockingång
XDA: - Detta är sensor I2C SDA-datalinje för konfigurering och läsning från externa sensorer ((tillval) används inte i vårt fall)
XCL: - Detta är sensor I2C SCL klocklinje för konfigurering och avläsning från externa sensorer ((tillval) används inte i vårt fall)
ADO: - I2C Slavadress LSB (inte tillämpligt i vårt fall)
INT: - Avbryt stift för indikering av data redo.
Beskrivning:
I den här artikeln visar vi temperatur-, gyro- och accelerometeravläsningar över LCD med MPU6050 med Arduino. Denna modul ger oss radvärden och normaliserade värden i utdata men radvärdena är inte stabila så här har vi visat normaliserade värden över LCD. Om du bara vill ha accelerometervärde kan du också använda Accelerometer ADXL335 med Arduino.
I detta projekt har vi först visat ett temperaturvärde över LCD och efter 10 sekunder visar vi gyrovärden och efter 10 sekunder har vi accelerometeravläsningar som visas i bilderna nedan:
Kretsschema och förklaring:
Kretsschemat, för gränssnitt MPU6050 med Arduino, är väldigt enkelt här vi har använt en LCD och MPU6050. Och här har vi använt en bärbar USB-strömförsörjning. En 10k-kruka används för att styra LCD-skärmens ljusstyrka. I anslutning till MPU6050 har vi gjort 5 anslutningar där vi har anslutit 3.3v strömförsörjning och jord på MPU6050 till 3.3v och jord på Arduino. SCL- och SDA-stift på MPU6050 är anslutna till Arduinos A4- och A5-stift. Och INT-stift av MPU6050 är ansluten till att avbryta 0 av Arduino (D2). LCD: s RS, RW och EN är direkt anslutna till 8, GND och 9 i Arduino. Datapinnen är direkt ansluten till det digitala stiftet nummer 10, 11, 12 och 13.
Programmeringsförklaring
Programmeringsdelen är också lätt för detta projekt. Här har vi använt detta MPU6050-bibliotek för att ansluta det till Arduino. Så först och främst måste vi ladda ner MPU6050-biblioteket från GitHub och installera det i Arduino IDE.
Efter det kan vi hitta exempelkoder i exemplet. Användaren kan testa den koden genom att direkt ladda upp dem till Arduino och kan se värden över seriell bildskärm. Eller så kan användaren använda vår kod som ges i slutet av artikeln för att visa värden över LCD och seriell bildskärm också.
I kodningen har vi inkluderat några obligatoriska bibliotek som MPU6050 och LCD.
#omfatta
I installationsfunktionen initialiserar vi båda enheterna och skriver välkomstmeddelande över LCD
ogiltig installation () {lcd.begin (16,2); lcd.createChar (0, grad); Serial.begin (9600); Serial.println ("Initiera MPU6050"); medan (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Enheten hittades inte"); Serial.println ("Det gick inte att hitta en giltig MPU6050-sensor, kontrollera kabeldragningen!"); fördröjning (500); } antal = 0; mpu.calibrateGyro (); mpu.setThreshold (3); I loop- funktion har vi anropat tre funktioner på var tionde sekund för att visa temperatur, gyro och accelerometeravläsning på LCD. Dessa tre funktioner är tempShow, gyroShow och accelShow , du kan kontrollera dessa funktioner i den kompletta Arduino-koden som ges i slutet av den här artikeln:
ogiltig slinga () {lcd.clear (); lcd.print ("temperatur"); lång st = millis (); Serial.println ("Temperatur"); medan (millis ()
MPU6050 gyro och accelerometer används båda för att detektera position och orientering för vilken enhet som helst. Gyro använder jordens tyngdkraft för att bestämma x-, y- och z-axelns positioner och accelerometerdetekterar baserat på hastigheten för rörelseförändringen. Vi har redan använt accelerometern med Arduino i många av våra projekt som:
- Accelerometerbaserad handstyrd robot
- Arduino-baserat varningssystem för bilolyckor
- Jordbävningsdetektorlarm med Arduino