sobota, 23 lipca 2011

RGB z przyciskami

Kolejny projekt z żarówką RGB. Żeby go wykonać przyda 6 oporników (3 x 1k ohm i 3 x 10k ohm), trzy przyciski, żarówka RGB i kilka kabelków. Głównym problemem w projekcie są przyciski, po prostu nie trzymają się płytki montażowej. przez to nie do końca wszystko się styka... za pierwszym razem zestaw zadziałał od razu, przy drugim podejściu musiałem się nakombinować żeby przyciski działały. Podejrzewam że coś nie stykało... te przyciski non stop wylatują... może ktoś ma na nie jakiś pomysł. Tutorial znalazłem w sieci w kanale BRIKOGEEK na YouTube, więcej na ich stronie. Niestety bez schematu. projekt trzeba było odtworzyć z pliku wideo. Udało się :) zaczęło świecić, więc wydaje się, że chyba coś się nauczyłem ;). Poniżej kod do obsługi żarówki :)

int czerwony=3; 
int niebieski=5; 
int zielony=6; 
 
int wartoscczerwony=254; 
int wartosczielony=254; 
int wartoscniebieski=254; 
 
int przyciskwyboru = 8; 
int przyciskmniej = 9; 
int przyciskwiecej = 10; 
int wybranyled = 0; 
  
void setup()  
{  
  pinMode(przyciskwyboru, INPUT); 
  pinMode(przyciskmniej, INPUT); 
  pinMode(przyciskwiecej, INPUT); 
   
  analogWrite(czerwony, 255);   
}  
  
int pinLed = 0; 
  
void loop()  
{  
      
   int wartoscled = 0; 
 
   if (digitalRead(przyciskwyboru) == HIGH)  
   { 
      pinLed++;   
       
      if (pinLed > 2) { pinLed=0; } 
    
      analogWrite(czerwony, 0); 
      analogWrite(zielony, 0); 
      analogWrite(niebieski, 0);       
       
      while (digitalRead(przyciskwyboru) == HIGH) {  }             
      delay(10);
   } 
   
   if (digitalRead(przyciskwiecej) == HIGH)  
   {  
     if (pinLed == 0) { wartoscczerwony++; } 
     if (pinLed == 1) { wartosczielony++; } 
     if (pinLed == 2) { wartoscniebieski++; } 
      
     delay(5); 
    } 
     
   if (digitalRead(przyciskmniej) == HIGH)  
   {  
     if (pinLed == 0) { wartoscczerwony--; } 
     if (pinLed == 1) { wartosczielony--; } 
     if (pinLed == 2) { wartoscniebieski--; } 
      
     delay(5); 
    }         
     
    if (wartoscczerwony > 254) { wartoscczerwony=254; } 
    if (wartoscczerwony < 0) { wartoscczerwony=0; } 
     
    if (wartosczielony > 254) { wartosczielony=254; } 
    if (wartosczielony < 0) { wartosczielony=0; } 
 
    if (wartoscniebieski > 254) { wartoscniebieski=254; } 
    if (wartoscniebieski < 0) { wartoscniebieski=0; }     
 
  if (pinLed == 0) { analogWrite(czerwony, wartoscczerwony); } 
  if (pinLed == 1) { analogWrite(zielony, wartosczielony); } 
  if (pinLed == 2) { analogWrite(niebieski, wartoscniebieski); } 
  
}
 
...

Brak komentarzy:

Prześlij komentarz