Arduino

Pubblicità

davi01

Nuovo Utente
Messaggi
67
Reazioni
8
Punteggio
25
Buonasera a tutti, vi scrivo perché non so più veramente dove sbattere la testa, ho provato a prendere un programma scritto per un arduino mega e adattarlo ad un arduino uno ma mi da l'errore che vi allego in foto, qualcuno mi potrebbe dare una mano?

Grazie mille in anticipo Davide ;)
 

Allegati

  • Cattura.webp
    Cattura.webp
    5.6 KB · Visualizzazioni: 78
Buonasera a tutti, vi scrivo perché non so più veramente dove sbattere la testa, ho provato a prendere un programma scritto per un arduino mega e adattarlo ad un arduino uno ma mi da l'errore che vi allego in foto, qualcuno mi potrebbe dare una mano?

Grazie mille in anticipo Davide ;)
Ciao dovresti postarci il file almeno cosi vediamo il codice :)

Inviato dal mio SM-G930F utilizzando Tapatalk
 
Ecco il codice!

// Davide Polito
// Serra autonoma con sensore di temperatura e umidità (DHT11), display LCD 20x4 e relè.

int phone = 9; // Relè 1
int ventole = 10; // Relè 2
int acqua = 11; // Relè 3

//DHT11 Sensor:
#include "DHT.h"
#define DHTPIN 12 // Sensore collegato al PIN 12
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);


//I2C LCD:
#include <Wire.h> // Libreria WIRE
#include <LiquidCrystal_I2C.h> // Libreria LCD I2C

// LCD I2C address
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


void setup()
{
// PIN 9 al Relè - IN1
Serial.begin(9600);
pinMode(phone, OUTPUT);

// PIN 10 al relè - IN2
pinMode(ventole, OUTPUT);

// PIN 11 al relè - IN3
pinMode(acqua, OUTPUT);


//I2C LCD
Serial.begin(9600);
lcd.begin(20,4);
Serial.println("Serra Autonoma");

// Avvio sensore DHT11
dht.begin();
}


void nascita(){

// Inizializzazione contatore
int contum=0;
int conttemp=0;

// Lettura umidità e temperatura del sensore DHT11
int h = dht.readHumidity();
int t = dht.readTemperature();


// Misura l'umidità e se maggiore o minore intervine
if (h>70)
digitalWrite (ventole, HIGH); // Attiva Relè 2
contum=1;
if else (h<65)
digitalWrite (acqua, HIGH); // Attiva Relè 3
contum=1;
else
digitalWrite (ventole, HIGH); // Disattiva Relè 2
digitalWrite (acqua, HIGH); // Disattiva Relè 3
contum=0;


// Misura la temperatura e se maggiore o minore intervine
if (t>25)
digitalWrite (vetole, HIGH); // Attiva Relè 2
conttemp=1;
if else (t <16)
digitalWrite (phone, HIGH); // Attiva Relè 1
conttemp=1;
else
digitalWrite (ventola, LOW); //Disattiva Relè 2
digitalWrite (phone, LOW); //Disattiva Relè 1
conttemp=0;

Serial.print("Temp: ");
Serial.print(t);
Serial.print("C, Umid: ");
Serial.print(h);
Serial.println("%");


// impostare cursore sulla prima riga
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

// imposta cursore sulla seconda riga
lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");

// impostare cursore sulla terza riga
lcd.setCursor(0, 2);
if(contum==0 && conttemp==0)
lcd.print("Cond: Perfette");
if else(contum==1 && conttemp==0)
lcd.print("Cond: High temp");
if else(contum==0 && conttemp==1)
lcd.print("Cond: High um");
if else(contum==1 && conttemp==1)
lcd.print("Cond: High temp & um");
}

void crescita(){

// inizializzazione contatore
int contum=0;
int conttemp=0;

// Lettura umidità e temperatura del sensore DHT11
int h = dht.readHumidity();
int t = dht.readTemperature();


// Misura l'umidità e se maggiore o minore intervine
if (h>60)
digitalWrite (ventole, HIGH); // Attiva Relè 2
contum=1;
if else (h<50)
digitalWrite (acqua, HIGH); // Attiva Relè 3
contum=1;
else
digitalWrite (ventole, HIGH); // Disattiva Relè 2
digitalWrite (acqua, HIGH); // Disattiva Relè 3
contum=0;


// Misura la temperatura e se maggiore o minore intervine
if (t>28)
digitalWrite (vetole, HIGH); // Attiva Relè 2
conttemp=1;
if else (t <18)
digitalWrite (phone, HIGH); // Attiva Relè 1
conttemp=1;
else
digitalWrite (ventola, LOW); //Disattiva Relè 2
digitalWrite (phone, LOW); //Disattiva Relè 1
conttemp=0;

Serial.print("Temp: ");
Serial.print(t);
Serial.print("C, Umid: ");
Serial.print(h);
Serial.println("%");


// impostare cursore sulla prima riga
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

// imposta cursore sulla seconda riga
lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");

// impostare cursore sulla terza riga
lcd.setCursor(0, 2);
if(contum==0 && conttemp==0)
lcd.print("Cond: Perfette");
if else(contum==1 && conttemp==0)
lcd.print("Cond: High temp");
if else(contum==0 && conttemp==1)
lcd.print("Cond: High um");
if else(contum==1 && conttemp==1)
lcd.print("Cond: High temp & um");
}

