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:
Hallo Benni,
Ich hab dein Videos gesehen und bin begeistert.
Jetzt wollte ich fragen kannst du mir bitte den Code zukommen lassen? Mfg Basti
Hallo Basti, jetzt wo die Seite aktualisiert ist, habe ich auch den Code hinzugefügt.
hello,i am doing the same job as you.can you give me your code in detail? i am frustrated for how to read the data from mpu6050.
http://blog.benjaminkraft.de/wp-content/uploads/2014/05/MPU6050-Motorcontroller.rar
Hallo Benjamin ,
Mir gefällt dein Code ich benötige genau sowas für mein bissanzeiger 🙂
Bloß anstatt ein Motor Möchte ich gerne Summer schalten aber nur in eine Richtung könntest du mir den Code anpassen und ich verwenden ein arduino nano hab ich da eigentlich genug LED Ausgänge ?
Hallo Marco,
Was für einen Sensor verwendest du als Eingangsgröße?
Mit dem Nano ist es auf jeden Fall möglich die LEDs zu Schalten. Da hast du 13 Digitale IO Ports. Wenn du mir genauer beschreibst was du machen möchtest könnten wir da sicher einen Weg finden, dass ich dir den fertigen Code zukommen lasse.
VG Benjamin
Hallo Benjamin,
Als Sensor verwende ich wie du ein MPU6050
Ich möchte wie in deinem Video den Ausschlag mit den LEDs anzeigen lassen und der Summer soll eben noch Soundlich den Ausschlag darstellen (eigentlich so wie bei dir mit dem Motor)zunehmende LEDs lauteres piepsen des Summers,,blosss eben nur in eine Richtung nicht nach hinten
Soll ein Bissanzeiger für Angeln werden.
Könntest du mir ein Pinout mit anhängen wo ich dir LEDs 4x und Summer1x anschließen muss???
Mit freundlichen Grüßen
Marco
Achso könnte man die LEDs auch nachdimmen lassen so für 3-4 Sekunden ???
Mit freundlichen Grüßen
Marco
Dear Benjamin,
I tried to open your file but it always fails the system „can not open the scketch“.
Am I doing something wrong ?
Claudio
Hi there, just became aware of your blog through Google, and found that it’s truly informative. Im gonna watch out for brussels. I will appreciate if you continue this in future. Many people will be benefited from your writing. Cheers! acaefedgbfka