Sommario:
- Passaggio 1: gestore delle interruzioni
- Passaggio 2: imposta l'intervallo di tempo periodico
- Passaggio 3: inizializzazione dell'interruzione
- Passaggio 4: dove aggiungere il codice
Video: Arduino - Interruzione periodica: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Questo Instructable riguarda l'utilizzo di un interrupt periodico per la temporizzazione nei programmi Arduino. Questo è un passo per un programmatore Arduino in erba che sa che Arduino può fare di più, ma non sa come farlo accadere.
Se c'è un problema di prestazioni, presumo che tu stia usando una o più funzioni delay(). Il trucco è sbarazzarsi della/e funzione/i delay() e sostituire un interrupt. La funzione delay() forza Arduino a non fare nulla mentre attende il completamento di delay(). L'uso di un'interruzione consente al programma di fare altre cose in attesa della fine del ritardo. Di solito c'è un'enorme quantità di tempi morti inutilizzati che potrebbero essere usati per altre cose quando si usa delay(). L'utilizzo di un interrupt risolve questo problema.
Passaggio 1: gestore delle interruzioni
1. Aggiungi il gestore di interrupt al tuo programma. Basta copiare e incollare da qualche parte sopra setup();
const unsigned long TIMER0_COUNT = 500; // Intervallo timer di 500 msec
// TIMER0 gestore di interrupt volatile bool time = false; ISR(TIMER0_COMPA_vect) { conteggio lungo senza segno statico = 0; if (++count > TIMER0_COUNT) { conteggio = 0; tempo = vero; // il tempo è impostato su vero ogni TIMER0_COUNT ms } // (il tempo deve essere cancellato nella routine principale) }
Passaggio 2: imposta l'intervallo di tempo periodico
2. Impostare l'intervallo di tempo. Questa routine si collega all'interrupt TIMER0, che è impostato per attivarsi ogni ~1 msec.
Il tuo "intervallo" è il numero di interruzioni TIMER0 da elaborare. Ogni intervallo è di ~ 1 msec, quindi stai davvero impostando il numero di interruzioni TIMER0 da contare prima di attivare l'intervallo. IOW, imposta la variabile TIMER0_COUNT sul numero di millisecondi che desideri attendere. Ad esempio, usa 500 per mezzo secondo. Usa 3000 per 3 secondi.
Passaggio 3: inizializzazione dell'interruzione
3. Aggiungi il codice "TIMER0 initialization" al tuo metodo setup(). Ancora una volta, copia e incolla in setup().
// *** Inizializzazione TIMER0 ***
cli(); // disattiva tutti gli interrupt TIMSK0 = 0; // disattiva il timer0 per un jitter inferiore OCR0A = 0xBB; // conteggio arbitrario degli interrupt TIMSK0 |= _BV(OCIE0A); // piggy back su interrupt sei(); // riattiva gli interrupt
Passaggio 4: dove aggiungere il codice
4. Aggiungi il codice "time check" al tuo metodo loop(). Copia e incolla in loop().
se (tempo) {
tempo = falso; // fai qualcosa qui }
Il "tempo = falso;" la linea è importante. Senza questa riga le righe "fai qualcosa qui" verrebbero eseguite ogni volta che il programma esegue loop().
Naturalmente, sostituisci le tue attività nella riga "fai qualcosa qui". Inizia stampando del testo o facendo lampeggiare il LED.
Hai finito!
Consigliato:
Mangiatoia per pesci Arduino Uno in 6 passaggi economici e facili!: 6 passaggi
Arduino Uno Fish Feeder in 6 passaggi economici e facili!: Quindi potrebbe essere necessario un po' di retroscena per questo progetto. Le persone con i pesci da compagnia hanno probabilmente avuto il mio stesso problema: vacanze e dimenticanze. Dimenticavo costantemente di dare da mangiare ai miei pesci e mi affrettavo sempre a farlo prima che andasse a s
Levitazione acustica con Arduino Uno passo dopo passo (8 passaggi): 8 passaggi
Levitazione acustica con Arduino Uno Step-by Step (8 passaggi): trasduttori di suoni ad ultrasuoni L298N Alimentatore adattatore CC femmina con pin CC maschio Arduino UNOBreadboardCome funziona: Innanzitutto, carichi il codice su Arduino Uno (è un microcontrollore dotato di e porte analogiche per convertire codice (C++)
Sistema di allarme antincendio con Arduino [in pochi semplici passaggi]: 3 passaggi
Sistema di allarme antincendio con Arduino [in pochi semplici passaggi]: stai cercando di realizzare un progetto semplice e interessante con Arduino che allo stesso tempo possa essere davvero utile e potenzialmente salvavita? Se sì, sei arrivato nel posto giusto per imparare qualcosa di nuovo e innovativo. In questo post andiamo
Tavola periodica interattiva a LED: 12 passaggi (con immagini)
Tavola periodica interattiva a LED: io e la mia ragazza abbiamo una collezione di elementi - campioni dei pezzi unici di materia che compongono ogni cosa nell'universo! Per una collezione così interessante ho deciso di costruire una teca che mostrasse i campioni in tutto il loro mondo costruito
Arduino più economico -- Arduino più piccolo -- Arduino Pro Mini -- Programmazione -- Arduino Neno: 6 passaggi (con immagini)
Arduino più economico || Arduino più piccolo || Arduino Pro Mini || Programmazione || Arduino Neno:……………………………. ISCRIVITI al mio canale YouTube per altri video……. .Questo progetto riguarda come interfacciare un arduino più piccolo ed economico di sempre. L'arduino più piccolo ed economico è arduino pro mini. È simile ad arduino