Имеется такой светодиод, или даже несколько. Вопрос: какой максимально простой схемой организовать ему питание с переключаемым програмно направлением?
Самое простое - это через резистор к пинам (например) D0 и D1 Когда D0 = D1, то он не светится D1 high, D0 low - один цвет, наоборот - другой
каждая ножка подключена к пину через резистор 100-150 Ом. Код (Text): #define LED_PIN_A 5 #define LED_PIN_B 6 void setup() { pinMode(LED_PIN_A, OUTPUT); pinMode(LED_PIN_B, OUTPUT); digitalWrite(LED_PIN_A, LOW); digitalWrite(LED_PIN_B, LOW); } void loop() { // зажигаем красный, гасим зеленый digitalWrite(LED_PIN_A, HIGH); digitalWrite(LED_PIN_B, LOW); delay(2000); // гасим красный, зажигаем зеленый digitalWrite(LED_PIN_A, LOW); digitalWrite(LED_PIN_B, HIGH); delay(2000); // одновременно красный и зеленый включить невозможно, но можно их очень быстро переключать for (byte i=0; i<255; i++) { digitalWrite(LED_PIN_A, HIGH); digitalWrite(LED_PIN_B, LOW); delay(4); digitalWrite(LED_PIN_A, LOW); digitalWrite(LED_PIN_B, HIGH); delay(4); } delay(5000); }
Пин сконфигурированный как выход - это два транзистора, работающие в противофазе. Когда LOW - открывается нижний транзистор (замыкает пин на землю) Когда HIGH - открывается верхний транзистор (замыкает пин на питание) Максимальный ток через транзистор - 20мА.
То что я говорил выше - это как устроен пин внутри, а не два соседних. Про два пина в HIGH - на них на обоих будет 5 вольт, а разница напряжения между ними ноль вольт. Ничего не сгорит, светодиод светиться не будет. А почему решили что что-то погорит?
для этого и стоят ДВА резистора, по одному на каждый пин. Даже если будет замыкание из-за программного ляпа, максимальный ток на пинах будет ограничен.
И моток медного провода на закопанное в землю ведро. ) Вот тоже думал, зачем ДВА, чем плох один но побольше. А скорее всего один обычный в таких случаях 220Ом.