MODBUS RTU ARDUINO + PCF8574 - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T11:41:22Zhttps://labdegaragem.com/forum/topics/modbus-rtu-arduino-pcf8574?commentId=6223006%3AComment%3A708427&xg_source=activity&feed=yes&xn_auth=noBoa noite,
Achei um erro ! E…tag:labdegaragem.com,2019-05-16:6223006:Comment:7084882019-05-16T22:19:46.611ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Boa noite, </p>
<p>Achei um erro ! Esta faltando uma linha de programa :</p>
<p></p>
<p><strong>PCF8574::DigitalInput val2 = PCF_22.digitalReadAll();</strong></p>
<p>if (val2.p0==HIGH){regBank.set(10009, 1);} else {regBank.set(10009, 0);}<br></br> if (val2.p1==HIGH){regBank.set(10010, 1);} else {regBank.set(10010, 0);}<br></br> if (val2.p2==HIGH){regBank.set(10011, 1);} else {regBank.set(10011, 0);}<br></br> if (val2.p3==HIGH){regBank.set(10012, 1);} else {regBank.set(10012, 0);}<br></br> if…</p>
<p>Boa noite, </p>
<p>Achei um erro ! Esta faltando uma linha de programa :</p>
<p></p>
<p><strong>PCF8574::DigitalInput val2 = PCF_22.digitalReadAll();</strong></p>
<p>if (val2.p0==HIGH){regBank.set(10009, 1);} else {regBank.set(10009, 0);}<br/> if (val2.p1==HIGH){regBank.set(10010, 1);} else {regBank.set(10010, 0);}<br/> if (val2.p2==HIGH){regBank.set(10011, 1);} else {regBank.set(10011, 0);}<br/> if (val2.p3==HIGH){regBank.set(10012, 1);} else {regBank.set(10012, 0);}<br/> if (val2.p4==HIGH){regBank.set(10013, 1);} else {regBank.set(10013, 0);}<br/> if (val2.p5==HIGH){regBank.set(10014, 1);} else {regBank.set(10014, 0);}<br/> if (val2.p6==HIGH){regBank.set(10015, 1);} else {regBank.set(10015, 0);}<br/> if (val2.p7==HIGH){regBank.set(10016, 1);} else {regBank.set(10016, 0);}</p> Boa tarde José G.
Segue link…tag:labdegaragem.com,2019-05-16:6223006:Comment:7084762019-05-16T17:22:28.919ZFernando Martins Zequinhttps://labdegaragem.com/profile/FernandoMartinsZequin
<p>Boa tarde José G.</p>
<p></p>
<p>Segue link das bibliotecas:</p>
<p></p>
<p><a href="https://github.com/FlyingLotus1983/arduino-modbus-slave">https://github.com/FlyingLotus1983/arduino-modbus-slave</a></p>
<p></p>
<p>Obg.</p>
<p>Boa tarde José G.</p>
<p></p>
<p>Segue link das bibliotecas:</p>
<p></p>
<p><a href="https://github.com/FlyingLotus1983/arduino-modbus-slave">https://github.com/FlyingLotus1983/arduino-modbus-slave</a></p>
<p></p>
<p>Obg.</p> Boa tarde Fernando,
Então o…tag:labdegaragem.com,2019-05-16:6223006:Comment:7083702019-05-16T15:30:35.693ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Boa tarde Fernando, </p>
<p>Então o seu problema esta em usar a biblioteca ModBus!</p>
<p>Informe os links das bibliotecas.</p>
<p>Boa tarde Fernando, </p>
<p>Então o seu problema esta em usar a biblioteca ModBus!</p>
<p>Informe os links das bibliotecas.</p> Bom dia José Gustavo,
Sim, e…tag:labdegaragem.com,2019-05-16:6223006:Comment:7082722019-05-16T11:26:01.784ZFernando Martins Zequinhttps://labdegaragem.com/profile/FernandoMartinsZequin
<p>Bom dia José Gustavo,</p>
<p></p>
<p>Sim, está certo e funciona!</p>
<p>Meu problema não está me ler as portas do PCF e sim em setar o estado delas nos regBank.set.</p>
<p>A partir do PCF 0x21 onde é a sequencia das portas 09 a 16, estas portas não são setas no regBank.set (10009) até regBank.set (10016) conforme estados (0 / 1). </p>
<p>Ao ler as portas do PCF 0x20, estas são setados nas regBank.set (10001) até regBank.set (10008), ou seja, não tenho problemas em ler as portas dos PCF´s,…</p>
<p>Bom dia José Gustavo,</p>
<p></p>
<p>Sim, está certo e funciona!</p>
<p>Meu problema não está me ler as portas do PCF e sim em setar o estado delas nos regBank.set.</p>
<p>A partir do PCF 0x21 onde é a sequencia das portas 09 a 16, estas portas não são setas no regBank.set (10009) até regBank.set (10016) conforme estados (0 / 1). </p>
<p>Ao ler as portas do PCF 0x20, estas são setados nas regBank.set (10001) até regBank.set (10008), ou seja, não tenho problemas em ler as portas dos PCF´s, meu problema é pq não setam as regBank.set (10009) até regBank.set (10016).</p>
<p></p>
<p></p>
<p></p>
<p></p> Boa noite,
Você configurou…tag:labdegaragem.com,2019-05-15:6223006:Comment:7084402019-05-15T21:44:31.556ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Boa noite, </p>
<p></p>
<p><strong>Você configurou as portas com id = 0 até 7.</strong></p>
<p>for(byte i=0;i<8;i++)</p>
<p>{<br></br> PCF_20.pinMode(i, INPUT); <br></br> PCF_21.pinMode(i, INPUT);<br></br> PCF_23.pinMode(i, INPUT); <br></br> PCF_24.pinMode(i, INPUT);<br></br> }</p>
<p></p>
<p><strong>E depois quer ler as portas com identificação P0, P1,etc ??</strong></p>
<p><strong>Esta certo isso?</strong></p>
<p></p>
<p>// CI Leitura de Chaves em Modo Automático (01 a 08)…</p>
<p><br></br></p>
<p>Boa noite, </p>
<p></p>
<p><strong>Você configurou as portas com id = 0 até 7.</strong></p>
<p>for(byte i=0;i<8;i++)</p>
<p>{<br/> PCF_20.pinMode(i, INPUT); <br/> PCF_21.pinMode(i, INPUT);<br/> PCF_23.pinMode(i, INPUT); <br/> PCF_24.pinMode(i, INPUT);<br/> }</p>
<p></p>
<p><strong>E depois quer ler as portas com identificação P0, P1,etc ??</strong></p>
<p><strong>Esta certo isso?</strong></p>
<p></p>
<p>// CI Leitura de Chaves em Modo Automático (01 a 08)</p>
<p><br/> PCF8574::DigitalInput val = PCF_20.digitalReadAll();</p>
<p><br/> if (val.p0==HIGH){regBank.set(10001, 1);} else {regBank.set(10001, 0);}<br/> if (val.p1==HIGH){regBank.set(10002, 1);} else {regBank.set(10002, 0);}<br/> if (val.p2==HIGH){regBank.set(10003, 1);} else {regBank.set(10003, 0);}<br/> if (val.p3==HIGH){regBank.set(10004, 1);} else {regBank.set(10004, 0);}<br/> if (val.p4==HIGH){regBank.set(10005, 1);} else {regBank.set(10005, 0);}<br/> if (val.p5==HIGH){regBank.set(10006, 1);} else {regBank.set(10006, 0);}<br/> if (val.p6==HIGH){regBank.set(10007, 1);} else {regBank.set(10007, 0);}<br/> if (val.p7==HIGH){regBank.set(10008, 1);} else {regBank.set(10008, 0);}</p>
<p></p>
<p>Referência :</p>
<p><a href="https://github.com/xreef/PCF8574_library/blob/master/examples/readAll_Interrupt/readAll_Interrupt.ino">https://github.com/xreef/PCF8574_library/blob/master/examples/readAll_Interrupt/readAll_Interrupt.ino</a></p>
<p></p> Boa tarde,
Primeiro passo ,…tag:labdegaragem.com,2019-05-15:6223006:Comment:7082612019-05-15T20:11:19.935ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Boa tarde, </p>
<p>Primeiro passo , recomendo que estude a biblioteca :</p>
<p><a rel="nofollow" href="https://github.com/xreef/PCF8574_library">https://github.com/xreef/PCF8574_library</a></p>
<p></p>
<p>Você vai usar o pino de INT do PCF8574 para gerar interrupção no Arduino?</p>
<p>Boa tarde, </p>
<p>Primeiro passo , recomendo que estude a biblioteca :</p>
<p><a rel="nofollow" href="https://github.com/xreef/PCF8574_library">https://github.com/xreef/PCF8574_library</a></p>
<p></p>
<p>Você vai usar o pino de INT do PCF8574 para gerar interrupção no Arduino?</p> Configuro como entrada 02 PCF…tag:labdegaragem.com,2019-05-14:6223006:Comment:7084272019-05-14T19:57:54.197ZFernando Martins Zequinhttps://labdegaragem.com/profile/FernandoMartinsZequin
<p>Configuro como entrada 02 PCF8574 onde eu leio estado 0 ou 1. Está certo?</p>
<p>Configuro como entrada 02 PCF8574 onde eu leio estado 0 ou 1. Está certo?</p> Você informou que era uma ent…tag:labdegaragem.com,2019-05-14:6223006:Comment:7085142019-05-14T19:00:02.388ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Você informou que era uma entrada e que mudou o estado dela. Esta incorreto isso. </p>
<p>Você informou que era uma entrada e que mudou o estado dela. Esta incorreto isso. </p> Sei que podemos configurar as…tag:labdegaragem.com,2019-05-14:6223006:Comment:7085132019-05-14T18:48:44.707ZFernando Martins Zequinhttps://labdegaragem.com/profile/FernandoMartinsZequin
<p>Sei que podemos configurar as portas do PCF8574 como entrada ou saída.</p>
<p> Eu tenho 06 CI´s PCF8574 no barramento, configurei 04 deles sendo os pinos de entrada e 02 CI´s como saídas de 5V.</p>
<p>Anexei meu codigo para visualizar como foi feito. </p>
<p></p>
<p>Sei que podemos configurar as portas do PCF8574 como entrada ou saída.</p>
<p> Eu tenho 06 CI´s PCF8574 no barramento, configurei 04 deles sendo os pinos de entrada e 02 CI´s como saídas de 5V.</p>
<p>Anexei meu codigo para visualizar como foi feito. </p>
<p></p> Não entendi -
quando eu colo…tag:labdegaragem.com,2019-05-14:6223006:Comment:7085122019-05-14T18:45:10.014ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Não entendi - </p>
<p><span>quando eu coloco a entrada P0 do PCF 0x21 como nivel alto (5V) no programa eu preciso setar a função regBank.set(10009), 1; e quando deixo nivel baixo (0V) devo setar regBank.set(10009), 0;</span></p>
<p></p>
<p><span>Para mudar o estado de uma porta do PCF8574, ele tem que ser uma saída e não uma entrada. </span></p>
<p></p>
<p>Não entendi - </p>
<p><span>quando eu coloco a entrada P0 do PCF 0x21 como nivel alto (5V) no programa eu preciso setar a função regBank.set(10009), 1; e quando deixo nivel baixo (0V) devo setar regBank.set(10009), 0;</span></p>
<p></p>
<p><span>Para mudar o estado de uma porta do PCF8574, ele tem que ser uma saída e não uma entrada. </span></p>
<p></p>