Die neuen Motor-Shields sind etwas anders zu programmieren.
Man steckt die beiden Anschlüsse in die Motorblöcke und dahinter steht entweder A oder B.
Die Motoren werden bei A über Pin 12 und 9 gesteuert (bei Block B wären es 13 und 8). Pin 12 veranlasst den Motor zu drehen, je nach Geschwindigkeit (Pin 3 regelt die). Pin 9 ist eine Art Bremse, die den Motor stoppen lässt. Wenn die Bremse aus ist, läuft der Motor, sonst stoppt er. Wenn Pin 12 auf HIGH (1) steht, dreht der Motor vorwärts, bei LOW (0) dreht er rückwärts (wenn die Bremse (Pin 9) aus ist (LOW).
Um verschiedene Geschwindigkeiten zu setzen, kann man den Pin 3 (bei Block B den Pin 11) auf Werte zwische 0 (geringste Geschw.) und 255 (max. Geschw.) setzen.
Wichtig: wenn man mehr als 5 V Strom anschließt (z.B. Akku-Pack), dann den Vin Pin verwenden, nicht den 5 V Pin oder den 3,5 V Pin!!!!!!
Hier ein Beispiel für einen Motor:
void setup() {
//Setup Channel A
pinMode(12, OUTPUT); //Initiates Motor Channel A pin, Channel B would be 13
pinMode(9, OUTPUT); //Initiates Brake Channel A pin, Channel B would be 8
}
void loop(){
//forward @ full speed
digitalWrite(12, HIGH); //Establishes forward direction of Channel A
digitalWrite(9, LOW); //Disengage the Brake for Channel A
analogWrite(3, 255); //Spins the motor on Channel A at full speed
delay(3000);
digitalWrite(9, HIGH); //Eengage the Brake for Channel A
delay(1000);
//backward @ half speed
digitalWrite(12, LOW); //Establishes backward direction of Channel A
digitalWrite(9, LOW); //Disengage the Brake for Channel A
analogWrite(3, 123); //Spins the motor on Channel A at half speed
delay(3000);
digitalWrite(9, HIGH); //Eengage the Brake for Channel A
delay(1000);
}
Kommentar verfassen