Código de Arduino para controlar led RGB con PWM

Lista de materiales

  • 1 diodo Led RGB
  • 3 resistencia de 330 ohmios
  • 1 placa de Arduino uno
  • 1 protoboard
  • cables jumper

Conexiones de hardware

arduino

Un LED RGB es en realidad tres LED (rojo, verde y azul) en un módulo. Cuando los ejecutas con diferentes brillos, el rojo, el verde y el azul se mezclan para formar nuevos colores.

Comenzando en el borde aplanado de la montura del LED, los pines se ordenan de la siguiente manera: ROJO, COMÚN, VERDE, AZUL.

  • Conecte RED a una resistencia de 330 ohmios. Conecte el otro extremo de la resistencia al pin digital Arduino 9.
  • Conecte el pin COMÚN a GND.
  • Conecte VERDE a una resistencia de 330 ohmios. Conecte el otro extremo de la resistencia al pin digital Arduino 10.
  • Conecte AZUL a una resistencia de 330 ohmios. Conecte el otro extremo de la resistencia al pin digital Arduino 11.

arduino

Estructura del programa o sketch

Este programa tiene por finalidad iluminar un diodo RGB con los colores mas comunes. Luego obtener un matiz de colores utilizando el bucle for.

-----------------------------------------------------

const int ROJO_PIN = 9;
const int VERDE_PIN = 10;
const int AZUL_PIN = 11;

void setup()
{

pinMode(ROJO_PIN, OUTPUT);
pinMode(VERDE_PIN, OUTPUT);
pinMode(AZUL_PIN, OUTPUT);
}

void loop()
{

unicosColores();
maticesColores();
}

void unicosColores()
{
// Todos los pines apagados

digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, LOW);

delay(1000);

// Rojo

digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, LOW);

delay(1000);

// Verde

digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, LOW);

delay(1000);

// Azul

digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, HIGH);

delay(1000);

// Amarillo

digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, LOW);

delay(1000);

// Cyan

digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, HIGH);

delay(1000);

// Violeta

digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, HIGH);

delay(1000);

// Blanco

digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, HIGH);

delay(1000);

// Todos los pines apagados

digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, LOW);

delay(1000);
}

void maticesColores()
{
int x;

for (x = 0; x < 768; x++)

{
verRGB(x);
delay(10);
}
}

void verRGB(int color)
{
int intensidadRojo;
int intensidadVerde;
int intensidadAzul;

if (color <= 255)
{
intensidadRojo = 255 - color;
intensidadVerde = color;
intensidadAzul = 0;
}
else if (color <= 511)
{
intensidadRojo = 0;
intensidadVerde = 255 - (color - 256);
intensidadAzul = (color - 256);
}
else // color >= 512
{
intensidadRojo = (color - 512);
intensidadVerde = 0;
intensidadAzul = 255 - (color - 512);
}

analogWrite(ROJO_PIN, intensidadRojo);
analogWrite(AZUL_PIN, intensidadAzul);
analogWrite(VERDE_PIN, intensidadVerde);
}

------------------------------------------------------

¿Qué es if ... else?

if… else viene a ser un estructura que se ejecuta en respuesta a la idea “si esto no se cumple haz esto otro”. Por ejemplo:

if (inputPin == HIGH) // si el valor de la entrada inputPin es alto

{

instruccionesA; //ejecuta si se cumple la condición

}

else

{

instruccionesB; //ejecuta si no se cumple la condición

}

Else puede ir precedido de otra condición de manera que se pueden establecer varias estructuras condicionales de tipo unas dentro de las otras (anidamiento) de forma que sean mutuamente excluyentes pudiéndose ejecutar a la vez.

¿Qué es for?

La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número determinado de veces.

for (inicialización; condición; expresión)

{

ejecutaInstrucciones;

}

La inicialización de una variable local se produce una sola vez y la condición se testea cada vez que se termina la ejecución de las instrucciones dentro del bucle. Si la condición sigue cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se cumple, el bucle termina. La expresión indica en que valores se incrementa o decrementa el valor inicializado.

Video instructivo

Circuitos básicos

1.- Primeros pasos con Arduino

2.- Instalación del IDE

3.- Código para hacer parpadear un Led

4.- Código para controlar la luz de un Led con potenciómetro

5.- Código para controlar led RGB con PWM

6.- Código para luces secuenciales de 8 leds

7.- Código para encender un Led con pulsador

8.- Código para encender un Led con fotoresistencia LDR

9.- Código para sensor de temperatura

10.- Código para servomotor

11.- Código para generar sonido con zumbador o buzzer

12.- Código para sensor de ultrasonido HC-SR04

13.- Código para Módulo LCD 1602A

14.- Código para módulo L298N y motores DC

Últimas publicaciones
Explorer 1
Un día como hoy 31/01/2023

El 31 de enero de 1958, se lanza el Explorer I, el primer satélite artificial puesto en órbita terrestre por Estados Unidos. El lanzamiento del Explorer I ocurre en respuesta al lanzamiento del Sputnik I y el Sputnik II lanzados por la Unión Soviética.

gramatica
Gramática

Preguntas aleatorias de la forma correcta de escribir. Aprende jugando, para niños, jóvenes y adultos... VER MÁS

 

Calculadoras OnLine | Proyectos Electrónicos | Vista Satelital | Perú | Radio y TV | Chistes | Satélites | Internet Satelital | VoIP | Wireless

Política de Privacidad | Contáctanos

www.viasatelital.com