Devices & Components
Arduino Mega 2560 Rev3
Pushbutton
Breadboard (generic)
DHT11 Temperature & Humidity Sensor (4 pins)
4 digit 7 segment display
Resistor 220 ohm
Jumper wires (generic)
Software & Tools
Arduino IDE
Project description
Code
sensoreTempEUmidita.ino
c_cpp
1#include <SevSeg.h> 2#include <dht_nonblocking.h> 3#define tipoSensore DHT_TYPE_11 4 5SevSeg sevseg; 6 7int pinBottone=24; 8int statoBottone=0; 9int cambioDisplay=0; 10int ultStatoBottone=0; 11 12 13static const int pinSensore = 22; 14DHT_nonblocking sensoreDHT( pinSensore, tipoSensore ); 15 16void setup( ) 17{ 18 pinMode(pinBottone, INPUT_PULLUP); 19 Serial.begin(9600); 20 byte numCifre=4; //how many digits has the display 21 byte pinCifre[]={10,11,12,13}; //digit pins 22 byte pinSegmenti[]={9,2,3,5,6,8,7,4}; //segment pins from A to G plus decimal point pin (last one) 23 bool resistoriSuSegmenti=true; 24 byte CAoCC=COMMON_CATHODE; //common cathode or common anode display 25 sevseg.begin(CAoCC, numCifre, pinCifre, pinSegmenti, resistoriSuSegmenti); 26 sevseg.setBrightness(-10); 27} 28 29static bool misuraAmbiente( float *temperatura, float *umidita ) 30{ 31 static unsigned long tempo = millis( ); 32 33 //measures every 4 seconds 34 if( millis( ) - tempo > 4000) 35 { 36 if( sensoreDHT.measure( temperatura, umidita ) == true ) 37 { 38 tempo = millis( ); 39 return( true ); 40 } 41 } 42 43 return( false ); 44} 45 46 47void loop( ) 48{ 49 float temperatura; 50 float umidita; 51 statoBottone=digitalRead(pinBottone); 52 if (statoBottone!=ultStatoBottone) //check if button is pressed 53 { 54 55 //change state if button is pressed 56 if (statoBottone==1) 57 { 58 if(cambioDisplay==1) 59 { 60 cambioDisplay=0; 61 } 62 else 63 { 64 cambioDisplay=1; 65 } 66 } 67 68 //remember the new state 69 ultStatoBottone=statoBottone; 70 } 71if(misuraAmbiente(&temperatura, &umidita)==true) 72{}; 73 switch(cambioDisplay) //switch display mode (temperature or humidity) 74 { 75 case 0: 76 { 77 sevseg.setNumberF(temperatura, 1); 78 break; 79 }; 80 case 1: 81 { 82 sevseg.setNumber(umidita); 83 break; 84 }; 85 } 86 87 sevseg.refreshDisplay(); 88} 89
Downloadable files
immagine_2022-06-10_140739223_nnUm57dkRM.png
immagine_2022-06-10_140739223_nnUm57dkRM.png

immagine_2022-06-10_140739223_nnUm57dkRM.png
immagine_2022-06-10_140739223_nnUm57dkRM.png

Comments
Only logged in users can leave comments