LED

Trying out my RGB LED with a Ribbon Sensor

I wanted to learn how to control my RGB LED with a soft-ribbon sensor. After following a few schematics on Google, getting help from a fellow student and finding a good code online, I was able to produce my first ribbon-sensor controlled RGB LED. I look forward to experimenting with the code more and understanding it better, so that I can get more creative with my LED. I would like to be able to control the LED with my piezo's and make it sound interactive, next.

I then tried again with two LED's.


 

The code was found here, on the arduino forum:

int potpin = 2;              // Switch connected to digital pin 2

int rpin = 9;
int gpin = 10;
int bpin = 11;
float h;
int h_int;
int r=0, g=0, b=0;

int val=0;

void h2rgb(float h, int &R, int &G, int &B);

void setup()                    // run once, when the sketch starts
{
 Serial.begin(9600);           // set up Serial library at 9600 bps
}


void loop()                     // run over and over again
{
 val=analogRead(potpin);    // Read the pin and display the value
 //Serial.println(val);
 h = ((float)val)/1024;
 h_int = (int) 360*h;
 h2rgb(h,r,g,b);
 Serial.print("Potentiometer value: ");
 Serial.print(val);
 Serial.print(" = Hue of ");
 Serial.print(h_int);
 Serial.print("degrees. In RGB this is: ");
 Serial.print(r);
 Serial.print(" ");
 Serial.print(g);
 Serial.print(" ");
 Serial.println(b);

 analogWrite(rpin, r);
 analogWrite(gpin, g);
 analogWrite(bpin, b);
}

void h2rgb(float H, int& R, int& G, int& B) {

 int var_i;
 float S=1, V=1, var_1, var_2, var_3, var_h, var_r, var_g, var_b;

 if ( S == 0 )                       //HSV values = 0 ÷ 1
 {
   R = V * 255;
   G = V * 255;
   B = V * 255;
 }
 else
 {
   var_h = H * 6;
   if ( var_h == 6 ) var_h = 0;      //H must be < 1
   var_i = int( var_h ) ;            //Or ... var_i = floor( var_h )
   var_1 = V * ( 1 - S );
   var_2 = V * ( 1 - S * ( var_h - var_i ) );
   var_3 = V * ( 1 - S * ( 1 - ( var_h - var_i ) ) );

   if      ( var_i == 0 ) { 
     var_r = V     ; 
     var_g = var_3 ; 
     var_b = var_1 ;
   }
   else if ( var_i == 1 ) { 
     var_r = var_2 ; 
     var_g = V     ; 
     var_b = var_1 ;
   }
   else if ( var_i == 2 ) { 
     var_r = var_1 ; 
     var_g = V     ; 
     var_b = var_3 ;
   }
   else if ( var_i == 3 ) { 
     var_r = var_1 ; 
     var_g = var_2 ; 
     var_b = V     ;
   }
   else if ( var_i == 4 ) { 
     var_r = var_3 ; 
     var_g = var_1 ; 
     var_b = V     ;
   }
   else                   { 
     var_r = V     ; 
     var_g = var_1 ; 
     var_b = var_2 ;
   }

   R = (1-var_r) * 255;                  //RGB results = 0 ÷ 255
   G = (1-var_g) * 255;
   B = (1-var_b) * 255;
 }
}

Catching up on Labs

This week, I was able to finally go through all the labs that we have done - on my own, and test my own understanding.  I started from the beginning and went from lighting one LED to lighting multiple LED's to lighting them in series and in parallel to creating a light interactive potentiometer to adding my servo to my board, to currently creating a keyboard instrument. The keyboard instrument doesn't seem to be working because of my code, but it has definitely been fun moving through the different labs - regardless of the complications.

IMG_1153.JPG

Following the instructions were easy. But, I definitely want to take more time to understand the code and physical pieces i'm using because I'm still not sure why they all work the way that they do.

Lighting the board with one LED and a switch

Learning how to light the switch, initially, felt very intimidating. I kept putting it off because I was scared of how challenging it might be to try to figure it out on my own. But, it became incredibly less intimidating as I followed the videos made by Jeff Feddersen and Tom Igoe, the website resources listed on our syllabus, and using the arduino guide book that came in my starter kit.

I started off trying to power the board with a 9V and a regulator. But, the regulator that came in my kit wasn't labeled "7805" as we were instructed to use, and the light wouldn't turn on. When I removed the battery and used the arduino, usb, and my computer, the light then started to begin to work.

I then downloaded the arduino program and was able to make the light blink at my programmed pace, which was exciting.