Boa Tarde! Liguei 16 sensores DS18B20 em paralelo. Funcionou tudo certo porem a ordem que aparece na serial monitor não é a mesma ordem física, o sensor 1 da programação é o sensor 3 do cabo enfim o código não realiza na ordem que os sensores estão ligados. Os sensores são de difícil acesso e são muitos cabos para ir testando um por um e colocar na sua devida sequência. Existe alguma maneira do código abaixo identificar os sensores por ordem que estão ligados?

#include <OneWire.h>
#include <DallasTemperature.h>

#define DS18B20_OneWire 2

OneWire oneWire(DS18B20_OneWire);

DallasTemperature sensortemp(&oneWire);

int ndispositivos = 0;
float grausC;

void setup() {
sensortemp.begin();
Serial.begin(9600);

Serial.println("Localizando Dispositivos ...");
Serial.print("Encontrados ");
ndispositivos = sensortemp.getDeviceCount();
Serial.print(ndispositivos, DEC);
Serial.println(" dispositivos.");
Serial.println("");
}

void loop() {
sensortemp.requestTemperatures();

for (int i = 0; i < ndispositivos; i++) {
Serial.println("Graus Celsius:");
Serial.print("Sensor ");
Serial.print(i+1);
Serial.print(": ");
grausC = sensortemp.getTempCByIndex(i);
Serial.print(grausC);
Serial.println("ºC");
}

Serial.println("");
delay(1000);
}

Exibições: 114

Responder esta

Respostas a este tópico

Boa noite, 

Cada sensor DS18B20 tem um numero de série. 

Identifique-os por esse numero. 

https://randomnerdtutorials.com/esp32-plot-readings-charts-multiple/

Boa noite 2RB, (se não gosta que te chame pelas iniciais, avise),

Recomendações:
1. Remova seu sketch da área de texto do seu tópico;
2. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
3. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer com cada
linha e facilita a ajuda.
4. Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.

RV mineirin

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço