Taula de continguts:
- Pas 1: Gestió de la interrupció
- Pas 2: definiu l'interval de temps periòdic
- Pas 3: inicialització de la interrupció
- Pas 4: On afegir el vostre codi
Vídeo: Arduino - Interrupció periòdica: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Aquest instructable tracta d’utilitzar una interrupció periòdica per a la sincronització dels programes Arduino. Aquest és un pas per a un incipient programador d'Arduino que sap que l'Arduino pot fer més, però que no sap com fer-ho possible.
Si hi ha un problema de rendiment, suposo que utilitzeu una o més funcions de delay (). El truc és desfer-se de les funcions delay () i substituir una interrupció. La funció delay () obliga Arduino a no fer res mentre s’espera que s’acabi el delay (). L’ús d’una interrupció permet al vostre programa fer altres coses mentre espereu el final del retard. Normalment hi ha una gran quantitat de temps mort no utilitzat que es pot utilitzar per a altres coses quan s’utilitza delay (). L’ús d’una interrupció resol aquest problema.
Pas 1: Gestió de la interrupció
1. Afegiu el controlador d'interrupcions al programa. Simplement copieu i enganxeu a algun lloc superior a setup ();
const unsigned long TIMER0_COUNT = 500; // Interval de temporitzador de 500 ms
// TIMER0 manipulador d’interrupcions volàtil bool time = fals; ISR (TIMER0_COMPA_vect) {recompte llarg estàtic sense signar = 0; if (++ recompte> TIMER0_COUNT) {recompte = 0; temps = cert; // l'hora s'estableix a true cada TIMER0_COUNT ms} // (el temps s'ha d'esborrar a la rutina principal)}
Pas 2: definiu l'interval de temps periòdic
2. Definiu l'interval de temps. Aquesta rutina s'acosta a la interrupció TIMER0, que s'estableix cada ~ 1 msec.
El vostre "interval" és el nombre d'interrupcions TIMER0 que s'ha de processar. Cada interval té aproximadament 1 ms, de manera que definiu quantes interrupcions de TIMER0 s'han de comptar abans d'activar l'interval. IOW, establiu la variable TIMER0_COUNT a la quantitat de mil·lisegons que vulgueu esperar. Per exemple, utilitzeu 500 durant la meitat del segon. Feu servir 3000 durant 3 segons.
Pas 3: inicialització de la interrupció
3. Afegiu el codi "inicialització TIMER0" al mètode setup (). Una vegada més, només cal que copieu i enganxeu a setup ().
// *** inicialització TIMER0 ***
cli (); // desactiva totes les interrupcions TIMSK0 = 0; // desactiva el temporitzador0 per a la jitter inferior OCR0A = 0xBB; // recompte d’interrupcions arbitràries TIMSK0 | = _BV (OCIE0A); // tornar a interrompre sei (); // torna a activar les interrupcions
Pas 4: On afegir el vostre codi
4. Afegiu el codi de "comprovació del temps" al mètode loop (). Copia i enganxa en bucle ().
si (hora) {
temps = fals; // fer alguna cosa aquí}
El "temps = fals;" la línia és important. Sense aquesta línia, les línies "fer alguna cosa aquí" s'executarien cada vegada que el programa executa loop ().
Per descomptat, substituïu les vostres pròpies activitats a la línia "Feu alguna cosa aquí". Comenceu imprimint text o intermitent el LED.
Estàs acabat!
Recomanat:
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): 6 passos
Arduino Halloween Edition: pantalla emergent de zombis (passos amb imatges): voleu espantar els vostres amics i fer soroll a Halloween? O simplement voleu fer una bona broma? Aquesta pantalla emergent de Zombies ho pot fer! En aquest instructiu us ensenyaré a fer zombis fàcilment amb Arduino. L'HC-SR0
Alimentador de peix Arduino Uno en 6 passos fàcils i econòmics: 6 passos
Alimentador de peixos Arduino Uno en 6 passos econòmics i senzills! Les persones amb peixos mascotes probablement tenien el mateix problema que jo: les vacances i l’oblit. Oblidava constantment d’alimentar els meus peixos i sempre em vaig esforçar per fer-ho abans que passés a s
Levitació acústica amb Arduino Uno pas a pas (8 passos): 8 passos
Levitació acústica amb Arduino Uno Step-by-Step (8 passos): transductors de so ultrasònics L298N Dc adaptador femella d'alimentació d'alimentació amb pin DC macho Arduino UNOBreadboard Com funciona: primer, pengeu codi a Arduino Uno (és un microcontrolador equipat amb i ports analògics per convertir codi (C ++)
Robot Mecanum Omni Wheels amb escut Arduino per motors passos GRBL: 4 passos
Robot Mecanum Omni Wheels amb motors passos GRBL Arduino Shield: Mecanum Robot: un projecte que volia construir des que el vaig veure al bloc de mecatrònica de Dejan: howtomechatronics.com Dejan realment va fer un bon treball abastant tots els aspectes del maquinari i la impressió 3D , electrònica, codi i una aplicació per a Android (MIT
Taula periòdica LED interactiva: 12 passos (amb imatges)
Taula periòdica LED interactiva: la meva xicota i jo tenim una col·lecció d’elements: mostres dels trossos de matèria únics que formen tot l’univers. Per a una col·lecció tan interessant, vaig decidir construir una vitrina que mostri les mostres en tota la seva construcció mundial