Practica 6 Arduino
Practica 6 Arduino
PWM es la modulación por ancho de pulso (en inglés pulse width modulation
PWM), es un tipo de señal de voltaje utilizada para enviar información o para
modificar la cantidad de energía que se envía a una carga.
Esta acción tiene en cuenta la modificación del proceso de trabajo de una señal de
tipo periódico.
Puede tener varios objetivos, como tener el control de la energía que se
proporciona a una carga o llevar a cabo la transmisión de datos.
Si el ciclo de trabajo es del 25% se pasa el 25% de su periodo arriba y el 75%
abajo. El periodo es lo que dura la onda sin repetirse. Por eso se va repitiendo con
el tiempo porque el periodo se repite durante todo el tiempo. El periodo es la suma
de la parte alta y baja una vez, cuando vuelve a subir ya es otro periodo y la onda
vuelve a empezar otra vez.
El ancho de la onda y su altura, siempre es la misma. De 0 a 5 Volts. Lo único que
varía es el tiempo que está en ON/OFF (Encendido ó Apagado).
Para emular una señal analógica se cambia el ciclo de trabajo, de tal manera que
el valor promedio de la señal sea el voltaje aproximado que se desea obtener,
pudiendo entonces enviar voltajes entre 0[V] y el máximo que soporte el
dispositivo PWM utilizado.
Por ejemplo: variar la velocidad de giro de un motor, variar la intensidad de
emisión un LED, o transmitir los grados de giro de un servo, entre otros ejemplos.
Para todo esto nos servirá las PWM, que emula una señal analógica a partir de
una señal digital.
Servomotores controlados por PWM.
¿Qué es un Servomotor?
La señal de control es dada por los pines digitales PWM. Para controlar el
servomotor se le envía pulsos cada 20 ms es decir a 50Hz. La anchura del pulso
es lo que determinará el ángulo de giro, es decir lo que se conoce como PWM.
Esta anchura varía según el servomotor, pero normalmente va entre 0.5 y 2.5 ms
aunque puede variar. Esto hace que el servomotor tenga un margen de operación,
por lo que se puede mover entre 0º (pulso con una anchura de 0.5 ms) y un
máximo, que suele ser, de 180º (pulso con una anchura de 2.5ms).
Intensidad luminosa de un LED controlada por PWM.
Para encender el LED solo necesitamos de una señal en estado alto ( 1 ) y para
apagarlo una señal en estado bajo ( 0 ).
DESARROLLO:
Materiales:
LED´S de cualquier color.
Resistencias de 330Ω.
Protoboard.
Cables para realizar las conexiones.
Microprocesador Arduino.
CODIGO:
El codigo inicialmente se relizo para probar intensidad luminosa de un solo LED,
pero se decidio colocar un LED mas, modificando el codigo de modo que una vez
que encendiaera al maximo y descendiera a lo minimo la luminosaidad de un led,
se pasara a realizar la misma operacion pero con el segundo LED.
const int led = 3; //Declaracion de una constante donde el led esta conectado en el pin 3
const int led2 = 5; //Declaracion de una constante para un segundo led en el pin 5
void setup() {
void loop() {
for( brillo = 255; brillo >= 0 ; brillo--) { //Unciclo for ahora para llegar a el apagado del led
for( brillo = 0; brillo < 256; brillo++) { //misma instrucciones pero ahora un segundo led, se
for( brillo = 255; brillo >= 0 ; brillo--) { //Unciclo for ahora para llegar a el apagado del led
}
RESULTADOS DE OPERACION DE UN LED CONTROLADA POR PSW, CON
ARDUINO.
Aumento de luminocidad
del led hasta el punto maximo
Disminucion de luminosidad
del led hasta llegar a cero
Aumento de luminocidad
del segundo led hasta el punto
maximo
Disminucion de luminosidad
del led hasta llegar a cero