Codice per lettura sensori con delay()

Ciao a tutti, primo mio post qui (ok, secondo, mi sono presentato :)) e come prima cosa voglio farvi una domanda stupida, perchè sono sicuro un motivo ci sia, ma non riesco a capirlo.

parto da lontano. molti sensori hanno bisogno di tempi di attesa per funzionare correttamente. Ad esempio, un tsl2561 (luce), ma come questi altri 1000.

prendo allora il codice scritto da gente che "ne sa". Quelli di adafruit https://github.com/adafruit/TSL2561-Arduino-Library/blob/master/TSL2561.cpp

e che ci trovo? ci trovo un delay() in attesa della lettura.

Domanda: ma è giusto? mi pare strano quelli di adafruit usino un arduino solo per leggere un sensore, quindi qual è il motivo di scrivere il codice cosi?

vi faccio un altro esempio, bme680 quando legge la qualità del gas ha un certo tempo di attesa. allora cerco una libreria, e ne trovo una che pare anche scritta decentemente https://github.com/SV-Zanshin/BME680/blob/master/src/Zanshin_BME680.cpp

e che ci trovo? qui c'è un while che controlla la lettura di un registro. Immagino anche questo mi blocchi qualsiasi altra attività del mio loop()

Quindi ecco, mi piacerebbe mi aiutaste a capire il motivo di questo disegno..

grazie a tutti ciao

pattagghiu:

ci trovo un delay() in attesa della lettura.

qui c’è un while che controlla la lettura di un registro. Immagino anche questo mi blocchi qualsiasi altra attività del mio loop()

Ipotizzo che il motivo sia la semplicità di utilizzo della libreria da parte dell’utente medio/principiante… Scrivere codice non bloccante richiede delle assunzioni sulla struttura del software che potrebbero non essere facilmente comprensibili, anche perché l’utente dovrebbe poi a sua volta scrivere codice non bloccante per permettere alla libreria di funzionare.