Med relä styrelser att styra linjära manöverdon (4 / 5 steg)
Steg 4: Gränssnitt med MegaMoto Motor Controller
Reläerna kan användas för att tillåta en MegaMoto motor controller kan ha full kontroll över 2 ställdon. PWM stift av MegaMoto används för att kontrollera hastigheten på manöverdonet, reläet väljer riktning. Varje motor kräver två reläer att välja riktning.
Se våra MegaMoto kontrollstyrelsen Instructable för mer detaljerad information om den motor controller.
Installationen kräver 7 stift på Arduino. 2 stift för PWMA och PWMB, 1 stift för MegaMoto aktiverar pin och 4 stift för 4 reläer.
Koden nedan kommer utöka en utlösare, sedan ta tillbaka det, sedan förlänga och dra tillbaka andra manöverdonet.
Ledningar:
1) tillmäter Arduino MegaMoto sköld
2) ansluta 12V till MegaMoto
3) tråd relay styrelsen enligt bilden (användning relä 1/2 för en motor, 3/4 för den andra att hålla det enkelt)
4) Anslut motorn leder till COM anslutningarna på reläer. Om motorerna gå åt fel håll, kan du antingen vända dessa anslutning eller ändra pin siffrorna i koden (forwards1, backwards1, forwards2, backwards2)
/ * Exempelkod för Robot Power MegaMoto. Denna styrelse kan staplas upp till tre
gånger för att kontrollera tre motorer.
Uppdaterad av progressiva automatiseringar, med hjälp av den ursprungliga exempel föreskrivs:
http://www.robotpower.com/downloads
Hårdvara:
-1 till 3 RobotPower MegaMoto kontroll styrelser
-Arduino Uno
Ledningar:
-Anslut den +/-Aktiveringsorganets till A / B motor kanaler
-Anslut den +/-makt leverans till den +/-BAT anslutningar
Denna exempelkod är offentlig.
*/
CONST int EnablePin1 = 8;
CONST int PWMPinA1 = 3; //Actuator en kontroll
CONST int PWMPinB1 = 11. //Actuator B kontroll
CONST int forwards1 = 5;
CONST int backwards1 = 4;
CONST int forwards2 = 7.
CONST int backwards2 = 6;
void setup() {
pinMode (EnablePin1, OUTPUT);
pinMode (PWMPinA1, OUTPUT);
pinMode (PWMPinB1, OUTPUT);
pinMode (forwards1, produktionen);
pinMode (backwards1, produktionen);
pinMode (forwards2, produktionen);
pinMode (backwards2, produktionen);
motor1Speed (0), //choose hastighet (0-255)
motor2Speed (0), //choose hastighet (0-255)
} //end setup
void loop() {
digitalWrite (EnablePin1, hög); //enable motorn
motor2Speed (0), //stop 2: a motor
motor1Direction (1), //choose riktning 1 = framåt 0 = bakåt
motor1Speed (128); //choose hastighet (0-255)
fördröjning (3000), //wait 3 sekunder
motor1Direction (0), //choose riktning 1 = framåt 0 = bakåt
motor1Speed (128); //choose hastighet (0-255)
fördröjning (3000), //wait 3 sekunder
motor1Speed (0), //stop 1: a motor
motor2Direction (1), //choose riktning 1 = framåt 0 = bakåt
motor2Speed (128); //choose hastighet (0-255)
fördröjning (3000), //wait 3 sekunder
motor2Direction (0), //choose riktning 1 = framåt 0 = bakåt
motor2Speed (128); //choose hastighet (0-255)
fördröjning (3000), //wait 3 sekunder
} //end huvudloop
int motor1Direction(int direct)
{
om (direkt == 0) //if 0, gå bakåt
{
digitalWrite (forwards1, hög); //high deaktiverar relay
digitalWrite (backwards1, låg); //low aktiveras relä
} //end om
annars om (direkt == 1) //if 1, gå framåt
{
digitalWrite (forwards1, låg); //low aktiveras relä
digitalWrite (backwards1, hög); //high deaktiverar relay
} //end om
} //end motor1Direction
int motor2Direction(int direct)
{
om (direkt == 0) //if 0, gå bakåt
{
digitalWrite (forwards2, hög); //high deaktiverar relay
digitalWrite (backwards2, låg); //low aktiveras relä
} //end om
annars om (direkt == 1) //if 1, gå framåt
{
digitalWrite (forwards2, låg); //low aktiveras relä
digitalWrite (backwards2, hög); //high deaktiverar relay
} //end om
} //end motor2Direction
int motor1Speed(int speeed)
{
analogWrite (PWMPinA1, speeed); //set hastighet av motor
} //end motor1Speed
int motor2Speed(int speeed)
{
analogWrite (PWMPinB1, speeed); //set hastighet av motor
} //end motor2Speed