2011-11-05 11 views
9

Właśnie dostałem Arduino i mam problemy z oświetleniem.Arduino RGB LED problemy

Wierzę, że używam wspólnej diody anody, więc mam trzy kolorowe piny przechodzące przez rezystor 270 omów do 10, 11 i 12 na arduino. Ostatni jest podłączony bezpośrednio do VSS.

Podobnie jak to: http://www.instructables.com/id/RGB-LED-Tutorial-using-an-Arduino-RGBL/step2/Testing/

Teraz działa przeciwnie do tego, co ja przewidzenia. Kiedy piszę analogWrite(red, 0), dioda zaświeci się na czerwono, a 255 całkowicie ją wyłącza.

Teraz regulacja wartości od 0-254 ledwo dostosowuje jasność. 255 jest całkowicie wyłączony, gdy miga przez sekundę.

Czy ktoś może wyjaśnić, co dokładnie się dzieje?

+1

Hm ... Pin 12 nie jest pin PWM na mojego Arduino. Tak więc 'analogWrite' będzie działać niezgodnie z oczekiwaniami dla tej pinezki. –

Odpowiedz

9

Twoja dioda LED to zwykła anoda, więc działa ona zupełnie odwrotnie niż zwykła katoda. Wypróbuj to:

int PWM_value = xxx; 
analogWrite(red, 255 - PWM_value); 
3

Jak wskazuje A.H., Pin 12 nie jest PWM pin. Spróbuj zmienić kod, aby użyć kołków 9,10,11 zamiast 10,11,12 i daj mu kolejny strzał.

Oto zmodyfikowana wersja próbki dokumentacji do zilustrowania pomysł:

int rPin = 9;  
int gPin = 10;  
int bPin = 11;  
int analogPin = 0; // potentiometer connected to analog pin 0 
int val = 0;   // variable to store the read value 

void setup() 
{ 
    pinMode(rPin, OUTPUT); // sets the pin as output 
    pinMode(gPin, OUTPUT); // sets the pin as output 
    pinMode(bPin, OUTPUT); // sets the pin as output 
} 

void loop() 
{ 
    val = analogRead(analogPin); // read the input pin 
    analogWrite(rPin, val/4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255 
    analogWrite(gPin, val/4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255 
    analogWrite(bPin, val/4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255 
} 

Pamiętaj, że musisz czujnik podpięty do analogowego pin 0 do zmiany wartości LED.

1
[http://arduino.cc/en/Reference/analogWrite][1] 

Tu nie zmieniły szpilki PWM anything.Just aktualizowanie