Arduino nano ESP32 con DS18B20

Buona sera a tutti, ho un problema con una scheda arduino nano esp32 sulla quale non riesco a far funzionare un sensore di temperatura DS18B20; premetto che il sensore funziona benissimo sia su arduino R4minima che versione wifi e su un microcontrollore esp32 wroom wifi. ho provato ogni soluzione che si trova in rete sia con librerie alternative, collegamenti classici o parassita ma su quella scheda propio non riesco a farlo funzionare.
il codice che uso è questo

#include <OneWire.h>
#include <DallasTemperature.h>
 
#define ONE_WIRE_BUS 4
 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
 
void setup() {
  Serial.begin(9600);
  sensors.begin();
}
 
void loop() {
  sensors.requestTemperatures();
  float temperature = sensors.getTempCByIndex(0);
  printTemperature("Temperature", temperature);
  delay(1000);
}
 
void printTemperature(String label, float value) {
  if (value != DEVICE_DISCONNECTED_C) {
    Serial.println(label + ": " + String(value) + "°C");
  } else {
    Serial.println("Impossibile rilevare la temperatura");
  }
}

i collegamenti sono:
+3,3 al cavo rosso
GND al cavo nero
Segnale al pin 4
resistore da 4,7 ohm tra segnale e positivo

Grazie in anticipo

Ti segnalo che, nella sezione in lingua Inglese, si può scrivere solo in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana.

Grazie.

A quanto detto da pert aggiungo ...

... cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO della sezione Italiana del forum, (... e, per evitare future possibili discussioni/incomprensioni, prestando sempre molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

chiedo scusa per gli errori; dovrei aver fatto la dovuta presentazione. grazie per la comprensione

1 Like

Ma quindi cosa succede?

Ti stampa : Impossibile rilevare la temperatura
Continuamente?

si esatto, ho provato anche i codici di prova delle librerie ma il risultato è sempre uguale, mentre se lo collego ad una esp32 wroom o una r4 funziona perfettamete

Credo di aver risolto ma non capisco


Spulciando tra le varie sezioni ho recuperato questa foto; se il pin a cui è collegato il sensore lo dichiaro "#define ONE_WIRE_BUS 4" (piedinatura arduino nano) il sensore non viene letto; invece se dichiaro "#define ONE_WIRE_BUS 7"(piedinatura ESP32) il sensore funziona senza problemi.
Ho fatto anche la seguente prova per controllare se la lettura del sensore era corretta ed ho configurato anche un dht11 e le temperature coincidono.
Il pin del dht11 però l'ho dichiarato "#define DHTPIN 5" e funziona.Ora ho nello nello stesso codice un pin è dicharato seguendo la piedinatura arduino NANO e uno seguendo la piedinatura ESP32; funziona tutto e non ci sono conflitti ma non capisco la seguente differenza:
perchè DHT11 SoilMonsture Encoder funzionano dichiarando i pin "normalmente" mentre per il DS18B20 il pin deve essere denominato usando la piedinatura ESP32?