Translate

MULTIPLE SENSOR MPU-6050 GY-521 (Cara menghubungkan 5 sensor Accelero dan Gyro MPU-6050) Arduino & Multiplex 74HC4051 (HW-529)

MULTIPLE SENSOR MPU-6050 (Cara menghubungkan 5 sensor Accelero dan Gyro MPU-6050) Arduino & Multiplex 74HC4051 (HW-529)


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan 5 pcs sensor Accelero dan Gyro MPU-6050 yang mana digunakan hanya pada 1 Arduino, caranya yaitu mengunakan modul multiplexer HC4051. untuk lebih jelasnya berikut adalah koding dan skemanya.


a, Skema 


b. Program Arduino IDE

#include "Wire.h"
#include <MPU6050_light.h>

MPU6050 mpu(Wire);
unsigned long timer = 0;
float sumbux;
float sumbuy;
float sumbuz;
float linex;
int led1 = 2;      
int led2 = 3;       
int led3 = 4;   
 
void setup() {
  Serial.begin(9600);
  Wire.begin();
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  
  byte status = mpu.begin();
  Serial.print(F("MPU6050 status: "));
  Serial.println(status);
  while(status!=0){ } // stop everything if could not connect to MPU6050
  
  Serial.println(F("Calculating offsets, do not move MPU6050"));
  delay(1000);
  // mpu.upsideDownMounting = true; // uncomment this line if the MPU6050 is mounted upside-down
  mpu.calcOffsets(); // gyro and accelero
  Serial.println("Done!\n");
}

void loop() {

//data sensor1
digitalWrite(led1, LOW);                        
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
ambilsen1();
delay(200);  

//data sensor2
digitalWrite(led1, HIGH);                        
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
ambilsen2();
delay(200);  

//data sensor3
digitalWrite(led1, LOW);                        
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
ambilsen3();
delay(200);  

//data sensor4
digitalWrite(led1, HIGH);                        
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
ambilsen4();
delay(200);  

//data sensor5
digitalWrite(led1, LOW);                        
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
ambilsen5();
delay(200);  
    
  Serial.print("X1 : ");
  Serial.print(sumbux1);
  Serial.print(" Y1 : ");
  Serial.print(sumbuy1);
  Serial.print(" Z1 : ");
  Serial.println(sumbuz1);

  Serial.print("X2 : ");
  Serial.print(sumbux2);
  Serial.print(" Y2 : ");
  Serial.print(sumbuy2);
  Serial.print(" Z2 : ");
  Serial.println(sumbuz2);

  Serial.print("X3 : ");
  Serial.print(sumbux3);
  Serial.print(" Y3 : ");
  Serial.print(sumbuy3);
  Serial.print(" Z3 : ");
  Serial.println(sumbuz3);

  Serial.print("X4 : ");
  Serial.print(sumbux4);
  Serial.print(" Y4 : ");
  Serial.print(sumbuy4);
  Serial.print(" Z4 : ");
  Serial.println(sumbuz4);

  Serial.print("X5 : ");
  Serial.print(sumbux5);
  Serial.print(" Y5 : ");
  Serial.print(sumbuy5);
  Serial.print(" Z5 : ");
  Serial.println(sumbuz5);
 
}

void ambilsen1(){
  mpu.update();
  sumbux1 = mpu.getAngleX();
  sumbuy1 = mpu.getAngleY();
  sumbuz1 = mpu.getAngleZ();   
}

void ambilsen2(){
  mpu.update();
  sumbux2 = mpu.getAngleX();
  sumbuy2 = mpu.getAngleY();
  sumbuz2 = mpu.getAngleZ();   
}

void ambilsen3(){
  mpu.update();
  sumbux3 = mpu.getAngleX();
  sumbuy3 = mpu.getAngleY();
  sumbuz3 = mpu.getAngleZ();   
}

void ambilsen4(){
  mpu.update();
  sumbux4 = mpu.getAngleX();
  sumbuy4 = mpu.getAngleY();
  sumbuz4 = mpu.getAngleZ();   
}

void ambilsen5(){
  mpu.update();
  sumbux5 = mpu.getAngleX();
  sumbuy5 = mpu.getAngleY();
  sumbuz5 = mpu.getAngleZ();   
}


No comments:

Post a Comment