Grazie e complimenti per la chiarissima ed esaustiva spiegazione.
@carloalbertobirocco6264
5 жыл бұрын
Finalmente la spiegazione che cercavo .... Paolo, anche questa volta hai fatto chiarezza su un argomento non scontato e mi hai dato un grande aiuto. Grazie infinite!
@zeppelinmaker
5 жыл бұрын
Grazie Carlo
@alfa-psi
5 жыл бұрын
Aggiungo una nota per "volatile" volatile serve a dire al compilatore che la variabile potrebbe essere modificata improvvisamente da qualcosa/qualcuno al di fuori del normale flusso logico di esecuzione del programma, in questo caso nella routine di interrupt, e che per tanto deve astenersi dalle solite ottimizzazioni alle quali alle volte ricorre, come per esempio memorizzare temporanemamente la variabile in un registro del microcontroller per velocizzare certe operazioni o creare codice piu' compatto. Questo perche' se la variabile cambia, lui potrebbe non accorgersene a lungo perche' sta usando la copia all'interno del registro, quando invece la variabile e' gia' cambiata. Ancora peggio potrebbe sovrascrivere la variabile con il contenuto del registro che ormai non e' piu' allineato al valore reale della variabile. volatile insoma disabilita tutte le varie ottimizzazioni che il compilatore a volte implementa quando e' sicuro di avere il totale controllo della sequenza di esecuzione del codice. In tal modo e' costretto a leggere dalla RAM la variabile ogni volta che c'e' un riferimento ad essa, ma almeno non combina pasticci.
@zeppelinmaker
5 жыл бұрын
Ottimo! Grazie per questa preziosissima nota!
@lucagraziano8091
2 жыл бұрын
Grazie utilissimo, spiegato finalmente in modo chiaro
@paologrisanti7865
6 жыл бұрын
Ciao Paolo. Per certi argomenti poco 'appariscenti', come questo, non ne capisco subito la portata. Ma ciò è a causa della mia ignoranza in materia di programmazione e di microcontrollori. Comunque ne ho sentito parlare molto e ora che hai spiegato il significato ho capito cosa sono. Usarle è un altro paio di maniche. Metto anche questo tool nella 'cassetta degli attrezzi'. Grazie!
@zeppelinmaker
6 жыл бұрын
L'importante è "esporsi" a tutti gli argomenti. Quando ti servirà... lo saprai!
@mauropaganelli8465
4 жыл бұрын
Ciao Paolo, ti seguo da poco e grazie alle tue videolezioni sono passato dagli ST7 ad Arduino. Ora,dovendo memorizzare un timer e volendo usare millis come base dei tempi mi chiedevo se Arduino ha la possibilità di collegare millis ad un interrupt software,grazie.
@GiuseppeFerraro-z7giuseppe7z
6 жыл бұрын
Complimenti ottima spiegazione ed esempio
@zeppelinmaker
6 жыл бұрын
Grazie!
@1Robbie75
5 жыл бұрын
Bravo. Chiaro e preciso. Complimenti.
@zeppelinmaker
5 жыл бұрын
Grazie Roberto
@Ale-ff6ob
4 жыл бұрын
ottimo spunto Paolo !! grazie ... procedo piano piano anche con Arduino
@Alberto-sk7zd
6 жыл бұрын
Questo video è molto utile, se avessi saputo degli interrupt al tempo.. Grazie Paolo... Non è banale, sopratutto se si ha un circuito in cui devi accendere il dispositivo da remoto e in seguito controllare lo stato di esso.. (progettini di domotica). non sottovalutate questo
@zeppelinmaker
6 жыл бұрын
Grazie! come vedi gli argomenti sono parecchi... ci sarebbe anche lo sleep della scheda...
@davidegros
5 жыл бұрын
Complimenti per la chiarezza
@zeppelinmaker
5 жыл бұрын
grazie!
@marcocoruzzolo6397
4 жыл бұрын
Buongiorno paolo, volevo chiederle una cosa, in questo caso dobbiamo configurare il pulsante con la resistenza interna di arduino?
@carloippoliti319
2 жыл бұрын
Grazie Paolo chiarissimo👍
@Thebasicmaker
3 жыл бұрын
Ciao! Funziona anche per gli ingressi analogici?
@tommasomagliocchetti3026
Жыл бұрын
se mi si ''attiva'' l'interrupt cosa succede al resto dei comandi di arduino? rimangono come stavano prima dellinterrupt? ad esempio...se ho un relè eccitato quel relè durante lo svolgimento dell'interrupt cosa fa ?
@lucagraziano8091
2 жыл бұрын
Ma hai un font particolare nell'ide ?
@DarioCostanzo-vr9os
Жыл бұрын
Salve, provavo a testare il funzionamento ma non riesco. Serve installare una libreria specifica? Comunque vorrei parlare di qualcosa non riesco a fare, in pratica sto creando una suoneria con il buzzer, una cosa semplice, suona ogni secondo per segnalare un tempo che è possibile visualizzare nel seriale, solo che ho provato in tutti i modi, mi creda, ma non c'è verso di fermarlo intervenendo via software, sono arrivato a guardare questa pagina, a parte per fare una nuova esperienza in più ma anche per per tentare in qualche modo di intervenire proprio fisicamente nell'hardware, dato che da software praticamente, almeno a me, sembra impossibile intervenire per dare il semplice comando di interruzione dell'IF, o WHILE. E' scontato che debbano funzionare così ma non tanto per le IF, almeno a parere mio, perché non essendo un "durante" (while) con una semplice logica morale puoi intendere che forse una strada potrebbe esistere. Beh spero mi potrà aiutare, Lei mi sembra la mia ultima spiaggia. Sono uno studente cerca di imparare quindi capisce bene ne ho bisogno, ogni aiuto sarà gradito, dico in più solo uso un Arduino Uno e nella prova interrupt ho usato un altro pin per il LED (non il 13), grazie in anticipo.
@ocramingaz9200
4 жыл бұрын
vorrei realizzare un dispositivo per misurare il tempo di apertura e chiusura di un interruttore di media tensione , i tempi tipici vanno dai 50 ai 70 ms, sembrerebbe che le interrupt facciano al caso mio
@andreamorichetti5861
5 жыл бұрын
ciao. gli interrupt possono quindi interrompere un'istruzione delay(..)? dove riprenderebbe l'esecuzione del codice dopo l'esecuzione della funzione associata all'interrupt? grazie e complimenti!!
@zeppelinmaker
5 жыл бұрын
Si, ma usare lunghe delay non è mai il massimo... (una delay è implementata con un ciclo vuoto!)
@stefanoderosa2375
4 жыл бұрын
Questa è una bella chicca... Vorrei fare una domanda stupida... Ma un prodotto qualsiasi può essere venduto con l'elettronica di Arduino dentro?? Non intendo fare nuove schede ma proprio prendere un Arduino e montarlo dentro qualcosa... Potrebbe essere venduto?
@zeppelinmaker
4 жыл бұрын
basta aprire qualche stampante 3D... in teoria si.
@previdimaurizio6457
5 жыл бұрын
Bel Progetto, io vorrei realizzare un misuratore di fase. Dato un elemento piezo TX comandato da una porta digitale di Arduino ed un elemento piezo RX collegato ad una porta analogica vorrei vedere il tempo di ritardo e di anticipo tra TX ed RX. Si puo' trovare un tipo di Arduino che abbia maggiore sensibilita' sulle porte analogiche? Adesso e' di 4.8 mV su arduino uno. Per avere un'onda quadra piu' pulita si puo cambiare il registro OCR?
@zeppelinmaker
5 жыл бұрын
Ciao. Se devi realizzare cose più spinte forse serve un ADC esterno. Eventualmente per fare "misure" conviene passare a DSP più specifici per l'analisi e elaborazione dei segnali...
@previdimaurizio6457
5 жыл бұрын
@@zeppelinmaker Grazie paolo, ti mando il link del tutto, volevo semplificare con arduino od altro l'oscillatore, amplificatore,comparatore CD4046, integrare il segnale 0-10 Volt ed elaborarlo per ottenere dall'area dei picchi la concentrazione.....questo in un secondo tempo. Cio che vedi nel video e' un sistema di analisi che usa un detector ad ultrasuoni che all'uscita della colonna di separazione dei componenti legge lo sfasamento tra TX ed RX a seconda del gas che vi passa attraverso, kzitem.info/news/bejne/to6VrGl9haxnpmU
@angelociccotosto
4 жыл бұрын
Ciao Paolo, ho un problema, devo accendere 5 led in sequenza, tenendo premuto un pulsante. al rilascio di questo pulsante deve rimanere acceso il led, quindi capiterà in posizione casuale, come posso fare ? il ciclo per la sequenza l'ho fatto, non riesco a fermare la sequenza al rilascio del pulsante. Spero che tu riesca ad aiutarmi o qualcun altro .
@micheledestefano
3 жыл бұрын
Ciao Ho letto la tua richiesta solo due giorni fa, mi ha “stuzzicato”, mi sono cimentato e credo di avere risolto. Tu hai risolto?
@angelociccotosto
3 жыл бұрын
@@micheledestefano ciao,grazie per esserti cimentato in questo problema,questo "progetto" mi serviva per scuola all'esame di stato,da presentare assieme ad un programma per PLC ,alla fine ho lasciato perdere per via del problema riscontrato e del poco tempo rimasto.
@micheledestefano
3 жыл бұрын
@@angelociccotosto Peccato non aver letto prima la tua richiesta...spero comunque che l’esame sia andato ugualmente ok👋
@angelociccotosto
3 жыл бұрын
@@micheledestefano tranquillo,grazie lo stesso,si si,esame quasi perfetto 95/100 🤣
@pietromercuri1490
4 жыл бұрын
Buongiorno Paolo, sono un neofita ed avevo intenzione di realizzare un conta litri utilizzando un flussimetro. Oggi ho provato a collegare il flussimetro al piedino due dia arduino uno, con una resistenza di puldown da 10k. Volevo innanzitutto testarlo per vedere se e come recepisce il segnale in ingresso, ho scritto questo breve Sketch per contare gli impulsi, ma a seconda di come si ferma la ventolina, il contyatore continua a contare anche dopo essersi fermata, vorrei capire se è un problema di sensore, oppure se ho capito male come si utilizza //Gestione di un flussostato int ingresso = 2; //Piedino di ingresso del flussostato volatile int count; //Variabile di conteggio void setup() { pinMode (ingresso, INPUT); //Imposta piedino 2 in ingresso attachInterrupt (0, impulso, FALLING); //Configura interrupt 0 pin 2 , da alto a basso Serial.begin (9600); //Velocità seriale } void loop() { delay (100); //Pausa di 1 secondo Serial.println (count); //Scrive a schermo la variabile flusso//count scrive il numero degli impulsi } void impulso() { count ++; //Incrementa count di 1 } grazie mille
@pietromercuri1490
4 жыл бұрын
se sposto manualmente la ventolina, il conteggio si ferma, se continuo a spostarla, riparte il conteggio, credo che il problema si verifichi quando il sensore magnetico rimane nella posizione alto
@pietromercuri1490
4 жыл бұрын
RISOLTO! Guardando un tuo video sugli encoder rotanti, ho capito che lavorano mettendo a massa il segnale, quindi ho messo in pullup l'ingresso e lavorato al contrario. Complimenti perché hai una capacità incredibile di spiegare in modo semplice anche concetti complessi. Ora ho acquistato il tuo libro, mi sono sempre dilettato con la programmazione in VB, ma con arduino sto scoprendo un mondo fantastico.
@lorenrus
5 жыл бұрын
Ciao e complimenti per i video. Io sto usando Arduino Mega e ho collegato due pulsanti in due pin dedicati per l'interrupt. i pin sono il 18, a cui ho collegato il pulsante uno, ed il 19, a cui ho collegato il pulsante due. Quello che mi aspetto è: - il programma è in free running , poi premo il pulsante uno è parte la sua ISR_1 poi premendo il pulsante due parte la ISR_2, quindi funzionando in mutua esclusione. Giusto ? Grazie
@zeppelinmaker
5 жыл бұрын
Ciao. Credo di si... ti funziona?
@lorenrus
5 жыл бұрын
@@zeppelinmaker Sisi funziona perfettamente. Avrei un'ulteriore domanda. Solo che non riguarda il video in questione. Posso farla qui o cerco un video inerente e commento li ? Grazie
@zeppelinmaker
5 жыл бұрын
@@lorenrus mandami una mail a paolo @ zeppelinmaker . it
@ocramingaz9200
4 жыл бұрын
A cosa è dovuto il fatto che il led non è rimasto acceso alla seconda pressione del pulsante?
@Elettronica-xt7nm
5 жыл бұрын
Ottimo video . Ma una domanda mi sorge spontanea . Possibile utilizzare un MUX I2C per aumentare gli ingressi degli interrupt ?
@zeppelinmaker
5 жыл бұрын
Ciao, si. Ci sono dei MUX specifici per i2c.
@zeppelinmaker
5 жыл бұрын
Scusa, intendevi un'altra cosa... si si può fare esistono chip che aumentano per esempio gli ingressi e che incorporano un loro sistema di interrupt.
@Elettronica-xt7nm
5 жыл бұрын
@@zeppelinmaker Si infatti volevo utilizzare l'integrato MCP23017 I2C è utilizzare i 16 GPIO come ingressi . È possibile fare ciò ?
@zeppelinmaker
5 жыл бұрын
Ho guardato il datasheet. Si. lo colleghi via i2c ad arduino.
@Elettronica-xt7nm
5 жыл бұрын
@@zeppelinmaker Si questo mux sono riuscito a farlo funzionare in uscita senza problemi con NodeMcu per la gestione dei relè , ma non riesco a utilizzare interrupt per la gestione di pulsanti fisici da fare azionare le uscite .
@gianlucacampus7455
5 жыл бұрын
Ciao, complimenti per i video che pubblichi, ottimi. volevo chiederti come posso usare vari pulsanti touch per accendere un led. ciao grazie
@zeppelinmaker
5 жыл бұрын
Ciao... in che senso pulsanti touch?
@gianlucacampus7455
5 жыл бұрын
@@zeppelinmakerCiao buongiorno, volevo collegare dei tasti touch al relè 5 v per poi accendere un led, io ho provato mettendo anche del diodi, ma vanno in conflitto. Grazie.
@gianlucacampus7455
5 жыл бұрын
TASTI TOUCH TTP223
@zeppelinmaker
5 жыл бұрын
Ciao. ma come li colleghi? tramite arduino o direttamente?
@gianlucacampus7455
5 жыл бұрын
@@zeppelinmaker direttamente... Se poi non è possibile metterei un Arduino mega. Mille grazie Paolo
@fabioprevitali8050
4 жыл бұрын
ma rispvegliare arduino con un comando seriale è possibile? grazie
@zeppelinmaker
4 жыл бұрын
si! è tra le possibilità previste. Consulta le reference ufficiali. C'è anche un esempio.
@samuelebaiano6505
5 жыл бұрын
Posso usare glibinterrupt per rendere più veloce un programma per fare un "parcheggiometro"? In pratica il problema si pone quando devo dire che, sotto certe distanze, l'altoparlante deve emettere degli impulsi sonori, la distanza di questi l'ho definita con dei delay, naturalmente più è vicino l'oggetto e più velocemente i bip avvengono, ma i delay che determinano il periodo di pausa tra un bip e l'altro mi rallentano tutto il programma, rendendolo meno reattivo, come faccio?
@samuelebaiano6505
5 жыл бұрын
Considera che ho definito 3 lunghezze di pausa dei bip sotto 3 distanze differenti, ma finchè il programma non avrà eseguito i delay, non controllerà di nuovo se la distanza rilevata è diversa, quindi se mi avvicino non rileverà nulla, fino alla fine dei delay, è assai meno reattivo di quanto dovrebbe, mi chiedevo se con gli interrupt potevo risolvere e come
@zeppelinmaker
5 жыл бұрын
Ciao. Visto che il problema sono i delay, devi eliminarli usando pause non bloccanti tipo: kzitem.info/news/bejne/lJ1_3JyoaoNjnX4 Con le interrupt non credo che tu risolva il problema
@samuelebaiano6505
5 жыл бұрын
paolo aliverti grazie mille per l'aiuto
@albertomora4462
5 жыл бұрын
Ciao Paolo, faccio in un altro commento una seconda domanda: come mai il pin 3 non è definito come INPUT?
@zeppelinmaker
5 жыл бұрын
perché mi son scordato!!! Grazie per la nota...
@riccardomarino2927
5 жыл бұрын
Ciao Paolo, stavo cercando di creare una serra, e per aprire una porta, volevo usare una funzione interrupt (gestendo un servo motore) È ok?
@zeppelinmaker
5 жыл бұрын
Ciao. Perchè complicare con delle Interrupt? non basta leggere semplicemente il pulsante/sensore?
@riccardomarino2927
5 жыл бұрын
@@zeppelinmaker perché il loop impiega viva 30 secondi per terminare e ricominciare
@zeppelinmaker
5 жыл бұрын
30 secondi? ma con dei delay? se è così, rivedrei l'approccio... usando macchine a stati e pause non bloccanti.
@riccardomarino2927
5 жыл бұрын
@@zeppelinmaker bella idea Paolo, grazie, come sempre sei il migliore
@Pinolissimo
5 жыл бұрын
Bel video, grazie.Avrei una domanda per favore, nel caso di un sensore ad ultrasuoni(hc-sr04) come fare per legare l'interrupt ad un determinato valore rilevato? per esempio bloccare subito i motori anche mentre sta eseguendo un ciclo che fa avanzare il robot in una direzione e poi appare un ostacolo che non c'era prima al controllo del sensore... spero di essere stato chiaro..
@zeppelinmaker
5 жыл бұрын
dovresti legare l'interrupt ad ogni lettura e poi decidere. Forse conviene studiare a tavolino il codice perché possa prevedere le emergenze e gestire lo stop
@Pinolissimo
5 жыл бұрын
@@zeppelinmaker Grazie mille per la tua risposta, in realtas' la cosa e' un pochino complessa.... parliamo di un progetto di un prototipo che sto sviluppando a 4 sensori.Posso inviarti una mail? sarebbe geniale una tua opinione da esperto in materia.Grazie in ogni caso (ho acquistato il tuo libro per un ringraziamento pratico al sostegno che dai on-line! :) )
@zeppelinmaker
5 жыл бұрын
Pino Allocca ok. grazie! trovi i contatti su zeppelinmaker.it
@nistorcosminn
4 жыл бұрын
pog
@alessiopigliapoco8595
4 жыл бұрын
pog
@nistorcosminn
4 жыл бұрын
@@alessiopigliapoco8595 pogU
@matteosantamarianova5628
4 жыл бұрын
@@nistorcosminn no pogU
@nistorcosminn
4 жыл бұрын
@@matteosantamarianova5628 pogChamp
@PaoloFraccaro
3 жыл бұрын
Ho copiato il tuo sketch ma mi da errore: test.ino: In function ‘void setup()’: test.ino: 4.42: error: ‘digitalPinToInterrupt’ was not declared in this scope Che dipenda dalla versione dell'IDE (vers. 1.8.15), dove potrebbero aver aggiornato qualcosa? Grazie in anticipo per la risposta.
@stefano.a
5 жыл бұрын
l’unico accorgimento da tenere con gli interrupt è l’aggiunta obbligatoria di un circuito antirimbalzo hardware se si ha a che fare con dei pulsanti o in generale degli interruttori meccanici
@zeppelinmaker
5 жыл бұрын
Grazie del commento! A presto!
@skandy63
5 жыл бұрын
Se è per un pulsante, può essere tranquillamente implementato via software controllando che il pulsante sia premuto per un tempo consecutivo di 20msec. Così facevamo in Olivetti per le tastiere delle macchine per scrivere serie ET
@albertomora4462
5 жыл бұрын
Ciao Paolo, mi è capitato di vedere alcuni sketch (vedi www.theorycircuit.com/water-flow-sensor-yf-s201-arduino-interface/) con interrupt in cui veniva dichiarato nel setup la funzione sei() o cli() o le analoghe noInterrupts() & interrupts(). A cosa servono? Cone mai nel tuo esempio non le usavi?
@zeppelinmaker
5 жыл бұрын
Con quelle funzioni puoi disabilitare o abilitare temporaneamente gli interrupt. Non le usate perché non mi servivano... magari faccio un video di approfondimento
@albertomora4462
5 жыл бұрын
paolo aliverti sarebbe fantastico! Grazie e buona giornata
@skandy63
5 жыл бұрын
Nel circuito che disegni metti il PIN (2/3) a +5 tramite interruttore, anziché a massa e la resistenza è a massa anziché a +5, che potrebbe funzionare (anche se non metterei mai un PIN direttamente a +) se l'interrupt fosse a Rising. Avrei specificato che si trattava l'interrupt hardware visto che come ben sai ce ne sono altri. Ma perché lo declini al femminile quando per tutto il mondo (lo so per gli anglosassoni è neutro) è maschile: gli interrupt 🤗
Пікірлер: 90