ciao, ho riscontrato un problema con la funzione pulseIn che non riesco a risolvere. quando avvio il programma la funzione non va come dovrebbe, e mi ritarda il programma di circa un secondo come se fosse un delay. qualcuno sa spiegarmi il motivo?
il programma è banale, do semplicemente un uscita alta per un certo tempo, e la pulsein dovrebbe restituirmi il tempo in questo caso 100ms. sul serial read, mi restituisce invece 0 e me lo scrive ogni secondo circa, invece dovrebbe scrivermelo ogni circ 100ms.
il programma è questo:
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
anche se non cambio il timeout, con questo programma non dovrebbe restituitmi sul serial.read la durata dell' impulso in questo caso 100ms quindi 100000us?
e mi ritarda il programma di circa un secondo come se fosse un delay. qualcuno sa spiegarmi il motivo?
è fisiologico; funziona cosí.
do semplicemente un uscita alta per un certo tempo, e la pulsein dovrebbe restituirmi il tempo in questo caso 100ms.
Vuoi misurare con il pin 3 collegato al pin2 di quanto lungo é l' impulso creato col delay?
Non puó funzionare perché la misura del impulso lo fai partire dopo che hai creato l' impulso.
ho capito grazie ad entrambi. ma quindi come dovrei fare? se metto il delay alla fine del programma e quindi dopo la istruzione pulseIn non è sbagliato lo stesso?
Ieri mi andava poi ho riaperto il programma dopo una decina di minuti e non mi andava più, segnandomi sempre 0 sul uscita seriale e dandomi i problemi di cui stavamo discutendo prima, ovvero che il pulsein mi funziona diciamo come un delay da 1 secondo. le uscite sull arduino non sono bruciate e i programmi senza il pulseIn vanno. com' è possibile che fino ad un certo punto questo programma è andato e poi basta?