Vai al contenuto

La Funzione attachInterrupt() per Arduino


RyujiAndy

Messaggi raccomandati

Specifica un nome Interrupt Service Routine (ISR) per richiamare una funzione quando si verifica un interrupt.

per spiegarvi meglio questa funzione prendo come esemplio il classico circuito per accendere un led con un pulsante:

 

button.png.297dae6d39a934d3915963bf23e32662.pngcon il classico sketch:

 

const int buttonPin = 2;
const int ledPin =  13;
int buttonState = 0; 

void setup() {
 pinMode(ledPin, OUTPUT);      
 pinMode(buttonPin, INPUT);    
}

void loop(){
 buttonState = digitalRead(buttonPin);

 if (buttonState == HIGH) {    
   digitalWrite(ledPin, HIGH);  
 }
 else {
   digitalWrite(ledPin, LOW);
 }
}

Ora creiamo lo stesso risultato utilizzando la funzione attachInterrupt():

const int ledPin = 13;
int state = LOW;

void setup()
{
 pinMode(ledPin, OUTPUT);
 attachInterrupt(0, changestate, CHANGE);
}

void loop()
{
 digitalWrite(ledPin, state);
}

void changestate()
{
 state = !state;
}

 

 

La funzione attachInterrupt non fa altro che richiamare la funzione changestate quando avviene un cambiamento di stato sul pin 2, arduino uno o ethernet dispone di 2 pin dove si può appicare questa funzione invece su arduino 2 è possibile applicarla su qualunque pin, per semplificarvi il lavoro vi elenco quelli da me testati:

attachInterrupt(int, funzione, modo)

 

Board int=0 int=1 int=2 int=3 int=4 int=5 Uno/Ethernet pin 2 pin 3 x x x x Mega2560 pin 2 pin 3 pin 21 pin 20 pin 19 pin 18 Leonardo pin 3 pin 2 pin 0 pin 1 pin 7 x

 

Esistono 5 metodi mode per l'utilizzo diverso e sono:

 

 

HIGH: richiama la funzione quando il pin è allo stato HIGH

 

LOW: richiama la funzione quando lo stato del pin è LOW

 

CHANGE: richiama la funzione ogni volta che il pin cambia valore

 

RISING: richiama la funzione quando il pin passa dallo stato LOW allo stato HIGH

 

FALLING: richiama la funzione quando il pin passa dallo stato HIGH allo stato LOW.

 

Buona programmazione

 

Fonte: RyujiAndy's Blog

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...