void fioritura_e_frutti(){

// inizializzazione contatore
int contum=0;
int conttemp=0;

// Lettura umidità e temperatura del sensore DHT11
int h = dht.readHumidity();
int t = dht.readTemperature();


// Misura l'umidità e se maggiore o minore interviene
if (h>50)
digitalWrite (ventole, HIGH); // Attiva Relè 2
contum=1;
if else (h<40)
digitalWrite (acqua, HIGH); // Attiva Relè 3
contum=1;
else
digitalWrite (ventole, HIGH); // Disattiva Relè 2
digitalWrite (acqua, HIGH); // Disattiva Relè 3
contum=0;


// Misura la temperatura e se maggiore o minore intervine
if (t>26)
digitalWrite (vetole, HIGH); // Attiva Relè 2
conttemp=1;
if else (t <20)
digitalWrite (phone, HIGH); // Attiva Relè 1
conttemp=1;
else
digitalWrite (ventola, LOW); //Disattiva Relè 2
digitalWrite (phone, LOW); //Disattiva Relè 1
conttemp=0;

Serial.print("Temp: ");
Serial.print(t);
Serial.print("C, Umid: ");
Serial.print(h);
Serial.println("%");


// impostare cursore sulla prima riga
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

// imposta cursore sulla seconda riga
lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");

// impostare cursore sulla terza riga
lcd.setCursor(0, 2);
if(contum==0 && conttemp==0)
lcd.print("Cond: Perfette");
if else(contum==1 && conttemp==0)
lcd.print("Cond: High temp");
if else(contum==0 && conttemp==1)
lcd.print("Cond: High um");
if else(contum==1 && conttemp==1)
lcd.print("Cond: High temp & um");
}


void loop(){

nascita();
crescita();
fioritura_e_frutti();
}


Grazie mille della disponibilità!
--- i due messaggi sono stati uniti ---
Secondo me ho sbagliato qualcosa nelle librerie ma non riesco a capire cosa @marcusfenixx
 
Ecco il codice!

// Davide Polito
// Serra autonoma con sensore di temperatura e umidità (DHT11), display LCD 20x4 e relè.

int phone = 9; // Relè 1
int ventole = 10; // Relè 2
int acqua = 11; // Relè 3

//DHT11 Sensor:
#include "DHT.h"
#define DHTPIN 12 // Sensore collegato al PIN 12
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);


//I2C LCD:
#include // Libreria WIRE
#include // Libreria LCD I2C

// LCD I2C address
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


void setup()
{
// PIN 9 al Relè - IN1
Serial.begin(9600);
pinMode(phone, OUTPUT);

// PIN 10 al relè - IN2
pinMode(ventole, OUTPUT);

// PIN 11 al relè - IN3
pinMode(acqua, OUTPUT);


//I2C LCD
Serial.begin(9600);
lcd.begin(20,4);
Serial.println("Serra Autonoma");

// Avvio sensore DHT11
dht.begin();
}


