Habe es mit folgender library neu gemacht:
Leider hat sich an dem Ergebnis nichts geändert. Nur Motor B dreht und das sehr langsam. Kann es auch sein das der Motorshield einen Fehler hat?
#include "IRremote.h"
int IRpin = 7;
IRrecv irrecv(IRpin);
decode_results results;
int richtungA = 12; //Richtung Motor A
int richtungB = 13; //Richtung Motor B
int pwmA = 3; //Geschwindigkeit Motor A
int pwmB = 11; //Geschwindigkeit Motor B
int bremseA = 9; //Bremse Motor A
int bremseB = 8; //Bremse Motor B
int geschwindigkeitA = 250; //0-255 (min - max)
int geschwindigkeitB = 255; //0-255 (min - max)
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
//Pins für Motorenrichtung als Ausgang
pinMode(richtungA, OUTPUT);
pinMode(richtungB, OUTPUT);
//Pins für Motorenrichtung als Ausgang
pinMode(bremseA, OUTPUT);
pinMode(bremseB, OUTPUT);
//Geschwindigkeit setzen
analogWrite(pwmA, geschwindigkeitA);
analogWrite(pwmB, geschwindigkeitB);
//Bremsen anziehen
digitalWrite(bremseA, HIGH);
digitalWrite(bremseB, HIGH);
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value, DEC); // Print the Serial 'results.value'
irrecv.resume(); // Receive the next value
}
switch(results.value){
case 3772778233:
digitalWrite(bremseA, LOW);
digitalWrite(bremseB, LOW);
digitalWrite(richtungA, HIGH);
digitalWrite(richtungB, HIGH);
digitalWrite(bremseA, HIGH);
digitalWrite(bremseB, HIGH);
break;
case 3772782313:
digitalWrite(bremseA, HIGH);
digitalWrite(bremseB, HIGH);
break;
case 3772810873:
digitalWrite(bremseA, LOW);
digitalWrite(bremseB, LOW);
digitalWrite(richtungA, LOW);
digitalWrite(richtungB, LOW);
digitalWrite(bremseA, HIGH);
digitalWrite(bremseB, HIGH);
break;
}
}