Gigi600 il 4/5/2016, 10:18
Modifica a semplice termostato
Buongiorno a tutti
Posto la Mia prima creatura con arduino
Ho realizzato un semplice termostato copiando da
LINKe adattato con alcune Mie esigenze ( lcd a 16 caratteri aggiunto il ° e % e piccole modifiche ) .
Ho collegato al pin 13 una scheda relè con materiale da recupero
Ora vorrei inserire due pulsanti per variare la temperatura impostata senza che sia fissa
// setto il limite di temperatura minore o uguale a 20 gradi
if (t <= 20) {
Come modifico lo sketch e hardware ?
Grazie
// carico le librerie
#include <LiquidCrystal.h>
#include "HT.h"
// definisco il pin del sensore
#define DHTPIN 8
// definisco il tipo di sensore
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// definisco a quali pin � connesso il display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// definisco che il pin 13 � quello a cui � connesso il led
const int ledPin = 13;
void setup() {
// setto il tipo di display (colonne, righe)
lcd.begin(16, 2);
// scrivo sul display le parole fisse
lcd.print("Tempera");
lcd.setCursor(0,1);
lcd.print("Umidita");
lcd.setCursor(10,0);
lcd.print((char)223);
lcd.setCursor(12,0);
lcd.print("Cald");
pinMode(ledPin, OUTPUT);
}
void loop() {
int t = dht.readTemperature();
int h = dht.readHumidity();
// posiziono il cursore alla colonna 12 e riga 0
lcd.setCursor(8, 0);
lcd.print(t);
lcd.setCursor(8, 1);
lcd.print(h);
// setto il limite di temperatura minore o uguale a 20 gradi
if (t <= 20) {
//
digitalWrite(ledPin, HIGH);
lcd.setCursor(10, 1);
lcd.print("% Acce");
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
lcd.setCursor(10, 1);
lcd.print("% Spen");
}
}
Allegati:
danye il 4/5/2016, 11:52
Re: Modifica a semplice termostato
Prova così ;)
Partendo da una impostazione di 20 gradi, ad ogni pressione dei pulsanti avrai un incremento o decremento della temperatura impostata di 1 grado.
// carico le librerie
#include <LiquidCrystal.h>
#include "HT.h"
// definisco il pin del sensore
#define DHTPIN 8
// definisco il tipo di sensore
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// definisco a quali pin � connesso il display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// definisco che il pin 13 � quello a cui � connesso il led
const int ledPin = 13;
const int tempDw= 0;
const int tempUp = 1;
int setTemp = 20;
void setup() {
// setto il tipo di display (colonne, righe)
lcd.begin(16, 2);
// scrivo sul display le parole fisse
lcd.print("Tempera");
lcd.setCursor(0, 1);
lcd.print("Umidita");
lcd.setCursor(10, 0);
lcd.print((char)223);
lcd.setCursor(12, 0);
lcd.print("Cald");
pinMode(ledPin, OUTPUT);
pinMode(tempUp, INPUT);
pinMode(tempDw, INPUT);
}
void loop() {
int t = dht.readTemperature();
int h = dht.readHumidity();
// posiziono il cursore alla colonna 12 e riga 0
lcd.setCursor(8, 0);
lcd.print(t);
lcd.setCursor(8, 1);
lcd.print(h);
// setto il limite di temperatura minore o uguale a 20 gradi
if(digitalRead(tempUp))
{
setTemp = setTemp+1;
}
if(digitalRead(tempDw))
{
setTemp = setTemp-1;
}
delay(100);
if (t <= setTemp) {
//
digitalWrite(ledPin, HIGH);
lcd.setCursor(10, 1);
lcd.print("% Acce");
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
lcd.setCursor(10, 1);
lcd.print("% Spen");
}
}
Dovrebbe andare non l'ho testato.
Allegati:
Gigi600 il 5/5/2016, 10:52
Re: Modifica a semplice termostato
Ho provato ma non funziona
Mi sono accorto che bisognerebbe avere anche un riscontro nel display del valore che si va a impostare
danye il 5/5/2016, 19:36
Re: Modifica a semplice termostato
ho sbagliato lo schema dei pulsanti praticamente i due pezzettini di filo rosso vanno al buco subito sotto sul positivo praticamente. Prova se diende da quello
Gigi600 il 5/5/2016, 20:59
Re: Modifica a semplice termostato
lo avevo intuito ;) e per logica il filo rosso lo avevo collegato al positivo ma non funziona .
sempre per logica ad ogni volta che pigio il pulsante dovrebbe accendersi il led del tx o rx ma non lo fa
danye il 5/5/2016, 21:52
Re: Modifica a semplice termostato
Mmm possibile che a me non funziona mai nienteeeeeee????
appena posso lo metto su e provo.