Pokazywanie postów oznaczonych etykietą rgb. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą rgb. Pokaż wszystkie posty

piątek, 21 marca 2014

Zabawa RGB z telefonem w systemie android

Projekt przygotowany przez Bee Project (Thailand)
Aplikacja na androida

kod:

//przypisujemy piny do RGB
const int redPin = 6;
const int greenPin = 5;
const int bluePin = 3;

#define REDPIN 6
#define GREENPIN 5
#define BLUEPIN 3

#define FADESPEED 5

void setup() {
// initialize serial:
Serial.begin(9600);

// make the pins outputs:
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);

Serial.print("Arduino control RGB LEDs Connected OK ( Sent From Arduinno Board )");
Serial.print('\n');
}

void loop() {

// if there's any serial available, read it:
while (Serial.available() > 0) {

 // look for the next valid integer in the incoming serial stream:
 int red = Serial.parseInt();
 // do it again:
 int green = Serial.parseInt();
 // do it again:
 int blue = Serial.parseInt();

 // look for the newline. That's the end of your
 // sentence:
 if (Serial.read() == '\n') {
          
   // constrain the values to 0 - 255 and invert
   // if you're using a common-cathode LED, just use "constrain(color, 0, 255);"

   red = constrain(red, 0, 255);
   green = constrain(green, 0, 255);
   blue = constrain(blue, 0, 255);
 
   // fade the red, green, and blue legs of the LED:
   analogWrite(redPin, red);
   analogWrite(greenPin, green);
   analogWrite(bluePin, blue);
 
  // print the three numbers in one string as hexadecimal:
  Serial.print("Data Response : ");
  Serial.print(red, HEX);
  Serial.print(green, HEX);
  Serial.println(blue, HEX);
 }
}

}

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); } 
  
}
 
...

czwartek, 14 lipca 2011

RGB przejście kolorów

Zabawa ledami mnie wciągnęła do końca... :) Podnieśmy poprzeczkę i podłączmy diodę RGB i pobawmy się trochę kolorami. Diodę RGB podłączamy jak na załączonych rysunkach. Dioda RGB ma 4 nóżki (czerwona, masa, zielona i niebieska) masa jest dłuższa niż pozostałe. Do kolorów podłączamy oporniki 220 OHM.

Poniżej kod sterujący diodą RGB. Żeby wzmocnić efekt świecenia diody można na nią założyć piłeczkę pingpongową. :) Jest na co popatrzeć.

int czerwony;
int zielony;
int niebieski;


void setup()
{
  czerwony = 255;
  zielony = 255;
  niebieski = 255;
}


void loop()
{
  zmiana_koloru(&czerwony,   1);
  zmiana_koloru(&zielony,    1);
  zmiana_koloru(&czerwony,   0);
  zmiana_koloru(&niebieski,  1);
  zmiana_koloru(&czerwony,   1);
  zmiana_koloru(&zielony,    0);
  zmiana_koloru(&czerwony,   0);
  zmiana_koloru(&niebieski,  0);
}


void zmiana_koloru(int* wartosc, int kolor)
{
  for (int i = 0; i < 255; i++)
  {
    if (kolor)
      (*wartosc)--;
    else
      (*wartosc)++;
     
    wyswietl();
    delay(10);
  }
}
void wyswietl()
{
  analogWrite(6 czerwony);
  analogWrite(5, zielony);
  analogWrite(3, niebieski);
}