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.
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.
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.
per quanto riguarda il terzo led:
hai sbagliato variabile: hai scritto t al posto di h
credo dovrebbe essere cosi:
ciao
pippo72
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
Post a Comment