Unire gli skech di due sensori

Salve, ho bisogno del vostro aiuto su un progetto.
Sto utilizzando un arduino Uno. Ho utilizzato il sensore hc-sr04 che mi misura la distanza e il sensore dht11 che mi misura la temperatura, le misure vengono visualizzate sul monitor seriale. Vorrei unire i due sketch, solo che ho un problema, da soli funzionano ma se li unisco non mi funzionano.
Grazie.

Buongiorno e benvenuto,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Come hai unito i due programmi? Ricorda che puoi avere UN solo setup() ed UN solo loop() in cui devi fari le varie cose che facevi nei due programmi separati.

Comunque, metti qui il programma che hai scritto (…mi raccomando, in conformità al regolamento, punto 7, il codice va racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> … primo a sinistra) che gli diamo un’occhiata.

Guglielmo

Salve, grazie ma ho risolto. Comunque posto lo sketch per chi ha bisogno.

#include <DHT.h>
#define TRIG_PIN 6
#define ECHO_PIN 5
DHT dht(4,DHT11);

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  digitalWrite(TRIG_PIN, LOW);
}

void loop() {
  digitalWrite(TRIG_PIN, HIGH); //imposto il pin del trig a livello logico alto
  delayMicroseconds(10); //aspetta 10 ms
  digitalWrite(TRIG_PIN, LOW);// imposto il pin del trig a livello logico basso 
  unsigned long tempo = pulseIn(ECHO_PIN, HIGH); 
  float distanza = 0.03438 * tempo / 2; //formula per calcolare la distanza
  Serial.print( "DISTANZA: "+String(distanza)+"cm"); //visualizza la distanza sul Monitor seriale
  delay(100);
  int t=dht.readTemperature(); // calcolare la distanza
  Serial.println("  TEMPERATURA:" + String(t)+ "°C"); //visualizza la temperatura sul Monitor seriale
  delay(100);      
}

Evita sempre la classe String, tanto più se non è necessaria.

#include <DHT.h>
#define TRIG_PIN 6
#define ECHO_PIN 5
DHT dht(4,DHT11);

void setup() 
{
  Serial.begin(9600);
  dht.begin();
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  digitalWrite(TRIG_PIN, LOW);
}

void loop() 
{
  digitalWrite(TRIG_PIN, HIGH); // imposto il pin del trig a livello logico alto
  delayMicroseconds(10); //aspetta 10 us
  digitalWrite(TRIG_PIN, LOW);// imposto il pin del trig a livello logico basso
  unsigned long tempo = pulseIn(ECHO_PIN, HIGH);
  float distanza = 0.01719 * tempo; // formula per calcolare la distanza in centimetri (a circa 21°C)
  int t=dht.readTemperature(); // Legge la temperatura

  Serial.print("DISTANZA: "); Serial.print(distanza); Serial.println("cm"); // visualizza la distanza sul Monitor seriale
  delay(100);
  Serial.print("  TEMPERATURA:"; Serial.print(t); Serial.println("°C"); // visualizza la temperatura sul Monitor seriale
  delay(100);     
}