Arduino Reinicia apos perda de conexao! - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T08:26:56Zhttps://labdegaragem.com/forum/topics/arduino-reinicia-apos-perda-de-conexao?xg_source=activity&id=6223006%3ATopic%3A632059&feed=yes&xn_auth=noBom dia Eduardo!
Sobre a con…tag:labdegaragem.com,2017-09-15:6223006:Comment:6347392017-09-15T14:01:31.465ZAislan Silva Costahttps://labdegaragem.com/profile/AislanSilvaCosta
Bom dia Eduardo!<br />
<br />
Sobre a conexão serial, se eu deixa-la sempre aberta, no programa java da erro, porque usando o método i/o serial ha um buffer que guarda o que foi escrito ou lido, e só se perde quando fecha a conexão, ou seja, se eu tentar ler ou enviar um dado, em seguida do outro sem antes fechar a porta da erro. De toda maneira, não poderia deixar a porta aberta porque, exemplo, sensor de rpm enviando valores para o java ao mesmo tempo que os sensores de temperatura, e ,de repente troco…
Bom dia Eduardo!<br />
<br />
Sobre a conexão serial, se eu deixa-la sempre aberta, no programa java da erro, porque usando o método i/o serial ha um buffer que guarda o que foi escrito ou lido, e só se perde quando fecha a conexão, ou seja, se eu tentar ler ou enviar um dado, em seguida do outro sem antes fechar a porta da erro. De toda maneira, não poderia deixar a porta aberta porque, exemplo, sensor de rpm enviando valores para o java ao mesmo tempo que os sensores de temperatura, e ,de repente troco de marcha. Nessa situacao como o alguem receberia as informações com atrazos ate valores alterados. Então eu que não tinha entend…tag:labdegaragem.com,2017-09-14:6223006:Comment:6345142017-09-14T17:54:45.010ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>Então eu que não tinha entendido a duvida e continuo não entendendo.</p>
<p>A conexão serial é ponto a ponto. Vc abre no inicio da aplicação e fecha quando sai da aplicação. Não se fica abrindo e fechando o tempo todo.</p>
<p>Vc tem 1 microcontrolador e 1 PC, precisa de uma interface serial... ?</p>
<p>Se tem outro dispositivo serial, por ex um sensor que é serial e precisa também ser ligado ao microcontrolador vc precisa de uma segunda serial. Se não tem em hardware (como no Mega) vc pode…</p>
<p>Então eu que não tinha entendido a duvida e continuo não entendendo.</p>
<p>A conexão serial é ponto a ponto. Vc abre no inicio da aplicação e fecha quando sai da aplicação. Não se fica abrindo e fechando o tempo todo.</p>
<p>Vc tem 1 microcontrolador e 1 PC, precisa de uma interface serial... ?</p>
<p>Se tem outro dispositivo serial, por ex um sensor que é serial e precisa também ser ligado ao microcontrolador vc precisa de uma segunda serial. Se não tem em hardware (como no Mega) vc pode usar uma em software (softserial).</p>
<p></p> Eduardo, procurei me informar…tag:labdegaragem.com,2017-09-14:6223006:Comment:6341162017-09-14T03:44:39.123ZAislan Silva Costahttps://labdegaragem.com/profile/AislanSilvaCosta
<p>Eduardo, procurei me informar sobre os três métodos mas acho que, se intendo bem não me ajudaram, vou te explicar melhor a situação. O projeto em questão e um computador de bordo. Já tenho sensores para a marcha, rmp, freio de mao, temperaturas e voltagens. Os sensores no Arduíno fica constantemente vendo esses valores sem interrupção e enviam pela serial ate um programa java. Essa conexão, tem que ficar aberta todo o tempo de execução do aplicativo para que as informacoes na interface…</p>
<p>Eduardo, procurei me informar sobre os três métodos mas acho que, se intendo bem não me ajudaram, vou te explicar melhor a situação. O projeto em questão e um computador de bordo. Já tenho sensores para a marcha, rmp, freio de mao, temperaturas e voltagens. Os sensores no Arduíno fica constantemente vendo esses valores sem interrupção e enviam pela serial ate um programa java. Essa conexão, tem que ficar aberta todo o tempo de execução do aplicativo para que as informacoes na interface gráfica sejam visualizadas em tempo real, pois não faria sentido ver o rpm do carro três segundos apos a a leitura. Com isso, esses loops aberto, se eu tentar fazer outra tarefa, como ligar o som, a potencia(que também esta ligada na placa) da erro, pois outra conexão serial já esta aberta. Pelas minhas pesquisas o único modo seria uma conexão serial extra, no caso usando a biblioteca softwareserial que cria uma conexão serial a mais utilizando dois pinos do Arduíno. Ainda não experimentei porque estou sem o cabo ttl, mas acho que funciona sim, mas por esta solução, não me cairia bem, porque para cada loop deveria ter uma conexão serial extra, porque uma deveria estar sempre livre, no caso, rmp, troca de marcha, voltagem, temperaturas , esses sensores iriam que ter uma conexão serial própria o que me gastaria muitos cabos, fios e portas seriais. O que acha? Estou complicando um problema relativamente facil? Ha outro modo mais simples de obter essas informacoes? E possível por exemplo ter mais de uma porta serial para uma única conexão?</p> Tem varios caminhos para a qu…tag:labdegaragem.com,2017-09-14:6223006:Comment:6340272017-09-14T00:31:42.504ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>Tem varios caminhos para a questão da serial. Cito 3:<br></br> 1) criar uma rotina de tratamento. Algo que começa com o if() de se veio caracter e se veio trata, se não veio finaliza.<br></br> Aih em todos os pequenos loops e momentos de espera espalhados pelo programa vc roda essa rotina.<br></br> Costumo fazer um "leserial()" por ex. aih sempre fico chamando. Chamo por ex de dentro de uma rotina de escrita no LCD, etc. Assim o tempo todo vc verifica sem ficar preso a um loop.</p>
Se fizer um…
<p>Tem varios caminhos para a questão da serial. Cito 3:<br/> 1) criar uma rotina de tratamento. Algo que começa com o if() de se veio caracter e se veio trata, se não veio finaliza.<br/> Aih em todos os pequenos loops e momentos de espera espalhados pelo programa vc roda essa rotina.<br/>
Costumo fazer um "leserial()" por ex. aih sempre fico chamando. Chamo por ex de dentro de uma rotina de escrita no LCD, etc. Assim o tempo todo vc verifica sem ficar preso a um loop.</p>
Se fizer um delay(100) troca por<br/>
for(int x=0;x!=90;x++) {delay(1); leserial();}<br/>
<br />
<br />
<p>2) usando interrupções. O ideal seria usar a interrupção da serial.<br/> <a rel="nofollow" href="https://www.arduino.cc/en/Tutorial/SerialEvent" target="_blank">https://www.arduino.cc/en/Tutorial/SerialEvent</a><br/> Não sei pq em outros microcontroladores é muito comum o uso de interrupção para a serial, no Arduino não. Acho que já é hora de começar a aproveitar esses recursos.</p>
<br />
<br />
<p>3) criando mais de um main(). Sim isso é possivel. Veja isso:<br/> <a rel="nofollow" href="https://www.arduino.cc/en/Tutorial/MultipleBlinks" target="_blank">https://www.arduino.cc/en/Tutorial/MultipleBlinks</a><br/> Mais um recurso que não vejo ninguém usar. Uma turbina na roda...<br/>
Nunca usei...hehehe. Com não me acostumei a ter me viro sem mesmo.</p> " Estou com um arduino uno, e…tag:labdegaragem.com,2017-09-13:6223006:Comment:6336992017-09-13T13:16:38.102ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p><span>" Estou com um arduino uno, ele e energizado via fonte externa e possui conexão com um computador, porem sempre que desconecto o cabo usb ele reinicia"</span></p>
<p></p>
<p><span>Esse é um comportamento normal, como já explicado pelo Eduardo Marcondes. </span></p>
<p><span>" Estou com um arduino uno, ele e energizado via fonte externa e possui conexão com um computador, porem sempre que desconecto o cabo usb ele reinicia"</span></p>
<p></p>
<p><span>Esse é um comportamento normal, como já explicado pelo Eduardo Marcondes. </span></p> Bom Dia obrigado pelo contato…tag:labdegaragem.com,2017-09-13:6223006:Comment:6336972017-09-13T12:11:27.024ZAislan Silva Costahttps://labdegaragem.com/profile/AislanSilvaCosta
<p>Bom Dia obrigado pelo contato! Dei uma pesquisada e vi como funciona. Tenho aqui um ftdi que usava num automatuon board, segundo o que vi por alto numas pesquisas que fiz e só conectar o RX e o TX do ftdi em qualquer uma das saídas digitais do uno, e usando da biblioteca softserial</p>
<p>Bom Dia obrigado pelo contato! Dei uma pesquisada e vi como funciona. Tenho aqui um ftdi que usava num automatuon board, segundo o que vi por alto numas pesquisas que fiz e só conectar o RX e o TX do ftdi em qualquer uma das saídas digitais do uno, e usando da biblioteca softserial</p> Bom dia amigo tudo bem. Para…tag:labdegaragem.com,2017-09-13:6223006:Comment:6338932017-09-13T10:31:11.289Zrhaicmer braulio da costahttps://labdegaragem.com/profile/rhaicmerbrauliodacosta
<p>Bom dia amigo tudo bem. <br/> Para resolver esse problema na placa uno, crie uma serial virtual e ligue um conversor ttl/usb(tipo ftdi por exemplo). Isso resolve o problema de reinicialização ao abrir serial. Fisicamente ligado na placa uno, como nosso amigo FH disse, o DTR reinicia o uC.<br/> Caso você for montar um arduino stand alone, o ftdi pode ser ligado diretamente no pino 0 e 1 sem problemas, desde que você não ligue o DTR.<br/>
Espero ter ajudado.</p>
<p>Bom dia amigo tudo bem. <br/> Para resolver esse problema na placa uno, crie uma serial virtual e ligue um conversor ttl/usb(tipo ftdi por exemplo). Isso resolve o problema de reinicialização ao abrir serial. Fisicamente ligado na placa uno, como nosso amigo FH disse, o DTR reinicia o uC.<br/> Caso você for montar um arduino stand alone, o ftdi pode ser ligado diretamente no pino 0 e 1 sem problemas, desde que você não ligue o DTR.<br/>
Espero ter ajudado.</p> Todas as vezes que a conexão…tag:labdegaragem.com,2017-09-13:6223006:Comment:6338882017-09-13T04:52:42.231ZFlavio Hernanhttps://labdegaragem.com/profile/FlavioHernan
Todas as vezes que a conexão serial for aberta, o DTR pulsa e reinicia o MCU.<br />
<br />
Mesmo sem o DTR é possível gravar o microcontrolador, mas é necessário saber o momento certo para apertar o botão de reset ou ficar segurando até o momento que for feito o upload e depois soltar.
Todas as vezes que a conexão serial for aberta, o DTR pulsa e reinicia o MCU.<br />
<br />
Mesmo sem o DTR é possível gravar o microcontrolador, mas é necessário saber o momento certo para apertar o botão de reset ou ficar segurando até o momento que for feito o upload e depois soltar. Obrigado pelo contato Eduardo…tag:labdegaragem.com,2017-09-13:6223006:Comment:6336882017-09-13T01:07:07.615ZAislan Silva Costahttps://labdegaragem.com/profile/AislanSilvaCosta
Obrigado pelo contato Eduardo, quando eu tiver certeza do código totalmente pronto e testado para não necessitar mais alterações eu faca o procedimento, agora sobre a conexão serial tem alguma dica? A comunicação e entre java e Arduíno, e necessito deixar alguns loops rodando verificando constantemente alguns sensores. Porem esses loops ocupam a serial e não poderia deixar a seria ocupada só com um loop, o que posso fazer?
Obrigado pelo contato Eduardo, quando eu tiver certeza do código totalmente pronto e testado para não necessitar mais alterações eu faca o procedimento, agora sobre a conexão serial tem alguma dica? A comunicação e entre java e Arduíno, e necessito deixar alguns loops rodando verificando constantemente alguns sensores. Porem esses loops ocupam a serial e não poderia deixar a seria ocupada só com um loop, o que posso fazer? O Arduino original:
https://w…tag:labdegaragem.com,2017-09-13:6223006:Comment:6338792017-09-13T00:58:50.289ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>O Arduino original:</p>
<p><a href="https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf" target="_blank">https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf</a></p>
<p>Possui uma ligação entre o microcontrolador que auxilia na gravaçao e o reset do arduino.</p>
<p>Suponho que o chines (todos) também.</p>
<p>O mais popular hj em dia é o:</p>
<p><a href="https://i.stack.imgur.com/Rm50J.jpg" target="_blank">https://i.stack.imgur.com/Rm50J.jpg</a></p>
<p>Veja…</p>
<p>O Arduino original:</p>
<p><a href="https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf" target="_blank">https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf</a></p>
<p>Possui uma ligação entre o microcontrolador que auxilia na gravaçao e o reset do arduino.</p>
<p>Suponho que o chines (todos) também.</p>
<p>O mais popular hj em dia é o:</p>
<p><a href="https://i.stack.imgur.com/Rm50J.jpg" target="_blank">https://i.stack.imgur.com/Rm50J.jpg</a></p>
<p>Veja que o pino DTR da serial está ligado ao reset.</p>
<p>O DTR é pulsado durante o boot. Faz parte do protocolo de identificação de perifericos (Plug&Pray).</p>
<p>Por isso sempre que vc der um boot no micro vai dar boot no seu dispositivo.</p>
<p>Se vc não quer isso, desligue o reset do dtr. Só que não mais poderá gravar o microcontrolador, só "conversar". </p>
<p>Obs: Plug&Play foi escrito de forma errada intencionalmente.</p>