Arduino Mega 2560 + MPU 6050 – control DC motor with motion sensor

Arduino Mega 2560 + MPU 6050 – control DC motor with motion sensor 

Für den oben zu sehenden Motorcontroller habe ich folgende Bibliothek benutzt:

Bibliothek: MPU-6050 Accelerometer + Gyro By arduino.cc user „Krodal“.

Folgende Codezeilen wurden von mir hinzugefügt. Der Motor dreht sich durch eine Potentialumkehrung in beide Richtungen. Über einen Map befehl lässt sich die Spannung am Motor stufenlos regeln.

My Code:

int led1 = 31 ;
int led1g = 30 ;
int led2 = 37 ;
int led2g = 36 ;
int led3 = 41 ;
int led3g = 40 ;
int led4 = 47;
int led4g = 46;
int led5 = 53;
int led5g = 52;

int motorA = 12;
int motorB = 10;

void setup()
{

……..

}
void loop()
{

……….

digitalWrite(led1g, LOW);
digitalWrite(led2g, LOW);
digitalWrite(led3g, LOW);
digitalWrite(led4g, LOW);
digitalWrite(led5g, LOW);

analogWrite(motorA, 0);
digitalWrite(motorB,LOW);

if((angle_x>10))
{
digitalWrite(led1, HIGH); }
else
{ digitalWrite(led1, LOW); ;
};
if((angle_x>20))
{
digitalWrite(led2, HIGH); }
else

{ digitalWrite(led2, LOW);
};
if((angle_x>30))
{
digitalWrite(led3, HIGH); }
else

{ digitalWrite(led3, LOW);
};
if((angle_x>40))
{
digitalWrite(led4, HIGH); }
else
{ digitalWrite(led4, LOW);

};
if((angle_x>50))
{
digitalWrite(led5, HIGH); }
else
{ digitalWrite(led5, LOW);

};
//Motor backward

if((angle_x>1)){
analogWrite(motorA,0);
analogWrite(motorB,map(angle_x, 1, 60, 140, 255));}
if((angle_x>60)){ analogWrite(motorB,255);}

if((angle_x<-(1))){
analogWrite(motorB,0);
analogWrite(motorA,map(angle_x, -(1), -(60), 140, 255));}
if((angle_x<-(60))){ analogWrite(motorA,255);}

………….

 

Download here:

MPU6050 Motorcontroller

10 Comments

Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.