Go Down

Topic: 2 RGB-led på et breadboard kontroleret af arduino uno (Read 6021 times) previous topic - next topic

navi_snuller

Dav Rune

Det var, efter mange forskellige prøvelser et "/" der var for enden af en række "*"

Tænk at en så lille ting kan give mig så mange grå hår i hovedet.

Du er en skrapsak til det her programering. ;)

Takker mange gange fr hjælpen.

Kommer jo nok igen på et tidspunkt ;D

Hi
Ivan

navi_snuller

Hej Rune

Der er gået lidt tid.
Den fejl " color was not declared in this scope"

Jeg kan ikke finde fejlen, vil du prøve om du kan se hvad jeg har lavet galt. >:(


Hi
Ivan

RuneJ

Hej Ivan

Du har ikke fået skrevet din color-funktion korrekt. Jeg har prøvet at skrive den her i to "overloadede" versioner. Det vil sige, at du kan kalde den med enten 3 eller 6 parametre, afhængigt af om du vil sætte farve på 1 eller 2 LED'er.

Funktionerne tager nu også højde for, at du med common anode LED'er skal bruge analogWrite(pin, 255) for at slukke en farvekanal, og analogWrite(pin, 0) for at sætte fuld blus på.

Prøv følgende:

Code: [Select]
const int redPin = 6;   // R petal on RGB LED module connected to digital pin 6
const int greenPin = 5; // G petal on RGB LED module connected to digital pin 5
const int bluePin = 3;  // B petal on RGB LED module connected to digital pin 3
const int redPin1 = 11;
const int greenPin1 = 10;
const int bluePin1 = 9;

// Set color (1 LED)
void color(uint8_t red,
           uint8_t green,
           uint8_t blue) {
  analogWrite(redPin, 255-red);
  analogWrite(bluePin, 255-blue);
  analogWrite(greenPin, 255-green);
}

// Set color (2 LEDs)
void color(uint8_t red,
           uint8_t green,
           uint8_t blue,
           uint8_t red1,
           uint8_t green1,
           uint8_t blue1) {
  analogWrite(redPin, 255-red);
  analogWrite(bluePin, 255-blue);
  analogWrite(greenPin, 255-green);
  analogWrite(redPin1, 255-red1);
  analogWrite(bluePin1, 255-blue1);
  analogWrite(greenPin1, 255-green1);
}


void setup()
{
  pinMode(redPin, OUTPUT);   // sets the redPin to be an output
  pinMode(greenPin, OUTPUT); // sets the greenPin to be an output
  pinMode(bluePin, OUTPUT);  // sets the bluePin to be an output
  pinMode(redPin1, OUTPUT);
  pinMode(greenPin1, OUTPUT);
  pinMode(bluePin1, OUTPUT);
}

void loop()               // run over and over again
{
  // Basic colors:
  color(0, 0, 255);      // turn the RGB LED red
  delay(500);           // delay for 1 second
  color(0, 255, 255);   // turn the RGB LED green
  delay(500);           // delay for 1 second
  color(0, 0, 255);     // turn the RGB LED blue
  delay(500);           // delay for 1 second

  // Example blendezd colors:
  color(255, 0, 0);       // turn the RGB LED red
  delay(500);             // delay for 1 second
  color(237, 109, 0);     // turn the RGB LED orange
  delay(500);             // delay for 1 second
  color(255, 215, 0);     // turn the RGB LED yellow
  delay(500);             // delay for 1 second
  color(34, 139, 34);    // turn the RGB LED green
  delay(500);            // delay for 1 second
  color(0, 0, 255);      // turn the RGB LED blue
  delay(500);            // delay for 1 second
  color(0, 46, 90);      // turn the RGB LED  indigo
  delay(500);            // delay for 1 second
  color(128, 0, 128);    // turn the RGB LED purple
  delay(500);            // delay for 1 second

}



Go Up