Visualizza messaggio singolo
Vecchio 13 maggio 17, 17:15   #10 (permalink)  Top
andore
User
 
L'avatar di andore
 
Data registr.: 20-04-2009
Residenza: Potenza
Messaggi: 934
Citazione:
Originalmente inviato da aero330 Visualizza messaggio
Prova questo...nel tuo originale c'erano alcune cose che non andavano: doppia definizione della funzione LiquidCrystal lcd, doppio lcd.begin(16,2) e la doppia definizione di void setup() alla fine che non c'entra nulla)

Codice:
#include <DHT.h>
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>
#include "DHT.h"

#define DHTPIN 8   // 8 è il pin di Arduino a cui collego il sensore di temperatura
#define DHTTYPE DHT11  // dht11 è il tipo di sensore che uso

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // connessione display (pin)

char buffer1[20];
char buffer2[20];

RTC_DS1307 RTC;

const int setpin = 6;
boolean statepin = 0;
int t;
int h;

void setup() {
	lcd.begin(16, 2); // imposto il tipo di display (colonne, righe)
	lcd.setCursor(0,0);
	lcd.print("Temperatura");
	lcd.setCursor(0,1);
	lcd.print("Umidita'");
	lcd.setCursor(15,0);
	lcd.print("C");
	lcd.setCursor(15,1);
	lcd.print("%");

	pinMode (6, INPUT);
	digitalWrite (6, HIGH);

	Wire.begin();
	RTC.begin();

	if (! RTC.isrunning()) {
	RTC.adjust(DateTime(__DATE__, __TIME__));
	}
}

void loop() {
	
	t = dht.readTemperature();
	h = dht.readHumidity();  // posiziono il cursore alla colonna 12 e riga 0
	lcd.setCursor(12, 0);
	lcd.print(t);
	lcd.setCursor(12, 1);
	lcd.print(h);

	statepin = digitalRead (setpin);
	
	if (statepin == LOW)
	{
		RTC.adjust(DateTime(__DATE__, __TIME__));
	}
	
	DateTime now = RTC.now();
	sprintf(buffer1,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
	lcd.setCursor(0,0);
	lcd.print( buffer1 );
	sprintf(buffer2,  "%02d/%02d/%d", now.day(), now.month(), now.year());
	lcd.setCursor(0,1);
	lcd.print( buffer2 );
	delay(1000);
}
OK ti ringrazio e sto cominciando a capirci qualcosa, di fatti avevo notato degli errori grossolani ma, il problema rimane sul fatto che ora, sul display però e tutto accavallato come da foto come faccio a intervallare ora e temperatura in maniera ciclica?


Imgur: The most awesome images on the Internet

Altra domanda: per azionare il motore DC ho a disposizione due tipi di transistor NPN ovvero (PN2222 e S8050) quale dovrei usare?
__________________
FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA
andore non è collegato   Rispondi citando