2015-01-11 2 views
1

Я написал этот простой кусок кода для тестирования моего arduino и RGB led.Почему этот код делает светодиодное свечение красным?

int redled=11; 
int blueled=10; 
int greenled=9; 

void setup() 
{ 
    pinMode(redled, OUTPUT); 
    pinMode(blueled, OUTPUT); 
    pinMode(greenled, OUTPUT); 
} 

void loop() 
{ 
    digitalWrite(greenled, HIGH); 
    digitalWrite(blueled, HIGH); 
    delay(1000); 
    digitalWrite(greenled, LOW); 
    digitalWrite(blueled, LOW); 
    delay(1000); 
} 

Вот картинка: (. 220Ω резисторы, в случае, если интересно)

Как вы можете видеть, я закодированы зеленый и синий в blink, но после того, как я загружу его на arduino, красный светодиод на самом деле мигает. Почему это происходит? Как это исправить?

Любая помощь будет оценена!

UPDATE:

Когда я отключаю красный провод в целом, программа работает, как ожидалось, но теперь, когда я подключить его обратно, он начинает мигать, как это:

БЕЛАЯ красный WHITE red

В чем проблема сейчас?

+1

Какие светодиоды подключены к которым контакты и как? – abligh

+0

@abligh Я загружу его. – Pyraminx

+0

вы можете вставить определение digitalWrite? –

ответ

2

Ваша проблема в том, что вы не выключили красный светодиод. Off означает, что на штыре требуется HIGH, так как у вас общая конфигурация анода, поэтому светодиодные элементы продолжаются, когда напряжение LOW (не HIGH).

Вы мигаете синим и зеленым выходами, но красный штырь постоянно остается низким. Таким образом, это означает, что он включен (так как общий анод равен +5 В). Это связано с тем, что синий + зеленый + красный = белый (когда синий и зеленый выходы LOW), тогда как красный только красный (когда синие и зеленые выходы HIGH).

Так добавить в setup():

digitalWrite(redled, HIGH); 
+0

Я пробовал кое-что. Прочитайте обновление. Когда я подключаю тот, который, как я думаю, красный до 5v, светодиод перестает мигать. – Pyraminx

+0

См. Мой исправленный ответ - все объяснено. – abligh

+0

Спасибо, что сказал мне. Я не знал, что обычные анодные светодиоды имеют «HIGH» для off и 'LOW' для включения. – Pyraminx