SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

Pages
Contributors: D___Run___
Favorited Favorite 0

Experimento 8: Mezclar colores con el RGB

Introducción

En este circuito trabajará con varios potenciómetros. En el experimento 1 ha utilizado un solo potenciómetro. Ahora vamos a subir el listón y utilizaremos tres. ¿Por qué tres? Va a utilizar cada potenciómetro para controlar el brillo de tres colores (rojo, verde y azul) de un LED RGB a fin de crear interesantes combinaciones con los colores básicos que ha utilizado en el experimento 3.

Saque el pincel y prepárese para pintar un arcoíris.

Necesitará los siguientes elementos:

  • 1x placa de pruebas
  • 1x placa Arduino 101 o Genuino 101
  • 1x LED RGB de cátodo común
  • 3x resistencia de 100 Ω
  • 15x cables puente
  • 3x potenciómetros

¿No tiene el SIK?

Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:

Trimpot 10K Ohm with Knob

Trimpot 10K Ohm with Knob

COM-09806
$1.05
6
Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2
LED - RGB Clear Common Cathode

LED - RGB Clear Common Cathode

COM-00105
$2.25
3

Resistor 100 Ohm 1/4th Watt PTH - 20 pack

COM-13761
Retired

También necesitará una placa Arduino 101 O Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

Lectura sugerida

Antes de continuar con este experimento, le recomendamos que se familiarice con los conceptos en los siguientes tutoriales:

Conexión del hardware

¿Preparado para comenzar a conectar todo? Consulte el diagrama de cableado y la tabla de conexión siguientes para ver cómo está conectado todo.

Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección. Los componentes polarizados están resaltados con un triángulo de advertencia amarillo en la tabla.

Diagrama de cableado del experimento

texto alternativo

¿Tiene dificultades para ver el circuito? Haga clic en el diagrama de cableado para verlo más de cerca.

Abrir el boceto

Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controlará el circuito. Abra el código del circuito 8; para ello, acceda a "SIK Guide Code" (Guía de códigos de SIK) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.

Para abrir el código vaya a: File > Examples > SIK Guide Code > Circuit_08 (Archivo > Ejemplos > Guía de códigos de SIK > Circuito_08)

**Copie y pegue el siguiente código en el IDE de Arduino. Cárguelo y vea qué es lo que ocurre. **

language:cpp
/* SparkFun Inventor's Kit
Example sketch 08

POTENTIOMETER

  Measure the position of each potentiometer and map it to
  the red, green and blue values! Then write those values to the RGB LED.

This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/

//create constants for the three analog input pins
const int redPot = 0;
const int greenPot = 1;
const int bluePot = 2;

//create constants for the three RGB pulse width pins
const int redPin = 5;
const int greenPin = 6;
const int bluePin = 9;

//create variables to store the red, green and blue values
int redVal;
int greenVal;
int blueVal;

void setup()
{
  //set the RGB pins as outputs
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop()
{
  //read the three analog input pins and store their value to the color variables
  redVal = analogRead(redPot);
  greenVal = analogRead(greenPot);
  blueVal = analogRead(bluePot);

  //use the map() function to scale the 10 bit (0-1023) analog input value to an 8 bit
  //(0-255) PWM, or analogWrite() signal. Then store the new mapped value back in the
  //color variable

  redVal = map(redVal, 0, 1023, 0, 255);
  greenVal = map(greenVal, 0, 1023, 0, 255);
  blueVal = map(blueVal, 0, 1023, 0, 255);

  // use the analogWrite() function to write the color values to their respective
  // RGB pins.
  analogWrite(redPin, redVal);
  analogWrite(greenPin, greenVal);
  analogWrite(bluePin, blueVal);
}

Código a tener en cuenta

analogWrite(6,233); La función analogWrite se utiliza para controlar la PWM en los pines 9, 6, 5 y 3 de la placa 101. Puede escribir un valor en el rango de 0 a 255, en el que 255 equivale a completamente encendido y 0 equivale a completamente apagado.

lightLevel = map(lightLevel, 0, 1023, 0, 255);

Parámetros

map(value, fromLow, fromHigh, toLow, toHigh)

value: el número que asignar

fromLow: el límite inferior del rango actual del valor

fromHigh: el límite superior del rango actual del valor

toLow: el límite inferior del rango objetivo del valor

toHigh: el límite superior del rango objetivo del valor

Cuando leemos una señal analógica con analogRead(), será un número de 0 a 1023. Pero cuando queremos controlar un pin de PWM con analogWrite(), será un número de 0 a 255. Podemos "adaptar" el rango superior al rango inferior con la función map(). Consulte la página de referencia de asignaciones para obtener más información.

Lo que debería ver

Debería ver que el LED RGB cambia de color cuando enciende los tres potenciómetros. Cada potenciómetro controlará un color determinado (rojo, verde y azul). Cuando se activan todos los potenciómetros hasta el valor máximo, debe ver una luz blanca del RGB. Cuando todos están desactivados, el RGB debe estar completamente apagado. Si no es así, consulte la sección Solución de problemas a continuación.

texto alternativo

Solución de problemas

Funciona de manera esporádica

Esto se debe probablemente a una conexión deficiente con los pines del potenciómetro. Para solucionarlo, apriete el potenciómetro o mueva el circuito del potenciómetro a otro lugar en la placa de pruebas.

Sigue sin funcionar

Compruebe que no ha conectado accidentalmente el contacto deslizante (pin central), la resistencia en el potenciómetro, al pin digital 0 en lugar de al pin analógico 0. (La fila de pines debajo de los pines de alimentación).

El LED no se enciende

Los LED solo funcionan en una dirección. Vuelva a comprobar las conexiones.