PROGRAMMA NON FUNZIONANTE

buonasera a tutti, sono nuovo del forum, perdonatemi se ho sbagliato sezione. sto facendo un programma con arduino 1 che mi consenta di leggere su uno schermo 40,4 lcd i2c, due temperature fornite da due lm 35 e due valori di umidità forniti da dht11. quando la temperatura di un solo lm 35 raggiunge un certo valore, attiva o disattiva un uscita digitale. riscontro diversi problemi nel far funzionare insieme i due dht11. qualcuno puo aiutarmi a far funzionare il programma? grazie in anticipo.

programma1.doc (13.5 KB)

qualcuno dei moderatori a breve ti dirà che dovresti presentarti nell'apposita sezione...

poi, secondo me, è più semplice consultare il tuo codice se lo metti nel post all'interno dei tag code invece di allegarlo in formato word.

venendo al tuo problema, dopo un rapido sguardo al codice l'unica cosa che mi sembra stana è che usi sempre la variabile temp1 negli if alla fine. forse dovresti usare temp1 e temp2.

GRAZIE PER LA RISPOSTA, MA LA PARTE DEGLI IF è CORRETTA, COSI MI SERVE. NON SAPEVO MI DOVESSI PRESENTARE, M SONO ISCRITTO APPENA MEZZORA FA.

prova a spiegare nel dettaglio il problema, perché non l'ho capito...

Non riesco a completare il programma, la parte sugli lm35 funziona, mentre quella sui dht11 è incompleta. Purtroppo non sono esperto... :frowning:

forse sono io duro di comprendonio, ma detta così può essere tutto e niente...
prova a dire cosa vorresti fare, cosa vorresti ottenere e cosa invece ottieni.
vedo che cerchi di leggere un valore dai sensori e poi lo visualizzi sul display. il problema qual è?
non visualizzi i valori? li visualizzi errati? ti da errore il compilatore? altro?

Il compilatore mi da l'errore. Vorrei leggere due temperature e due umidità sullo schermo

a piccoli passi ci avviciniamo al problema...
che errore ti da?

piccolo suggerimento per il futuro: se speri di ricevere aiuto, dovresti essere tu il primo ad aiutare gli altri a capire il problema... cerca di essere completo ed esaustivo nell'esporre il problema, altrimenti come faccio/facciamo a capire?

LUCA1997:
Il compilatore mi da l'errore. Vorrei leggere due temperature e due umidità sullo schermo

Io sono uno dei moderatori.
Tu hai problemi con me.
Adesso indovina che problemi e cose devi fare per risolverli.
Ciao Uwe

