Мигание по нажатию кнопки
- Войдите на сайт для отправки комментариев
Ср, 11/10/2017 - 14:47
Подскажите пожалуйста. Подключил кнопку по схеме с подтягивающим резистором...резюк был ток 20кОм...но вроде все работает, но вот написал код и не пойму почему кнопка при подаче 5В постоянно горит , а при размыкании мигает постоянно светодиод ?
int ledPin = 13;
int buttonPin = 2;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin); // считываем состояние кнопки
if (buttonState == HIGH){
miganie();
digitalWrite(ledPin, HIGH); // зажигаем светодиод при нажатии кнопки
}
}
void miganie(){
for (int a =0; a <3; a++){
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
}
почему кнопка при подаче 5В постоянно горит
Может резюк не в тот гнездюк засунул? Вот кнопзюк и загорелся.
вот код немного переделал :
int ledPin = 13; int buttonPin = 2; void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { int buttonState = digitalRead(buttonPin); // считываем состояние кнопки if (buttonState == HIGH){ miganie(); digitalWrite(ledPin, HIGH); // зажигаем светодиод при нажатии кнопки } else if (buttonState == LOW){ digitalWrite(ledPin, LOW); } } void miganie(){ for (int a =0; a <3; a++){ digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } }сейчас, когда между контактами 2 и GND нету 5В резистор не горит при нажатии на кнопку и замыкании цепи с +5В между контактами 2 и GND появляется 5В и резистор начинает безперерыва мигать...что ни так сделано ?
По идеи должен мигнуть быстро 3 раза и установиться в режим ГОРЕТЬ ВСЕГДА !
А должен?
Ужас!
То у Вас кнопка горела, теперь резистор размигался. Вы это, не привыкали бы к дряни, которую сейчас курите.
Ахахха...да просто в задумках писал ) Понятно, что не горит светодиод !
#define ledPin 13 #define buttonPin 2 bool f_miganie = 0; void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { int buttonState = digitalRead(buttonPin); // считываем состояние кнопки if (buttonState == HIGH && f_miganie == 0) { miganie(); digitalWrite(ledPin, HIGH); // зажигаем светодиод при нажатии кнопки f_miganie = 1; } else if (buttonState == LOW) { digitalWrite(ledPin, LOW); f_miganie = 0; } } void miganie() { for (int a = 0; a < 3; a++) { digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } }а ведь работает, спасибо. интересный момент с f_miganie )
а вот ещё вопрос...почему при включении в digitalPin3 тоже работает ?) по идеи ток при включении в digitalPin2 должно ведь ?