Moin,
vorweg, ich bin blutiger Anfänger und beschäftige mich seit drei Tagen mit dem Arduino und der Programmierung. Also bitte seid gnädig.
Ich habe einen kleinen Roboter gebaut. Aus Mangel an Motoren sieht die Fortbewegung so aus, dass ich einen DC Motor an seinen Servo geklebt habe und das Ding so lenkt.
Mein Problem ist das der DC Motor nicht so möchte wie ich will. Nämlich gar nicht bzw funktioniert er mal und dann irgendwann wiedr nicht.
#include <Servo.h>
#include <hcsr04.h>
#define ECHO_PIN 11
#define TRIG_PIN 12
#define ENABLE 5
#define DIRA 3
#define DIRB 4
#define POTI A0
Servo myservo;
int dist = 0;
int distdreh = 100;
int sdrive = 0; //Servo Stellung Geradeaus 0 = Geradeaus
int sturn = 120; //Servo Stellung drehen 120 = drehen
HCSR04 hcsr04(TRIG_PIN, ECHO_PIN, 20, 4000);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myservo.attach(9);
pinMode(ENABLE, OUTPUT); //Motor INPUT
pinMode(DIRA, OUTPUT); //Motor direction 1
pinMode(DIRB, OUTPUT); //Motor direction 2
}
void loop() {
//abstandsmessung
Serial.println(hcsr04.distanceInMillimeters());
dist = (hcsr04.distanceInMillimeters());
delay(50);
if (dist > distdreh) { //Roboter geradeaus
myservo.write(sdrive);
analogWrite(ENABLE, 255);
digitalWrite(DIRA, HIGH);
digitalWrite(DIRB, LOW);
}
if (dist < distdreh) {
analogWrite(ENABLE, 0);
digitalWrite(DIRA, HIGH);
digitalWrite(DIRB, LOW);
delay(1000);
myservo.write(sturn);
}
}
vielleicht kann mir hier ja jemand helfen.
Dankeschön
PalimPalim*
Edit: Gerade habe ich das Phänomen festgestellt, dass der Motor angelaufen ist als das Programm mehrere Minuten ist. Dabei habe auch den Servo angesteuert der korrekt gedreht hat. Dann ist der Motor einfach ausgegangen.