Omet navegació

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.

PWM

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)