Utente:Galessandroni/Utilizzo degli interrupt con Arduino

Da Wikiversità, l'apprendimento libero.

Un interrupt è un segnale inviato alla macchina, il quale indica la necessità di comunicare o fare particolari azioni da parte di una periferica. Questo segnale consente l'interruzione di ogni altro processo. Gli interrupt, stanno alla base della cosiddetta programmazione a eventi.

Mentre un programma, di norma, segue un percorso prefissato, nei programmi scritti utilizzando la tecnica a eventi il flusso del programma è largamente determinato dal verificarsi di eventi esterni. Gli interrupt sono funzionali alla macchina per capire se si è verificato o meno un evento.

Introduzione[modifica]

Nella programmazione ordinaria, Arduino esegue i suoi comandi principali all'interno di un ciclo (detto appunto loop) che può ripetersi senza fine, o - che è lo stesso - fino allo spegnimento della macchina o alla pressione del tasto di reset. Gli interrupt stravolgono questo paradigma, introducendo eventi che - se generati - vengono eseguiti indipendentemente da cosa sta svolgendo il programma.

Queste operazioni, si rivelano strategiche quando si devono controllare macchine di cui si vuole interrompere il normale funzionamento per svariate ragioni:

  • motivi legati alla sicurezza delle persone e delle cose;
  • eventi non ordinari, come il ritrarre le tende se c'è vento, anche se si stavano facendo altre azioni;
  • gestire un semaforo pedonale a chiamata, senza attendere il termine di un conteggio o complicare inutilmente il codice.

Gli esempi, naturalmente, potrebbero continuare.

Nella pratica[modifica]

Nella programmazione pratica, le cose da sapere - limitatamente ad Arduino