void nascita(){

// Inizializzazione contatore
int contum=0;
int conttemp=0;

// Lettura umidità e temperatura del sensore DHT11
int h = dht.readHumidity();
int t = dht.readTemperature();


// Misura l'umidità e se maggiore o minore intervine
if (h>70)
digitalWrite (ventole, HIGH); // Attiva Relè 2
contum=1;
if else (h digitalWrite (acqua, HIGH); // Attiva Relè 3
contum=1;
else
digitalWrite (ventole, HIGH); // Disattiva Relè 2
digitalWrite (acqua, HIGH); // Disattiva Relè 3
contum=0;


// Misura la temperatura e se maggiore o minore intervine
if (t>25)
digitalWrite (vetole, HIGH); // Attiva Relè 2
conttemp=1;
if else (t digitalWrite (phone, HIGH); // Attiva Relè 1
conttemp=1;
else
digitalWrite (ventola, LOW); //Disattiva Relè 2
digitalWrite (phone, LOW); //Disattiva Relè 1
conttemp=0;

Serial.print("Temp: ");
Serial.print(t);
Serial.print("C, Umid: ");
Serial.print(h);
Serial.println("%");


// impostare cursore sulla prima riga
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

// imposta cursore sulla seconda riga
lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");

// impostare cursore sulla terza riga
lcd.setCursor(0, 2);
if(contum==0 && conttemp==0)
lcd.print("Cond: Perfette");
if else(contum==1 && conttemp==0)
lcd.print("Cond: High temp");
if else(contum==0 && conttemp==1)
lcd.print("Cond: High um");
if else(contum==1 && conttemp==1)
lcd.print("Cond: High temp & um");
}

void crescita(){

// inizializzazione contatore
int contum=0;
int conttemp=0;

// Lettura umidità e temperatura del sensore DHT11
int h = dht.readHumidity();
int t = dht.readTemperature();


// Misura l'umidità e se maggiore o minore intervine
if (h>60)
digitalWrite (ventole, HIGH); // Attiva Relè 2
contum=1;
if else (h digitalWrite (acqua, HIGH); // Attiva Relè 3
contum=1;
else
digitalWrite (ventole, HIGH); // Disattiva Relè 2
digitalWrite (acqua, HIGH); // Disattiva Relè 3
contum=0;


// Misura la temperatura e se maggiore o minore intervine
if (t>28)
digitalWrite (vetole, HIGH); // Attiva Relè 2
conttemp=1;
if else (t digitalWrite (phone, HIGH); // Attiva Relè 1
conttemp=1;
else
digitalWrite (ventola, LOW); //Disattiva Relè 2
digitalWrite (phone, LOW); //Disattiva Relè 1
conttemp=0;

Serial.print("Temp: ");
Serial.print(t);
Serial.print("C, Umid: ");
Serial.print(h);
Serial.println("%");


// impostare cursore sulla prima riga
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

// imposta cursore sulla seconda riga
lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");

// impostare cursore sulla terza riga
lcd.setCursor(0, 2);
if(contum==0 && conttemp==0)
lcd.print("Cond: Perfette");
if else(contum==1 && conttemp==0)
lcd.print("Cond: High temp");
if else(contum==0 && conttemp==1)
lcd.print("Cond: High um");
if else(contum==1 && conttemp==1)
lcd.print("Cond: High temp & um");
}

void fioritura_e_frutti(){

// inizializzazione contatore
int contum=0;
int conttemp=0;

// Lettura umidità e temperatura del sensore DHT11
int h = dht.readHumidity();
int t = dht.readTemperature();


// Misura l'umidità e se maggiore o minore interviene
if (h>50)
digitalWrite (ventole, HIGH); // Attiva Relè 2
contum=1;
if else (h digitalWrite (acqua, HIGH); // Attiva Relè 3
contum=1;
else
digitalWrite (ventole, HIGH); // Disattiva Relè 2
digitalWrite (acqua, HIGH); // Disattiva Relè 3
contum=0;


// Misura la temperatura e se maggiore o minore intervine
if (t>26)
digitalWrite (vetole, HIGH); // Attiva Relè 2
conttemp=1;
if else (t digitalWrite (phone, HIGH); // Attiva Relè 1
conttemp=1;
else
digitalWrite (ventola, LOW); //Disattiva Relè 2
digitalWrite (phone, LOW); //Disattiva Relè 1
conttemp=0;

Serial.print("Temp: ");
Serial.print(t);
Serial.print("C, Umid: ");
Serial.print(h);
Serial.println("%");


// impostare cursore sulla prima riga
lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

// imposta cursore sulla seconda riga
lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");

// impostare cursore sulla terza riga
lcd.setCursor(0, 2);
if(contum==0 && conttemp==0)
lcd.print("Cond: Perfette");
if else(contum==1 && conttemp==0)
lcd.print("Cond: High temp");
if else(contum==0 && conttemp==1)
lcd.print("Cond: High um");
if else(contum==1 && conttemp==1)
lcd.print("Cond: High temp & um");
}


void loop(){

nascita();
crescita();
fioritura_e_frutti();
}


Grazie mille della disponibilità!
--- i due messaggi sono stati uniti ---
Secondo me ho sbagliato qualcosa nelle librerie ma non riesco a capire cosa @marcusfenixx
Serve che lo inserisci nell'apposito tag
Codice:
Inviato dal mio SM-G930F utilizzando Tapatalk
 
Versione dell'ide di arduino? OS? Inserisci anche tutto l'errore.
Per l'errore più dettagliato imposta Warning del compilatore su "Tutti"
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top