6.2.- PWM Motor L293. Subrutina per fer PWM al Shield casolà Motor AB i al Shield Motor 1-2
Si volem disminuir la velocitat de gir del motor podem utilitzar la ordre PWM. Aquesta ordre fa que la eixida digital en lloc de ser 0V o 5V passe a estar modulada per un pols d'amplada variable.
Mira la gràfica de Timothy Hirzel.
La ordre és analogWrite(pin,amplada); on l'amplada varia entre 0 i 255.
Mira un exemple on hem creat les funcions: motorAonHpols(x) , motorAonApols(x), motorBonHpols(x) , motorBonApols(x) [on x varia de 0 a 100]
Aquesta funció subrutina reb el valor «pols» entre 0 i 100, fa una proporció per pasar-lo a un valor entre 0 i 255 i escriu a l'ordre analogwrite el valor que controlarà el motor A al shield casolà Motor AB.
//Anem a crear la funcio engega el motor A en sentit Horari polsat al «pols %» polsat
void motorAonHpols (int pols)
{
float escriuD= pols/100.0*255.0;
int escriuE=int(escriuD);
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorA,0);
analogWrite(contacte2motorA,escriuE);
}
|
Mira un exemple on hem creat les funcions: motor1onHpols(x) , motor1onApols(x), motor2onHpols(x) , motor2onApols(x) [on x varia de 0 a 100]
Aquesta funció subrutina reb el valor «pols» entre 0 i 100, fa una proporció per pasar-lo a un valor entre 0 i 255 i escriu a l'ordre analogwrite el valor que controlarà el motor 1 al shield de Juanjo i Salvador «Motor 1-2».
//Anem a crear la funcio engega el motor 1 en sentit Horari polsat al «pols %» polsat
void motor1onHpols (int pols)
{
float escriuD= pols/100.0*255.0;
int escriuE=int(escriuD);
// activa el PWMmotor1 per poder engegar-lo
digitalWrite(activaPWMmotor1, HIGH);
// engeguem el motor1 en sentit enrere al pols% del puls possible
analogWrite(contacte1motor1,escriuE);
analogWrite(contacte2motor1,0);
}
|
Tin en compte que si el motor elèctric no és molt bo no podràs minvar molt la seua velocitat amb la funció PWM.
Prova els programes complets que tens a la ratlla de baix.
MotorAB.ino (ino - 5068 B)
Motor12.ino (ino - 4839 B)
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 4.0