Leggere segnale digitale: come fare?

11 Anni 10 Mesi fa - 11 Anni 10 Mesi fa #1 da speedfish
Leggere segnale digitale: come fare? è stato creato da speedfish
Buonasera; avrei esigenza di leggere un segnale digitale da un sensore (dht22) per costruire un controller per serra, guardando il datasheet la procedura per abilitare il sensore alla trasmissione e fin quì tutto ok, ma quando il pic deve ricevere la risposta, come faccio a sincronizzare il tutto? Mi spiego meglio, il dht22 ha 3pin: VCC, GND, Data... Data è di bidirezionale... fino a mandare un ipotetico pin del pic a livello alto per un certo tempo ci siamo, ma come faccio, dallo stesso pin a decodificare il segnale? come registro "quello che succede" in funzione del tempo? Tutto da gestire in polling controllando in funzione dei tempi del datasheet mi sembra una follia... spero di essere stato chiaro e grazie in anticipo!
Giuseppe
Ultima Modifica 11 Anni 10 Mesi fa da speedfish. Motivo: informazione incompleta

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • speedfish
  • Avatar di speedfish
  • New Member
  • New Member
Di più
11 Anni 10 Mesi fa #2 da borelg
Risposta da borelg al topic Re: Leggere segnale digitale: come fare?
Ciao.
Ho dato un'occhiata veloce e mi sembra di capire che utilizzi una codifica di questo tipo:
quando vuole trasmettere un bit porta prima il segnale basso e per 50us. Poi lo porta alto. Se lo tiene alto per 26-28us allora si tratta di uno "0". Se invece lo tiene alto per 70us si tratta di un "1".
Per gestire una cosa del genere puoi utilizzare l'Interrupt on change. E' un interrupt che viene generato nel caso in cui una porta di ingresso da normalmente alta vada bassa o viceversa. Quando rilevi il fronte di salita fai partire un timer e lo fermi quando rilevi il fronte di discesa. In base al tempo passato sai se il sensore ti ha trasmesso un uno oppure uno 0.

Spero di esserti stato utile nonostante la superficialità della spiegazione :D.

FONTE: www.micro4you.com/files/sensor/DHT11.pdf (questo è quello che rileva solo l'umidità)

FONTE: dlnmh9ip6v2uc.cloudfront.net/datasheets/...rs/Weather/RHT03.pdf (questo dovrebbe essere il tuo anche se si chiama in un modo diverso qui). Lo ho letto qua: www.sparkfun.com/products/10167?

Ciaooo
Ringraziano per il messaggio: speedfish

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • borelg
  • Avatar di borelg
  • Elite Member
  • Elite Member
Di più
11 Anni 10 Mesi fa #3 da speedfish
Risposta da speedfish al topic Re: Leggere segnale digitale: come fare?
Rileggendo il datasheet ho scritto frettolosamente queste funzioni... la domanda è, anche se piene di errori, la logica è giusta?
Allegati:

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • speedfish
  • Avatar di speedfish
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login