Аппаратное прерывание - ArduBlock

Arduino платы поддерживающие аппаратное прерывание:

Arduino Pro Mini Pin 2 Pin 3        
Arduino Nano Pin 2 Pin 3        
Arduino Uno Pin 2 Pin 3        
Arduino Leonardo Pin 2 Pin 3 Pin 0 Pin 1 Pin 7  
Arduino Mega2560 Pin 2 Pin 3 Pin 21 Pin 20 Pin 19 Pin 18
ESP 8266 01 Pin 0          
ESP 8266 12 Pin 0 Pin 16        
ESP 32 Pin 2 Pin 12 Pin 13 Pin 15 Pin 27 Pin 32

- LOW вызывает прерывание, когда на порту LOW.
- CHANGE прерывание вызывается при смене значения на порту, с LOW на HIGH и наоборот.
- RISING прерывание вызывается только при смене значения на порту с LOW на HIGH.
- HIGH вызывает прерывание, когда на порту HIGH.
- FALLING прерывание вызывается только при смене значения на порту с HIGH на LOW.

Запрещается использовать блоки внутри функции аппаратного прерывания:

1. Не пытайтесь использовать блоки задержки.
2. Не пытайтесь производить вычисление чисел или переменных.
3. Не используйте вывод в Монитора порта.
4. Не пытайтесь читать данные с Монитора порта.




Мигающий светодиод на pin 13, 10 сек. включение и 1 сек. отключение.
При нажати на кнопку pin 2, резистором 2kOm подтянута к +5v, отключается светодиод.

void interrupt_2(){
   pinMode(13, OUTPUT);
   digitalWrite(13, 0);
}


void setup() {
  attachInterrupt(digitalPinToInterrupt(2),interrupt_2,LOW);
}

void loop() {
     pinMode(13, OUTPUT);
     digitalWrite(13, 1);
       delay(10000);
     pinMode(13, OUTPUT);
     digitalWrite(13, 0);
       delay(1000);

} 

Открыть пример: Online ArduBlock



Видеоурок:


74 846 просмотров