Iluminación de cuarzo con los colores correspondiente a los Chakras

En ocasiones se necesita iluminar un cuarzo con diferentes luces o colores, utilizando un led RGB y un Arduino se pueden obtener efectos muy interesantes. Se realizaron dos dispositivos distintos para controlar un led RGB: Un succor punch con una bobina moebius y led que permite a través de dos mandos y una pantalla controlar eligiendo de unas listas tanto los colores que se proyectan en el cuarzo como las frecuencias que se inducen a la bobina; el otro es un dispositivo sencillo que proyecta los colores asignados a los chakras cambiando cada 3 minutos. Este último dispositivo es el que se describe en esta ocasión y del que se aporta el código.
Como el objetivo es que la punta de cuarzo luzca el color del chakra correspondiente, se recomienda que el cuarzo no sea excesivamente transparente, sino que tenga las denominadas “nubes” internas, o algún tipo de impureza interna que retenga la luz proyectada. La caja debe ser la apropiada al tamaño del cuarzo que se utilice, pegándolo firmemente encima del orificio donde asoma el led RGB.

Se requieren los siguientes elementos: 
- Un Arduino nano u otro modelo, el niño es recomendado por su tamaño y si se van a utilizar frecuencias, ya que éste es bastante preciso sin necesidad de elementos externos.
- Un led verde o de otro color, conectado a una resistencia de 10 KΩ.
- Un led RGB de cátodo común y 3 resistencias de 220 Ω.
- Un interruptor.
- Una conexión para la pila adecuada. El Arduino funciona a partir de 5 V con una pila de 9 V es suficiente, también se puede conectar a un adaptador de red eléctrica.
- Se puede añadir un diodo 1N4807 o similar para evitar la inversión de polaridad.

Este es su esquema:

Un led RGB tiene 3 patillas correspondientes cada una a uno de los colores básicos, por lo que se le asigna cada conexión a un pin de salida analógica del Arduino nano, en nuestro caso hemos utilizado el 8, el 9 y el 10. Dando un valor de salida PWM comprendida entre 0 y 255, se consigue la intensidad de color adecuada. A través de la instrucción “delay” limitamos el tiempo en mili segundos que se desea que actúe cada color correspondiente a un chakra determinado, en el ejemplo se han empleado 120.000. El programa se inicia sin proyectar ningún color, pasados unos segundos pasa a iluminarse con el tono del primer chakra (rojo) y pasados los mili segundos indicados al siguiente y después a los sucesivos; cuando llega al último vuelve a iniciar la secuencia. El led verde conectado a la salida de 5 V a través de la resistencia de 10 KΩ solo es un mero indicador de que el dispositivo está en funcionamiento.

Aquí se pueden apreciar los distintos tonos conseguidos:



   


  
Si desea un dispositivo de este tipo adaptado a sus necesidades y no se cree capaz de hacerlo por usted mismo, en Alternativ-lab se lo pueden realizar.

Este es el código:
//------------------------------------
// Codigo RGB con los colores de los Chakras
// COPYRIGHT LIBRE POR "TESLAMEN"
int R;
int G;
int B;
void setup() {

  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}
void loop() {
  //Parar
  R = 0;
  G = 0;
  B = 0; 
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(1800); 
  // Rojo
  R = 255;
  G = 0;
  B = 0; 
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(120000); 
  // Naranja
  R = 50;
  G = 0;
  B = 0;
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(120000);   
  delay(120000);         
  //Amarillo      
  R = 255;
  G = 255;
  B = 0;
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul  
  //Verde     
  R = 0;
  G = 255;
  B = 0;
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(120000);                                
  //Azul  
  R = 0;
  G = 0;
  B = 128;
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(120000);                              
  //Indigo
  R = 0;
  G = 255;
  B = 255;
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(120000);  
  //Violeta
  R = 255;
  G = 0;
  B = 126;
  analogWrite(9 , R) ;   // Red    - Rojo
  analogWrite(10, G) ;   // Green - Verde
  analogWrite(11, B) ;   // Blue - Azul
  delay(120000);       
}
//----------------------------------