Curiosità. SHT11 e pin analogico

Salve amici leggendo il datasheet del sensore SHT11 si evince che si tratta di un trasduttore digitale eppure da esempi di codice prelevati in rete il piedino sig viene collegato ad un ingresso analogico dell'arduino.
Come mai questo tipo di interfacciamento?
Caratteristiche SHT11 -> http://www.sensirion.com/en/01_humidity_sensors/02_humidity_sensor_sht11.htm
Esempio di codice -> http://sandboxelectronics.com/store/images/SEN-000001/SEN-000001_Source.php

Vorrei precisare che collegando il sensore al pin analogico riesco a leggere perfettamente i valori di temperatura e umidità relativa!!! :stuck_out_tongue:

Ciao,
Mimmo

ciao mimmofire

Il sensore SHT11 non ha un segnale analogicao di uscita.

Un pin analogico puó essere usato anche come pin digitale Output o Input.
Il codice esempio é un po complicato perché sta pilotando direttamente i registri del ATmega e perché sembra che non ci sia un clock per la trasmissione anche se ci sono i ritardi trigherati da questo per leggere i dato nel momento giusto.

Puoi usare shiftout() / shiftin() per interfacciarti al sensore.

Un esempio e una libreria trovi su GitHub - practicalarduino/SHT1x: Arduino library to support SHT1x-series (SHT10, SHT11, SHT15) temperature / humidity sensors from Sensirion

Ciao Uwe

Grazie Uwe, sto studiano il codice per approfondire un po' le conoscenze ma è davvero tosto....

Grazie per il link della libreria.

Quel codice legge direttamente i registri del Controller. Non so neanch'io come produce il clock per leggere l' interfaccia.
Ciao Uwe

Uwe, leggendo questo sito - Online Thermometer | Freetronics - , ad un certo punto dice:

Many people don't realise that the Arduino analog pins can be used as regular digital I/O lines simply by addressing them using a different pin number.

analog 0 = digital 14
analog 1 = digital 15
analog 2 = digital 16
analog 3 = digital 17
analog 4 = digital 18
analog 5 = digital 19

So to use, for example, analog input pin 2 as a digital pin, you can simply use a regular digital command such as:

digitalWrite( 16, HIGH );

to drive it high. The analog inputs can also be used for software serial or anything else that you can do with a regular digital pin.

Confermando di fatto quanto dicevi prima.
Sei un grande, c'è sempre da imparare.

Grazie,
Mimmo

Grazie, lo so. (pin analogici) :wink: :wink:
Sui pin analogici 4 e 5 c'é anche l' interfaccia I2C, che non puó essere spostato su altri pins perché realizzato via hardware.
Ma attenzione se hai un Arduino col ATmega montato SMD; per esempio il Arduino NANO: Quello ha 8 entrate analogiche ma solo i primi 6 possono essere usati come digitali.
Ciao Uwe

uwe ho trovato un post nel vecchio forum in lingua inglese che parla proprio di quel codice che ho postato prima.

link -> http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1279351331

Se ti interessa!? :fearful:

_BV fa riferimento ad un registro dell' ATMega?