Hallo,
Ik heb op de Arduino UNO een tweetal bipolaire stappenmotoren aangesloten (via drivers M415C ). Het toerental van de beide motoren is niet gelijk. Het lukt me maar niet om dit in een werkbaar algoritme te verwerken.
Dit is wat ik tot op heden heb (begin vh programma niet bijgevoegd):
void setup()
{
Serial.begin(9600);
pinMode(motor1Puls, OUTPUT); // sets the digital pin as output
pinMode(motor1Dir, OUTPUT); // sets the digital pin as output
pinMode(motor1Opto, OUTPUT); // sets the digital pin as output
pinMode(motor1En, OUTPUT); // sets the digital pin as output
pinMode(motor2Puls, OUTPUT); // sets the digital pin as output
pinMode(motor2Dir, OUTPUT); // sets the digital pin as output
pinMode(motor2Opto, OUTPUT); // sets the digital pin as output
pinMode(motor2En, OUTPUT); // sets the digital pin as output
}
void loop(){
digitalWrite(motor1Opto, LOW);
digitalWrite(motor1En, LOW);
digitalWrite(motor2Opto, LOW);
digitalWrite(motor2En, LOW);
digitalWrite(motor1Opto, HIGH);
digitalWrite(motor1En, HIGH);
digitalWrite(motor2Opto, HIGH);
digitalWrite(motor2En, HIGH);
/* motoren draaien linksom */
digitalWrite(motor1Dir, HIGH);
digitalWrite(motor2Dir, HIGH);
for (puls = 0; puls < 144000; puls++){
digitalWrite(motor1Puls, HIGH);
digitalWrite(motor2Puls, HIGH);
delayMicroseconds(motorsnelheid);
digitalWrite(motor1Puls, LOW);
digitalWrite(motor2Puls, LOW);
delayMicroseconds(motorsnelheid);
}
}
Ik heb getracht om voor iedere motor een apart algoritme te schrijven, maar dit werkt gewoon niet. Dat wil zeggen, motor 1 loopt, motor 2 niet of niet naar behoren. Of moet je dan 2 Uno's gebruiken?
Tot slot: de stappenmotoren moeten met een constante snelheid voor langere tijd kunnen draaien.
Mijn vraag: is er eigenlijk een meer eenvoudige notatie te bedenken voor de regel:
for (puls = 0; puls < 18000000; puls++)
Eigenlijk moet er iets staan in de trant van
Van puls = 0 naar puls is oneindig
Ik heb internet afgestruind naar vergelijkbare programma's, inclusief die van Tom Igoe. Zijn programma voor een stationair draaiende stappenmotor werkt als je het algoritme letterlijk overneemt, maar zodra je de snelheid wil aanpassen beginnen de stappenmotoren rare kuren te vertonen, de rotor draait in ieder geval niet meer naar behoren. Bovendien, werkt dit programma ook bij de aansturing van 2 stappenmotoren met verschillende snelheden?