Go Down

Topic: Problema sketch monitoraggio contatore Enel e fotovoltaico (Read 10 times) previous topic - next topic

ankamacha

grazie lesto,  l' interrupt viene gestito solo sui pin 2-3 digitali?

la fotoresistenza dovrei collegarla su uno di questi 2?

vado ad usare poi CHANGE ? l'interrupt viene eseguito quando avviene un cambiamento di stato sul pin

sto cercando di documentarmi per provare a mettere giù il codice nel modo migliore possibile

grazie per la disponibilità

lesto

l'interrupt change, modificando i registri a basso livello o con librerie esterne, lo puoi usare su qualsiasi pin.

Io ti consiglio di usare però la funzione attachInterrupt() che come hai visto ti obbliga all'uso dei pin 2 e/o 3, però la userei sul RAISNG o sul FALLING  per il motivo che se la usi sul CHANGE, rilevi sia accensione che spegnimeto, cosa inutile.
con il RISING, conteresti le accensioni del led (ok), però è probabile che ti ritrovi l'effetto "rimbalzo"; nel loop() lo hai aggirato con il delay, ma con gli interrupt non puoi. Però puoi usare la millis(), che però è "congelata", overo all'interno dell'interrupt NON cambia valore.

Quindi all'interrupt prendi il valore di una variabile ad esempio old_millis, e la confronti con il valore della millis(); se la differenza è > 10, allora incrementi una variabile (di tipo "volatile byte", il volatile è perchè è usata sia dal loop che dall'interrupt) di uno, e alla fine assegni ad old_millis il valore di millis attuale, in modo da avere un "antirimbalzo" di 10 ms

nel loop leggi il valore della variabile volatile e la assegni ad una variabile temporanea, e azzeri la volatile.
Ora nella temporanea hai il numero di lampeggi (da 0 a 255), e salvi il valore su SD e/o su database come hai sempre fatto.

kiss
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie


lesto

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

pablos

Ahhahah non lo conoscevo questo acronimo usato nell'informatica che sta per Keep It Simple, Stupid, ossia "rimani sul semplice, stupido"
allora kiss kiss a tutti :)
no comment

Go Up