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