3. Acelerar¶
Además de la señal digital (ALTA/BAJA), la entrada del módulo L9110 también puede recibir una señal PWM para controlar la velocidad de salida.
En otras palabras, podemos usar AnalogWrite()
para controlar la velocidad de movimiento del coche.
En este proyecto, hacemos que el coche cambie gradualmente su velocidad hacia adelante, primero acelerando y luego desacelerando.
Cableado
El cableado de este proyecto es el mismo que en 2. Movimiento por Código.
Código
Nota
Abre el archivo
3.speed_up.ino
en la ruta3in1-kit\car_project\3.speed_up
.O copia este código en el Arduino IDE.
O sube el código a través del Editor Web de Arduino.
Después de ejecutar el programa, el coche acelerará gradualmente y luego desacelerará de la misma manera.
¿Cómo funciona?
El objetivo de este proyecto es escribir diferentes valores de PWM en los pines de entrada del módulo L9110 para controlar la velocidad hacia adelante del coche.
Utiliza la declaración
for()
para darspeed
en pasos de 5, escribiendo valores de 0 a 255 para que puedas ver el cambio en la velocidad hacia adelante del coche.void loop() { for(int i=0;i<=255;i+=5){ moveForward(i); delay(500); } for(int i=255;i>=0;i-=5){ moveForward(i); delay(500); } }
Acerca de la función
moveForward()
.A diferencia de 2. Movimiento por Código, que da niveles altos/bajos directamente a los pines de entrada del módulo L9110, aquí pasamos un parámetro
speed
a donde necesitamos dar niveles altos.void moveForward(int speed) { analogWrite(A_1B, 0); analogWrite(A_1A, speed); analogWrite(B_1B, speed); analogWrite(B_1A, 0); }
La declaración for
se utiliza para repetir un bloque de declaraciones encerradas entre llaves. Generalmente se usa un contador de incremento para incrementar y terminar el bucle.
for (initialization; condition; increment) { // statement(s); }
initialization
: ocurre primero y solo una vez.
condition
: cada vez que se pasa por el bucle, se prueba la condición; si es verdadera, se ejecuta el bloque de declaración y el incremento, luego se prueba nuevamente la condición. Cuando la condición se vuelve falsa, el bucle termina.
increment
: se ejecuta cada vez que se pasa por el bucle cuando la condición es verdadera.