3 led


salve

non capisco come mai questo sketch non riesca gestire 3 led... dovrebbero accendersi in base alla temperatura ed umidita, lettura effettuata attraverso un sensore dht11.

code: [select]
////  problema non accende led3
 
#include "dht.h"
 
#define dhtpin 2    // il pin cui è collegato il sensore
 
#define dhttype dht11   // dht 11
 
dht dht(dhtpin, dhttype);
 
 // vegngono inizializzati pin cui sono connessi led
int led1 = 4;
int led2 = 5;
int led3 = 6;
int ritardo = 1000;
 
// vengono indicate le temperature per cui led si devono accendere
int temp_max = 26;
int temp_min = 30;
int humi_min = 50;
 
 
void setup() {
  serial.begin(9600);
  serial.println("dhtxx test!");
  pinmode(led1, output);
  pinmode(led2, output);
  pinmode(led3, output);
  dht.begin();
}
 
void loop() {
  // legge la temperatura e l'umidità ogni 250 millisecondi!
  // vengono inizializzate le variabili in cui vengono scritti valori letti
  float h = dht.readhumidity();
  float t = dht.readtemperature();
 
  // controlla se la lettura è andata buon fine
  if (isnan(t) || isnan(h)) {
    serial.println("failed read dht");
  } else {
    serial.print("umidità =>   ");
    serial.print(h); // stampa nel seriale la percentuale dell'umidità
    serial.print(" %t");
    serial.print("         temperatura =>   ");
    serial.print(t); // stampa nel seriale il valore della temperatura
    serial.println(" *c");
  }
 
/// accende led1
  if (t >= temp_max) {
    digitalwrite(led1, high);   // viene accesso il led rosso
    delay(ritardo);  
    digitalwrite(led1, low);   // viene spento il led rosso
  }

/// accende led2  
    if (t <= temp_min) {
    digitalwrite(led2, high);   // viene accesso il led blu
    delay(ritardo);  
    digitalwrite(led2, low);   // viene spento il  led blu
  }

/// accende led3 ----  ma non si accende perche?
  if (t <= humi_min) {
    digitalwrite(led3, high);   // viene accesso il led rosso
    delay(ritardo);  
    digitalwrite(led3, low);   // viene spento il  led rosso
  }
  
}



questo lo schema.... si capisce poco... comunque collecamenti son giusti rispetto allo sketch e le temperature sono impostate perche si accendano led...

il led che non si illumina è il primo partendo da sinistra



puo essere un problema di alimentazione =>sappi che oltre due led in serie avrai bisogno di un'alimentazione esterna; ad esempio con 5 led hai bisogno di un alimentatore esterno da 12v.

ciao

a livello hardware hai fatto un grosso errore: non ci sono resistenze il serie ai led, rischi di danneggiare il micro.

quote
sappi che oltre due led in serie avrai bisogno di un'alimentazione esterna; ad esempio con 5 led hai bisogno di un alimentatore esterno da 12v.
guarda che non hai nessun led messo in serie con altri led.

per quanto riguarda il terzo led:
code: [select]
/// accende led3 ----  ma non si accende perche?
  if (t <= humi_min) {
    digitalwrite(led3, high);   // viene accesso il led rosso
    delay(ritardo); 
    digitalwrite(led3, low);   // viene spento il  led rosso
  }

hai sbagliato variabile: hai scritto t al posto di h
credo dovrebbe essere cosi:
code: [select]
if (h <= humi_min) {
eccetera


ciao
pippo72


Arduino Forum > International > Italiano > Software (Moderator: leo72) > 3 led


arduino

Comments

Popular posts from this blog

invalid use of void expresion in FlexiTimer2 library

error: a function-definition is not allowed here before '{' token

LED Strip Code