Salve, ho la necessità di acquistare dei sensori di prossimità impermeabili li ho trovati ma il fornitore mi chiede la modalità di output che voglio tra:
PWM
UART
Switching output KG
dato che devo sostituire i classici HC-SR4 credo che sia PWM qualcuno mi può dare la conferma.
Io avrei preso la UART così leggo il numero direttamente da una seriale. Le altre uscite probabilmente sono generate proprio dal valore che il micro a bordo conosce. Non vedo perché complicarsi la vita con 2 conversioni.
zoomx:
Io avrei preso la UART così leggo il numero direttamente da una seriale. Le altre uscite probabilmente sono generate proprio dal valore che il micro a bordo conosce. Non vedo perché complicarsi la vita con 2 conversioni.
Si, vero, ma comunque per la seriale devi acquisire i caratteri ricevuti, poi convertirli in numerico. Si fa prima con una map(analogRead())...
E infatti per scrupolo sono andato a vedere e manda 4 byte per lettura, niente di "intellegibile" a livello carattere:
Frame data Instructions Byte
Frame header Fixed to 0XFF 1 byte
Data_H High 8 bits of distance data 1 byte
Data_L Low 8 bits of distance data 1 byte
SUM Checksum of communication 1 byte
Per cui escluso pure UART (nulla è impossibile, ovviamente, ma KG è la cosa più semplice, a patto di avere una risoluzione massima di 1023 livelli) mi resta la curiosità del perché pgiagno consigli PWM, come lo interpreta da codice?
Se non ho male interpretato l'inglese del data sheet (il mio inglese non è "fluent") il dispositivo aspetta un impulso di comando T1 sul pin RX, a seguito del quale alza un segnale T2 sul pin TX, e lo tiene alto per un tempo proporzionale alla distanza (fino a un massimo di circa 35ms). Userei la funzione micros() per calcolare il tempo T2 e la formula S = T / 58 fornita dal data sheet. Non so se la precisione è sufficiente, ma mi sembra che il programma verrebbe semplice.
boh, io sarà che una mania, ma preferisco seriale, seriale sempre, anche di fronte all'evidenza (OPS, quello era negare....., scusatemi)
dicevo seriale, seriale sempre
per non saper ne leggere ne scrivere prendo il programma che ho fatto come esempio per quello che cercava di leggere messaggi MIDI, pochi giorni fa, lo accorcio a 4 byte, gli aggiungo un calcolo del checksum (scopiazzato anch'esso qui sul forum) al posto del terminatore
e quando ho checksum OK faccio
pgiagno:
Se non ho male interpretato l'inglese del data sheet (il mio inglese non è "fluent") il dispositivo aspetta un impulso di comando T1 sul pin RX, a seguito del quale alza un segnale T2 sul pin TX, e lo tiene alto per un tempo proporzionale alla distanza (fino a un massimo di circa 35ms).
Non ho approfondito questo aspetto, se così fosse allora convengo con standardoil e userei la versione seriale.
Ma ora sono questioni che deve vedersi l'OP, non è che ora noi possiamo metterci ad analizzare tutto il datasheet per suo conto...