2011-11-05 41 views
9

Chỉ cần có Arduino và tôi đang rối tung xung quanh có một số vấn đề với đèn.Các vấn đề LED RGB RGB

Tôi tin rằng tôi đang sử dụng một cực dương chung dẫn, vì vậy tôi có ba chân màu đi qua một điện trở 270 ohm đến 10, 11 và 12 trên Arduino. Cuối cùng được nối trực tiếp với VSS.

Giống như này: http://www.instructables.com/id/RGB-LED-Tutorial-using-an-Arduino-RGBL/step2/Testing/

Bây giờ, nó đang làm việc trái dấu với những gì tôi sẽ dự đoán. Khi tôi viết analogWrite(red, 0), đèn LED sáng đỏ và 255 tắt hoàn toàn.

Bây giờ, điều chỉnh giá trị từ 0-254 hầu như không điều chỉnh độ sáng. 255 hoàn toàn tắt sau khi nó nhấp nháy trong một giây.

Có ai có thể giải thích chính xác những gì đang xảy ra không?

+1

Hm ... Pin 12 không phải là một pin PWM trên Arduino của tôi. Vì vậy, 'analogWrite' sẽ làm việc không như mong đợi cho pin đó. –

Trả lời

9

Đèn LED của bạn là cực dương chung vì vậy nó hoạt động chỉ ngược lại với cực âm chung. Hãy thử điều này:

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

AS A.H. chỉ ra, Pin 12 không phải là PWM pin. Cố gắng thay đổi mã của bạn để sử dụng các chân 9,10,11 thay vì 10,11,12 và cho nó một ảnh khác.

Dưới đây là một phiên bản sửa đổi của mẫu tài liệu để minh họa cho ý tưởng:

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 
} 

Lưu ý rằng bạn cần một cảm biến nối với pin analog 0 đến thay đổi giá trị dẫn.

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

đây bạn đã không thay đổi anything.Just cập nhật PWM chân