Encontrar a posição física de sensores DS18B20 em uma rede 1-wire - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T18:00:30Zhttps://labdegaragem.com/forum/topics/encontrar-a-posi-o-f-sica-de-sensores-ds18b20-em-uma-rede-1-wire?commentId=6223006%3AComment%3A872309&feed=yes&xn_auth=noBoa noite R2B,
você fez uma p…tag:labdegaragem.com,2021-07-28:6223006:Comment:8722442021-07-28T01:37:39.325Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Boa noite R2B,</p>
<p>você fez uma postagem cruzada, </p>
<p>"https://labdegaragem.com/forum/topics/posi-o-f-sica-dos-sensores-ds18b20", </p>
<p></p>
<p>não respondi no seu tópico pois recuso ajudar que não ajuda nem fazendo o mínimo pra facilitar a</p>
<p>vida de que ajuda, ou seja não postar o sketch na área de texto do tópico.</p>
<p></p>
<p>Neste caso do autor deste tópico também não ajudei pela mesma razão.</p>
<p></p>
<p>Mas como neste tópico você não postou sketch, vou dizer o que ei…</p>
<p>Boa noite R2B,</p>
<p>você fez uma postagem cruzada, </p>
<p>"https://labdegaragem.com/forum/topics/posi-o-f-sica-dos-sensores-ds18b20", </p>
<p></p>
<p>não respondi no seu tópico pois recuso ajudar que não ajuda nem fazendo o mínimo pra facilitar a</p>
<p>vida de que ajuda, ou seja não postar o sketch na área de texto do tópico.</p>
<p></p>
<p>Neste caso do autor deste tópico também não ajudei pela mesma razão.</p>
<p></p>
<p>Mas como neste tópico você não postou sketch, vou dizer o que ei sobre 1wire.</p>
<p></p>
<p>Existem duas maneiras de se comunicar com o protocolo 1wire. DB18B20 é um dispositivo 1wire.</p>
<p></p>
<p>A primeira e mais fácil é deixar a biblioteca usar o recurso de descobrir o endereço do 1wire</p>
<p>no bus.</p>
<p></p>
<p>Mas neste caso o ucontrolador vai executar um "search sequence" procurando por endereços no bus.</p>
<p>Este processo faz uma pesquisa sequencial, procurando de 1 em 1 e assim que encontra um dispositivo</p>
<p>ele lê os dados e vai para o próximo na sequência numérica, e não na sequencia física.</p>
<p></p>
<p>A segunda é um pouco mais complexa, mas você consegue fazer a leitura na sequencia física.</p>
<p>Para isto você precisa saber o endereço de cada dispositivo 1wire, e enviar o comando de leitura dos dados para o endereço que você quiser, na ordem que você quiser.</p>
<p></p>
<p>Espero ter ajudado.</p>
<p></p>
<p>RV mineirin</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p> Sua pergunta foi especificame…tag:labdegaragem.com,2021-07-28:6223006:Comment:8724172021-07-28T01:18:21.429Ztiago merceshttps://labdegaragem.com/profile/tiagomerces
<p>Sua pergunta foi especificamente com um método via software. </p>
<p>Minha resposta não irá ajudar para esta exigência, mas caso esteja em fase de desenvolvimento, utilizar um multiplexador seria uma ótima opção.</p>
<p>Sua pergunta foi especificamente com um método via software. </p>
<p>Minha resposta não irá ajudar para esta exigência, mas caso esteja em fase de desenvolvimento, utilizar um multiplexador seria uma ótima opção.</p> Boa tarde Marcio,
Não tenho…tag:labdegaragem.com,2021-07-27:6223006:Comment:8723092021-07-27T16:40:10.301ZMateus Dielhttps://labdegaragem.com/profile/MateusDiel
<p>Boa tarde Marcio,</p>
<p></p>
<p>Não tenho muito conhecimento sobre isso, mas acredito que é impossível fazer com que os sensores sejam lidos de forma linear de acordo com a instalação física, pois lembro que uma vez usando quatro sensores nas mesmas posições físicas nem sempre eles eram descobertos ordenadamente.</p>
<p></p>
<p>Acredito que a melhor opção seria criar uma estrutura onde você associe a posição com o endereço do sensor, dessa forma você teria um controle mais preciso... Mas…</p>
<p>Boa tarde Marcio,</p>
<p></p>
<p>Não tenho muito conhecimento sobre isso, mas acredito que é impossível fazer com que os sensores sejam lidos de forma linear de acordo com a instalação física, pois lembro que uma vez usando quatro sensores nas mesmas posições físicas nem sempre eles eram descobertos ordenadamente.</p>
<p></p>
<p>Acredito que a melhor opção seria criar uma estrutura onde você associe a posição com o endereço do sensor, dessa forma você teria um controle mais preciso... Mas como você tem eles em local de difícil acesso também fica complicado.</p>
<p></p>
<p>De qualquer forma, vou seguir seu tópico, vai que alguém saiba como.</p>
<p></p>
<p>Abraço!</p> Boa Tarde! tentei este código…tag:labdegaragem.com,2021-07-27:6223006:Comment:8725122021-07-27T16:18:39.254ZRael R. B.https://labdegaragem.com/profile/RaelRezendeBorges
<p>Boa Tarde! tentei este código, mas não conseguiu que a leitura dos sensores fosse na mesma posição física. Alguém conseguiu?</p>
<p>Boa Tarde! tentei este código, mas não conseguiu que a leitura dos sensores fosse na mesma posição física. Alguém conseguiu?</p> Então, eu tive um problema pa…tag:labdegaragem.com,2016-10-20:6223006:Comment:5728742016-10-20T12:11:15.977Zvinicius mayhttps://labdegaragem.com/profile/viniciusmay
<p>Então, eu tive um problema parecido. Eu notei que dependendo da forma como você chama a string lida (dependendo do seu loop de leitura) existe uma falha. Eu nao consegui entender o por que disso ocorrer, mas consegui resolver.</p>
<p></p>
<p>Eu estava usando 7 sensores, depois fui reduzindo para 3 e notei que o problema se manteve. Cada vez que o programa rodava denovo, o endereço que antes estava armazenado no vetor endereço[i] agora encontrava-se em endereço[i+1]. E notei que a cada x…</p>
<p>Então, eu tive um problema parecido. Eu notei que dependendo da forma como você chama a string lida (dependendo do seu loop de leitura) existe uma falha. Eu nao consegui entender o por que disso ocorrer, mas consegui resolver.</p>
<p></p>
<p>Eu estava usando 7 sensores, depois fui reduzindo para 3 e notei que o problema se manteve. Cada vez que o programa rodava denovo, o endereço que antes estava armazenado no vetor endereço[i] agora encontrava-se em endereço[i+1]. E notei que a cada x sensores o vetor voltava a se organizar.</p>
<p></p>
<p>Ou seja, se usasse 2 sensores, a cada duas iterações os endereços voltavam a coincidir como antes. Se usasse 7 sensores, a cada 7 iterações os valores voltavam a coincidir. Eu notei que uma string nula era printada no lugar da string original.</p>
<p></p>
<p>Basicamente corrigi da seguinte forma:</p>
<p></p>
<p>void loop()<br/>{<br/> String address[7]; //sensores <br/> int i;<br/> <br/> for (i=0; i<7; i++) //realiza leitura dos sensores<br/> {<br/> address[i] = Discovery(); //chama a funcao Discovery() que retorna uma string com o endereço.</p>
<p><br/> if(address[i] == "") //o pulo do gato!!! se a string vier 'vazia' diga que i = -1 e saia do for. Senao, continue;<br/> i=-1;<br/> } <br/> else <br/> { <br/> Serial.print("Sensor ");<br/> Serial.print(i+1);<br/> Serial.print(": ");<br/> Serial.print(address[i]);<br/> Serial.print("Temperature: ");<br/> Serial.println(Temperature(address[i]);<br/> } <br/> }//end for <br/> Serial.println("*********************************"); <br/> <br/>}//end main<br/><br/><br/></p>