1Sheeld kontrolleras Arduino fordon (4 / 9 steg)
Steg 4: Sabertooth Motor Driver förklarade
Sabertooth 2X25amp är en mångsidig, effektiv och lätt att använda dubbla motor driver. Den är lämplig för höga powered robotar - upp till 100 lbs i strid eller 300 lbs för allmänna ändamål robotics.
Sabertooth får ström via B skruvplintar, och kan driva andra komponenter via 5V skruv terminal. Jag experimentera med driver Arduino från denna terminal, men något om makt var inte "ren nog"... varje gång jag hamrade på gasen till maximal hastighet, 1Sheeld skulle avbryta anslutningen. I stället lägger mycket tid i denna fråga, använde jag bara en separat strömkälla för Arduino.
Presentreklam säkerställa 0V skruv terminal är ansluten till din Arduino mark, Sabertooth får annars inte styrsignaler från din Arduino.
Du kan styra Sabertooth via olika lägen. Detta projekt använder Läge 3 förenklad seriell läge... i princip, du skickar en enda byte i data som representerar ett tal från en digital pin på din Arduino till S1 kanal på din Sabertooth. I den enda byten har du ett utbud av tal mellan 0 (lägsta) och 255 (högsta)... varje tal som representerar en unik motor, riktning och hastighetsinställning allt i ett. Sabertooth tolkar detta nummer och justerar hastighet/riktning makt för antingen (uppsättning) motorer kopplas till M1 och M2 skruv terminaler.
Här är en liten kodfragmentet illustrerar körande en motorisk framåt 50% och en motor bakåt 75%... 2 x 4 medel 2/4, 1/2, 50%, och 3 x 4 innebär 3/4, 75%...
Värden 1 thru 127 styr vänster motor, 128 till 255 kontroller rätt motor
#define FORWARD_4x4_R_MOTOR 255
#define FORWARD_3x4_R_MOTOR 240
#define FORWARD_2x4_R_MOTOR 224
#define FORWARD_1x4_R_MOTOR 208
#define STOPNOW_0x4_R_MOTOR 192
#define REVERSE_1x4_R_MOTOR 176
#define REVERSE_2x4_R_MOTOR 160
#define REVERSE_3x4_R_MOTOR 144
#define REVERSE_4x4_R_MOTOR 128
#define FORWARD_4x4_L_MOTOR 127
#define FORWARD_3x4_L_MOTOR 112
#define FORWARD_2x4_L_MOTOR 96
#define FORWARD_1x4_L_MOTOR 80
#define STOPNOW_0x4_L_MOTOR 64
#define REVERSE_3x4_L_MOTOR 48
#define REVERSE_2x4_L_MOTOR 32
#define REVERSE_1x4_L_MOTOR 16
#define REVERSE_4x4_L_MOTOR 1
...
SaberSerial.write (FORWARD_2x4_R_MOTOR); 2/4 är 50%
SaberSerial.write (REVERSE_3x4_L_MOTOR); 3/4 är 75%
För mer information, Läs den medföljande dokumentationen som PDF och hänvisa till koden senare.