Не срабатывает digitalWrite

kimih
Offline
Зарегистрирован: 08.06.2013

Всем привет.

В VirtualBreadBoard 4.3.8 собрана схема:

 

 

 

 

 

 

 

 

 

 

 

При запуске схемы по умолчанию загорается led. Код программы:

const int button = 0;
const int led = 1;
 
void setup() {                
pinMode(button, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, LOW);
int state = digitalRead(button); 
 
if (state == LOW) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
 
delay(1);
}
 
Почему функция digitalWrite не делает его LOW и он светится при старте?

 

 

maksim
Offline
Зарегистрирован: 12.02.2012

При каком еще старте? И с чего вы взяли что digitalWrite(led, LOW); не выключает светодиод? Еще как выключает. Да вот только если у вас нажата (или не нажата) кнопка то светодиод сразу включается digitalWrite(led, HIGH);, а вы попросту не замечаете как светодиод выключается на доли секунды.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

maksim пишет:

а вы попросту не замечаете как светодиод выключается на доли секунды.

а я согласен, давайте выпишем ему рецепт к окулисту... не может различить милисекундное отключение светодиода :)

Клапауций
Offline
Зарегистрирован: 10.02.2013

Puhlyaviy пишет:
а я согласен, давайте выпишем ему рецепт к окулисту...

Тогда уж - к мозгоправу...

delay(1); - это зачем вообще?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Клапауций пишет:

Тогда уж - к мозгоправу...

delay(1); - это зачем вообще?

БРАВО! но я бы сначала не касался кода, фиг бы с ним. Я бы для начала пытался найти землю на кнопке. Там в выборе инструментов есть горшочек с цветком, вот второй конец кнопки заземлите в него :), что бы при нажатии кнопки происходило хоть что то.