Iniziano i problemi... con Arduino.

Sep 02, 2019 26 Replies

Su un microcontrollore comunque non hai grandi problemi di tempistiche: and ava anche bene campionare ogni millisecondo o addirittura fare un loop stre

n conseguente indeterminatezza dei tempi.

a... Se invece configuri un interrupt che reagisce in base al cambio del li

nteressante!

marimbarza

Ahhh... capito (devo dire che si confermava il mio sospetto). Io con arduino preferisco sempre tenere i tempi con millis() e poi far scattare opportuni triggers. E'

stesso che se mi serve misurare un tempo in arduino con un interrupt sto usando l'hardware sbagliato (limite mio, sottolineo).

Grazie per la risposta!

- Thanks for introducing me to minimalims. - It's the least I could do.

Il 02/09/2019 19:20, Claudio_F ha scritto:

Il 04/09/19 18:43, Drizzt do'Urden ha scritto:

Se contestualizzi anche cosa non e` chiaro...

Il 02/09/2019 19:20, Claudio_F ha scritto:

almeno questo l'ho capito.

per dire, questa riga significa che mette il valore LOW in tendachiusa()?

ho cercato le spiegazioni di bool e di return ma non le ho comprese quindi non capisco queste righe.

//--------------------------------------------------------------------

Queste righe poi sono un mistero.

Saluti da Drizzt. www.agidone.altervista.org http://www.tappezzeriagraziella.com/ MAI PIU' OPEL IN VITA MIA!!!!

Il 04/09/19 21:37, Drizzt do'Urden ha scritto:

const per dire che e` una costante (il suo valore non cambia mai), byte perche` per rappresentare valori inferiori a 256 e` sufficiente un solo byte (mentre un int su Arduino occupa due byte di memoria).

Qui ci sono due concetti assieme. Il primo e` quello di funzione richiamata per farsi restituire un valore (il valore viene restituito con 'return'). Il secondo e` quello di espressione boleana, in pratica si verifica se la lettura del finecorsa e` LOW e in quel caso l'espressione vale 1 (true) altrimenti vale 0 (false), questo e` il valore che viene ritornato. In pratica e` la forma contratta di:

bool tendaChiusa() { if (digitalRead(finecorsa) == LOW) { return true; } else { return false; } }

E' la stessa logica che hai postato qualche messaggio indietro, solo realizzata tramite chiamate a singole funzioni. In particolare le chiamate a 'tendaChiusa' e 'setVento' restituiscono un valore che viene valutato nelle condizioni, mentre 'fermaChiusura' e 'avviachiusura' sono solo procedure esecutive (si definiscono di tipo void per indicare che non ritornano niente).

Il 04/09/2019 22:03, Claudio_F ha scritto:

Grazie, sei gentilissimo, me la devo studiare per capirla e fare qualche prova, con la pratica si capisce meglio :-)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required