jueves, 23 de marzo de 2017

Arduino Project 4: Lámpara mezclando colores

Comenzando por la lista de materiales, para esta práctica necesitaremos:

  • 1 LED RGB
  • 3 resistencias de 220
  • 3 resistencias de 10 k
  • 3 fotorresistencias

Con el LED RGB, mezclaremos los 3 colores primarios, rojo, azul y verde, para obtener tantos colores como queramos. Esto se hará con diferentes voltajes en cada patilla del RGB para obtener mezclar los colores a nuestro gusto. Aquí una imagen del LED RGB y tanto sus conexiones individuales como las de la práctica montada:  
  • R: rojo
  • B: azul
  • G: verde
  • -: tierra




Las fotorresistencias ofrecerán diferentes valores de resistencia según la cantidad de luz que les llegue.

El código usado será el siguiente, comentado por mí:

const int greenLEDPin = 9 ;  //crea la variable para el pin de salida del led verde
const int redLEDPin = 11;    //crea la variable para el pin de salida del led rojo
const int blueLEDPin = 10;  //crea la variable para el pin de salida del led azul

const int redSensorPin = A0;     //crea la variable para la entrada del led rojo
const int greenSensorPin = A1;  //crea la variable para la entrada del led verde
const int blueSensorPin = A2;   //crea la variable para la entrada del led azul

int redValue = 0;     //crea la variable para el valor del voltaje del led rojo
int greenValue = 0; //crea la variable para el valor del voltaje del led verde
int blueValue = 0;  //crea la variable para el valor del voltaje del led azul

int redSensorValue = 0;      //crea la variable para el valor del sensor para el led rojo
int greenSensorValue = 0;  //crea la variable para el valor del sensor para el led verde
int blueSensorValue = 0;   //crea la variable para el valor del sensor para el led azul

void setup(){ //aquí, como siempre, el setup declarado que pines son salidas
  Serial.begin(9600);
  
  pinMode(greenLEDPin, OUTPUT);
  pinMode(redLEDPin, OUTPUT);
  pinMode(blueLEDPin, OUTPUT);
}

void loop(){
/*
con este código, se revisa repetidamente el estado del voltaje que entra por las entradas analógicas en cada pin con el analogRead, después escribe los voltajes según convenga a fin de que salga por las salidas correspondientes a los pines del RGB
*/

  redSensorValue = analogRead(redSensorPin);
  delay(5);
  greenSensorValue = analogRead(greenSensorPin);
  delay(5);
  blueSensorValue = analogRead(blueSensorPin);
  
  Serial.print("Raw SensorValues \t Red: ");
  Serial.print(redSensorValue);
  Serial.print("\t Green: ");
  Serial.print(greenSensorValue);
  Serial.print("\t Blue: ");
  Serial.print(blueSensorValue);
  redValue = redSensorValue/4;
  blueValue = blueSensorValue/4;
  greenValue = greenSensorValue/4;
  
  Serial.print("Mapped SensorValues \t Red: ");
  Serial.print(redValue);
  Serial.print("\t Blue: ");
  Serial.print(blueValue);
  Serial.print("\t Green: ");
  Serial.print(greenValue);
  
  analogWrite(redLEDPin, redValue); //aquí cambia el color del led
  analogWrite(greenLEDPin, greenValue);
  analogWrite(blueLEDPin, blueValue);
}


La simulación en circuits.io es la siguiente:






Y la construcción en formato físico con su funcionamiento es esta:






No hay comentarios:

Publicar un comentario