LUCA1997:
buonasera a tutti, sono nuovo del forum,

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Se non dai tutte le info non è possibile aiutarti. Primo, devi dire che Arduino hai, secondo quale hardware e come è collegato, e terzo postare il codice che usi e gli errori che ti da (usando i tag code, ovvero pulsante </>. Altrimenti... ci vuole la palla di vetro !

P.S. scrivere in maiuscolo nei forum equivale ad urlare. Per favore evita.

Perdonatemi ma non sapevo tutto queste cose, mi presento subito nell'apposita sezione, comunque che tipo di Arduino uso gia l'ho detto in precedenza e anche che hardware sto usando. Come errore mi dice questo qui : ridefinition of 'dht11 DHT1'.

Se vuoi ricevere aiuto ...

  1. evita di usare .doc per il codice, o lo metti direttamente nel tuo post (... mi raccomando, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra), o esclusivamente in formato .txt

  2. indica sempre da dove hai scaricato le librerie (... mettere il link) ... da dove hai preso quella dht11 ?

  3. per gli errori cortesemente fai copia/incolla dall'IDE nel tuo post (... ci sono molti più dettagli), racchiudendo anche questo nei tag CODE.

Guglielmo

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
Untitled:4: error: redefinition of 'dht11 DHT1'
programma_finito_1:5: error: 'dht11 DHT1' previously declared here
Untitled:5: error: redefinition of 'dht11 DHT2'
programma_finito_1:6: error: 'dht11 DHT2' previously declared here
Untitled:10: error: redefinition of 'LiquidCrystal_I2C lcd'
programma_finito_1:11: error: 'LiquidCrystal_I2C lcd' previously declared here
Untitled:12: error: redefinition of 'float temp1'
programma_finito_1:13: error: 'float temp1' previously declared here
Untitled:13: error: redefinition of 'int temp1Pin'
programma_finito_1:14: error: 'int temp1Pin' previously defined here
Untitled:14: error: redefinition of 'float temp2'
programma_finito_1:15: error: 'float temp2' previously declared here
Untitled:15: error: redefinition of 'int temp2Pin'
programma_finito_1:16: error: 'int temp2Pin' previously defined here
Untitled:16: error: redefinition of 'const int ledPin'
programma_finito_1:17: error: 'const int ledPin' previously defined here
Untitled:17: error: redefinition of 'const int ledPin1'
programma_finito_1:18: error: 'const int ledPin1' previously defined here
Untitled.ino: In function 'void setup()':
Untitled:19: error: redefinition of 'void setup()'
programma_finito_1:20: error: 'void setup()' previously defined here
Untitled.ino: In function 'void loop()':
Untitled:29: error: redefinition of 'void loop()'
programma_finito_1:30: error: 'void loop()' previously defined here

questo è il copia/incolla dal mio ide, mentre quello qui sotto è il link da dove ho scaricato la libreria del dht11.

grazie a tutti per l'aiuto che mi state dando, spero di aver usato in maniera corretta i tag code.

Quindi, il tuo codice preso dal doc è questo, te lo posto io con i tag code:

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <dht11.h>

dht11 DHT1;
dht11 DHT2;

#define DHT1_PIN 6
#define DHT2_PIN 8

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

float temp1;
int temp1Pin = 0;
float temp2;
int temp2Pin = 1;
const int ledPin = 10;
const int ledPin1 = 11;
const int ledPin2 = 12;

void setup()
{ 
  lcd.begin(20,4);
  lcd.backlight();
  lcd.clear();
  pinMode(ledPin,OUTPUT);
  pinMode(ledPin1,OUTPUT);
  pinMode(ledPin1,OUTPUT);
  DHT1.begin();
  DHT2.begin();
}

void loop()
{ int ctrl;
  ctrl = DHT1.readHumidity();
  ctrl = DHT2.readHumidity();
  lcd.setCursor(0,3);
  lcd.print("U.SONDA 1 ");
  lcd.print(DHT1.humidity,1);
  lcd.print("%");
  lcd.setCursor(0,4);
  lcd.print("U.SONDA 2 ");
  lcd.print(DHT2.humidity,1);
  lcd.print("%");
  temp1 = analogRead(temp1Pin);
  temp1 = (5.0 * temp1 * 100.0)/1024;
  lcd.setCursor(0,0);
  lcd.print("T.SONDA 1 ");
  lcd.print(temp1);
  temp2 = analogRead(temp2Pin);
  temp2 = (5.0 * temp2 * 100.0)/1024;
  lcd.setCursor(0,1);
  lcd.print("T.SONDA 2 ");
  lcd.print(temp2);
  if (temp1 > 27) 
    digitalWrite(ledPin,HIGH);
  if (temp1 < 25)
    digitalWrite(ledPin,LOW);
  if (temp1 > 27)
    digitalWrite(ledPin1,HIGH);
  if (temp1 < 25)
    digitalWrite(ledPin1,LOW);
  if (temp1 > 27)
    digitalWrite(ledPin2,HIGH);
  if (temp1 < 25)
    digitalWrite(ledPin2,LOW);
  delay(3000);
}

Si, purtroppo mi da quelli :frowning: non riesco proprio a capire dove sbaglio :((

LUCA1997:
Si, purtroppo mi da quelli :frowning: non riesco proprio a capire dove sbaglio :((

Gli errori che ti da, è come se ti dicesse che hai scritto 2 volte le variabili, sicuro che quegli errori sono relativi al programma che avevi allegato nel file .doc ? A me non pare.
Sembra che nella cartella del programma hai due file .ino Untitled.ino e programma_finito_1.ino
Infatti ti dice:
Untitled:5: error: redefinition of 'dht11 DHT2'
programma_finito_1:6: error: 'dht11 DHT2' previously declared here

Sig. Non69ora aveva ragione leiiii, erano presenti altri due file nella cartella dei programmi salvati che davano problemi, lo ho appena eliminati e funziona tutto. Grazie infinite, gentilissimo

Prego. Nel forum ci diamo del tu, non è necessario il lei. :slight_smile:

Un consiglio. Quel sito di tutorial in italiano è ben fatto, ma alcune pagine sono un pò datate.
Purtroppo in inglese, ma un ottimo sito di riferimento è quello di Adafruit, che produce e vende un bel pò di sensori/shield/moduli per Arduino. Ma oltre a vendere ha anche tante librerie e moltissime pagine di tutorial e wiki. Ripeto, purtroppo in inglese.
Esempio: qui la pagina del prodotto DHT11: DHT11 basic temperature-humidity sensor + extras : ID 386 : $5.00 : Adafruit Industries, Unique & fun DIY electronics and kits
c'e' poi pulsante LEARN che porta a tutorial ben fatto: Overview | DHT11, DHT22 and AM2302 Sensors | Adafruit Learning System

Perfetto, grazie ancora.

nid69ita:
Gli errori che ti da, è come se ti dicesse che hai scritto 2 volte le variabili, sicuro che quegli errori sono relativi al programma che avevi allegato nel file .doc ? A me non pare.
Sembra che nella cartella del programma hai due file .ino Untitled.ino e programma_finito_1.ino
Infatti ti dice:
Untitled:5: error: redefinition of 'dht11 DHT2'
programma_finito_1:6: error: 'dht11 DHT2' previously declared here

Nel IDE si possono aprire piú tab che a differenza di altri programmi non sono 2 progetti diversi ma diverse file che il IDE mette insieme prima di compilare. Tu probabilmente hai aperto un secondo TAB e copiato lí lo sketch perché pensavi che in questo modo hai 2 versioni differenti dello Sketch.

Se Tu ci avessi dato lo sketch e gli errori ieri Ti averemmo potuto rispondere giá ieri.

comunque che tipo di Arduino uso gia l'ho detto in precedenza e anche che hardware sto usando.

se siamo cosí orbi o senili da non ricordarcelo allora ridacci l' informazione una seconda volta.
Ciao Uwe