![]() |
![]() ![]() ultimo aggiornamento 27 agosto 2011 |
![]() Per vedere i miei filmati |
Per utilizzare il sensore Sensirion SHT11
(per le caratteristiche vedere questa pagina)
con la scheda Arduino occorre seguire lo schema sottoriportato.
Il modulo utilizza per comunicare con il processore un'interfaccia seriale tipo
2-wire, (dati e clock) n on compatibile con il tipo I2C.
| Pin del modulo sensore | Pin ARDUINO |
| 1 (Data) | Pin digitale D10 |
| 3 (Clock) | Pin digitale D11 |
| 4 (GND) | GND |
| 8 (VDD- +5V) | +5V |

Il programma utilizza la libreria che può essere scaricata all'indirizzo https://github.com/practicalarduino/SHT1x scritta da Jonathan Oxer
Versione con lettura tramite monitor porta seriale PC
Prima versione del programma, i dati letti dalla scheda Arduino vengono mostrati nella finestra del monitor della porta seriale

/* Lettura_valori_SHT11.pde Il programma legge i valori di temperatura e umidità dal sensore e li mostra nella finestra monitor della porta seriale Vengono utilizzati i seguenti pin della scheda Arduino 2009/NANO Pin +5V -> Alimentazione Pin GND -> Alimentazione Pin Digital 10-> Connesso al pin DATA del sensore SHT11 Pin Digital 11-> Connesso al pin CLOCK del sensore SHT11 Creato il 20/8/2011 da Adriano Gandolfo <http://www.adrirobot.it> basato su programma realizzato da Jonathan Oxer <jon@oxer.com.au> www.practicalarduino.com This example code is in the public domain. */ #include <SHT1x.h> // Specify data and clock connections and instantiate SHT1x object #define dataPin 10 #define clockPin 11 SHT1x sht1x(dataPin, clockPin); void setup() { Serial.begin(38400); // Open serial connection to report values to host Serial.println("Starting up"); } void loop() { float temp_c; float temp_f; float humidity; // Read values from the sensor temp_c = sht1x.readTemperatureC(); humidity = sht1x.readHumidity(); // Print the values to the serial port Serial.print("Temperatura: "); Serial.print(temp_c, 1); Serial.print("C / "); Serial.print("Umidita': "); Serial.print(humidity,1); Serial.println("%"); delay(2000); } |

Versione con lettura mostrata su display LCD connesso in seriale alla scheda Arduino
Seconda versione del programma, i dati letti dalla scheda Arduino vengono mostrati tramite un display LCD 16x2 connesso in seriale alla scheda Arduino

/* Lettura_valori_SHT11_LCD.pde Il programma legge i valori di temperatura e umiditò dal sensore e li mostra sul siplay LCD Vengono utilizzati i seguenti pin della scheda Arduino 2009/NANO Pin +5V -> Alimentazione Pin GND -> Alimentazione Pin Digital 4-> Connesso al display LCD Pin Digital 10-> Connesso al pin DATA del sensore SHT11 Pin Digital 11-> Connesso al pin CLOCK del sensore SHT11 Creato il 20/8/2011 da Adriano Gandolfo <http://www.adrirobot.it> basato su programma realizzato da Jonathan Oxer <jon@oxer.com.au> www.practicalarduino.com This example code is in the public domain. */ #include <SHT1x.h> // Inclusione della libreria SoftwareSerial in // modo da poter utilizzare le sue funzioni: #include <SoftwareSerial.h> #define rxPin 3 #define txPin 4 // Imposta una nuova porta seriale SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); byte pinState = 0; // Specfica pin per data e clock connessi al senosre SHT1x #define dataPin 10 #define clockPin 11 SHT1x sht1x(dataPin, clockPin); void setup() { pinMode(rxPin, INPUT); // definisce i pin per tx, rx: pinMode(txPin, OUTPUT); // imposta la velocità della porta mySerial.begin(9600); } // Resetta il display, annullando qualsiasi scorrimento // e la rimozione di tutto il testo void clearLCD(){ mySerial.print(0xFE, BYTE); //command flag mySerial.print(0x01, BYTE); //Comando clear // delay(50); } // Avvia il cursore all'inizio della prima linea void firstrow(){ mySerial.print(0xFE, BYTE); mySerial.print(128, BYTE); delay(2); } // Avvia il cursore all'inizio della seconda linea void secndtrow(){ mySerial.print(0xFE, BYTE); mySerial.print(128+64, BYTE); delay(2); } void loop() { float temp_c; float humidity; // Lettura valori dal sensore temp_c = sht1x.readTemperatureC(); humidity = sht1x.readHumidity(); // Scrittura valori letti su LCD clearLCD(); firstrow(); mySerial.print("Temperatura:"); mySerial.print(temp_c,DEC); delay(500); secndtrow(); mySerial.print("Umidita' :"); mySerial.print(humidity,DEC); delay(1000); } |
![]() Schema elettrico del modulo Parallax |
Downloads & Risorse |
| Elenco revisioni | |
| 27/08/2011 | Emissione preliminare |