InicioHazlo Tu MismoPines Digitales PWM de Arduino

Pines Digitales PWM de Arduino

Hazlo Tu Mismo4/30/2014

Los pines digitales PWM (Pulse width modulation) de Arduino nos permiten enviar señales eléctricas mediante la modulación de pulsos, es decir, que podemos digamos “controlar” el voltaje que se envía a través de éstos.

Para entender el concepto de mejor manera veremos un ejemplo en el que controlaremos la intensidad del brillo de un led.

Antes que nada debemos saber reconocer los pines y esto lo hacemos mediantes el símbolo “~” que tienen a su izquierda tal y como se muestra en la imagen principal del post.

Como hemos visto en tutoriales pasados es posible encender un led con solo darle la instrucción “digitalWrite” con un estado de “HIGH” y apagarlo con un estado de “LOW”, esto sucede ya que cuando enviamos los estados HIGH Y LOW se realiza un envío de pulsos con señales de 5V y 0V respectivamente razón por la cual se encendía o se apagaba el led.

Lo interesante de los pines PWM es que podemos enviar señales intermedias entre 0v y 5v a través de una escala entre 0-255 tal y como veremos a continuación:

Conexión:


Código:


const int led=3;
 
void setup(){
  pinMode(led, OUTPUT);
}
 
void loop(){
    analogWrite(led, 0);
    delay(1000);
    analogWrite(led, 50);
    delay(1000);
    analogWrite(led, 150);
    delay(1000);
    analogWrite(led, 200);
    delay(1000);
    analogWrite(led, 255);
    delay(1000);
}

En el código como funciones nuevas solo tenemos a “analogWrite” la cual solo necesita dos parámetros, uno el pin al que está conectado nuestro dispositivo (un led en nuestro caso) y como segundo un número entre 0 y 255 que representa la señal de voltaje a enviar como mencionaba anteriormente.

Resultado Final:






Efecto FadeIn


Tras ser posible el envío de señales eléctricas con valores intermedios podemos lograr un efecto conocido como “FadeIn” usando un par de bucles “for”.
En un bucle  pasamos de 0 a 255 cada 20 milisegundos (para lograr apreciar el cambio) y otro en el que pasamos de 255 a 0 también cada 20 milisegundos.

Código:


const int led=3;
int brillo;
 
void setup(){
  pinMode(led, OUTPUT);
}
 
void loop(){
  for(brillo=0;brillo<256;brillo++){
    analogWrite(led, brillo);
    delay(20);
  }
 
  for(brillo=255;brillo>0;brillo--){
    analogWrite(led, brillo);
    delay(20);
  }
}

Datos archivados del Taringa! original
10puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

K
Usuario
Puntos0
Posts11
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.