attachInterrupt для mega 2560 не срабатывает
Недавно я купил mega 2560, чтобы поиграться с ним в качестве хобби. Пока что это довольно забавно, но недавно я застрял, пытаясь использовать attachInterrupt с кнопкой. Я использую режим CHANGE и довольно внимательно прочитал документацию (я думаю).
Я просмотрел множество вопросов и попытался исправить свои настройки, но у меня все равно не получается заставить их работать.
Вот мой код:
int buttonPin = 18;
int ledPin1 = 11;
int ledPin2 = 9;
int ledPin3 = 5;
int value = 0;
void setup() {
//declare inputs and outputs
pinMode(buttonPin,INPUT_PULLUP);
pinMode(ledPin1,OUTPUT);
pinMode(ledPin2,OUTPUT);
pinMode(ledPin3,OUTPUT);
//create interrupt for button
attachInterrupt(digitalPinToInterrupt(5),count,CHANGE);
Serial.begin(9600);
}
void loop(){
if(value == 0){ digitalWrite(ledPin1,HIGH);}
else{ digitalWrite(ledPin1,LOW); }
if(value == 1){ digitalWrite(ledPin2,HIGH);}
else{ digitalWrite(ledPin2,LOW); }
if(value == 2){ digitalWrite(ledPin3,HIGH);}
else{ digitalWrite(ledPin3,LOW); }
delay(500);
Serial.print(digitalRead(buttonPin));
}
//count occurs when button is pressed
void count(){
//incremement a counter
value++;
//reset counter from 3 to 0
if(value >= 2){ value = 0; }
}
Это довольно простой набросок. Я бы приложил изображение моей текущей настройки, но не думаю, что это нужно. Кнопка действительно работает, так как я отлаживаю с помощью serial.print().
Если не ясно, цель скетча — изменить светодиод, загорающийся при нажатии кнопки. В настоящее время значение переменной застряло на 0.
@Howard P, 👍0
1 ответ
Лучший ответ:
//create interrupt for button attachInterrupt(digitalPinToInterrupt(5),count,CHANGE);
Код не соответствует комментарию.
attachInterrupt(digitalPinToInterrupt(buttonPin),count,CHANGE);
- Как мне подключить 5 кнопок к ардуино, чтобы я мог использовать наименьшее количество входов, все кнопки подключены к земле
- Rasberry Pi, управляющий Arduino - считывает "призрачный" вход - не завершает логический цикл
- Состояние ввода остается HIGH, когда функция, вызываемая с помощью ввода, также использует тот же ввод для вызова другой функции
- Невозможно сделать действительно основную работу скетча
- Как переключить светодиод при нажатии кнопки?
- Определение того, была ли нажата и отпущена кнопка
- Нажать клавишу Windows, используя «keyboard.press();»
- Чтение из Serial