[Ajuda] Leitura incorreta do encoder - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-19T04:04:19Zhttps://labdegaragem.com/forum/topics/ajuda-leitura-incorreta-do-encoder?commentId=6223006%3AComment%3A607964&feed=yes&xn_auth=noConsegui resolver!
O problema…tag:labdegaragem.com,2017-04-29:6223006:Comment:6098222017-04-29T16:26:51.525ZFred Prateshttps://labdegaragem.com/profile/FredPrates
<p>Consegui resolver!</p>
<p>O problema era no código onde eu estava iniciando a interrupção com um dos argumentos errado.</p>
<p></p>
<p>Era: attachInterrupt(0, contador, FALLING);</p>
<p>Ficou: attachInterrupt(digitalPinToInterrupt(pino_SenOP), contador, FALLING);</p>
<p>Onde o primeiro argumento é o pino configurado para interrupção (No caso do UNO vc pode usar o d2 e o d3).</p>
<p>Segundo é o método de rotina, que no meu caso é um contador de pulso.</p>
<p>Terceiro é quando ocorre. No meu…</p>
<p>Consegui resolver!</p>
<p>O problema era no código onde eu estava iniciando a interrupção com um dos argumentos errado.</p>
<p></p>
<p>Era: attachInterrupt(0, contador, FALLING);</p>
<p>Ficou: attachInterrupt(digitalPinToInterrupt(pino_SenOP), contador, FALLING);</p>
<p>Onde o primeiro argumento é o pino configurado para interrupção (No caso do UNO vc pode usar o d2 e o d3).</p>
<p>Segundo é o método de rotina, que no meu caso é um contador de pulso.</p>
<p>Terceiro é quando ocorre. No meu projeto vai ser nas bordas de descida.</p>
<p></p>
<p>A precisão ainda não é 100%, mas pelo menos está dentro do aceitável.</p> Rui,
Segui seu conselho e fiz…tag:labdegaragem.com,2017-04-19:6223006:Comment:6081192017-04-19T23:52:10.079ZFred Prateshttps://labdegaragem.com/profile/FredPrates
<p>Rui,</p>
<p>Segui seu conselho e fiz um teste de código mínimo...</p>
<p>E também retirei a roda (evitar interferência do atrito com o chão) e alinhei bem o disco encoder entre o emissor e receptor do sensor óptico. Conclusões:</p>
<p>"analogWrite( pino_B_IA, 255-PWM )"</p>
<p>PWM = 110 => analogWrite( pino_B_IA, 145)</p>
<p></p>
<p>Se D0 liga no pino Dig2, então 1 volta = 75 pulsos</p>
<p>Se D0 liga no pino Dig3, então 1 volta = 110 pulsos (Bizarro isso)</p>
<p>Muitas vezes ele conta 75…</p>
<p>Rui,</p>
<p>Segui seu conselho e fiz um teste de código mínimo...</p>
<p>E também retirei a roda (evitar interferência do atrito com o chão) e alinhei bem o disco encoder entre o emissor e receptor do sensor óptico. Conclusões:</p>
<p>"analogWrite( pino_B_IA, 255-PWM )"</p>
<p>PWM = 110 => analogWrite( pino_B_IA, 145)</p>
<p></p>
<p>Se D0 liga no pino Dig2, então 1 volta = 75 pulsos</p>
<p>Se D0 liga no pino Dig3, então 1 volta = 110 pulsos (Bizarro isso)</p>
<p>Muitas vezes ele conta 75 pulsos, mas não concluiu a volta.</p>
<p>Substitui o sensor óptico por outro igual...</p>
<p>Se D0 liga no pino Dig2, então 1 volta = 75 pulsos</p>
<p>Se D0 liga no pino Dig3, então 1 volta = 140 pulsos...</p>
<p></p>
<p>PWM = 190 => analogWrite( pino_B_IA, 65 )</p>
<p>Se D0 liga no pino Dig2, então 1 volta = 62 pulsos</p>
<p>O sistema está totalmente imprevisível no momento =(</p> Primeiro teste :
Gire o disco…tag:labdegaragem.com,2017-04-19:6223006:Comment:6079642017-04-19T23:36:55.954ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Primeiro teste :</p>
<p>Gire o disco ótico com a mão e conte os pulsos com o seu programa .</p>
<p>A fresta do emissor ou do sensor otico é estreita o bastante para captar apenas um pulso quando o buraco do disco ótico passa entre eles?</p>
<p></p>
<p>RPM = RPS x 60</p>
<p>Uma rotação = 20 pulsos . </p>
<p>1 RPM = 3 pulsos/segundo - correto ?</p>
<p>Primeiro teste :</p>
<p>Gire o disco ótico com a mão e conte os pulsos com o seu programa .</p>
<p>A fresta do emissor ou do sensor otico é estreita o bastante para captar apenas um pulso quando o buraco do disco ótico passa entre eles?</p>
<p></p>
<p>RPM = RPS x 60</p>
<p>Uma rotação = 20 pulsos . </p>
<p>1 RPM = 3 pulsos/segundo - correto ?</p> Oi FP,
sugiro você reduzir o…tag:labdegaragem.com,2017-04-19:6223006:Comment:6079602017-04-19T22:37:49.982Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Oi FP, </p>
<p>sugiro você reduzir o code para identificar o problema do encoder.</p>
<p>Faça um code simples que gire o motor de forma lenta e tente identificar qtos pulsos o</p>
<p>arduino recebe do encoder..</p>
<p>Rui</p>
<p></p>
<p>Oi FP, </p>
<p>sugiro você reduzir o code para identificar o problema do encoder.</p>
<p>Faça um code simples que gire o motor de forma lenta e tente identificar qtos pulsos o</p>
<p>arduino recebe do encoder..</p>
<p>Rui</p>
<p></p> Qual é a rotação (RPM) desse…tag:labdegaragem.com,2017-04-19:6223006:Comment:6081082017-04-19T22:23:49.645ZFred Prateshttps://labdegaragem.com/profile/FredPrates
<p><span><strong>Qual é a rotação (RPM) desse motor ?</strong> Acredito que a velocidade de rotação esteja ligada ao PWM. Não fiz medições, mas considero, da forma como estou usando, como rápida.</span></p>
<p><span><span><strong>Como consegue identificar que uma volta corresponde à 70 pulsos?</strong> A velha técnica da tentativa e erro (empiricamente). E também para confirmar o número usei um print fora da rotina de interrupt.</span></span></p>
<p><span><span><span><strong>Acho interessante…</strong></span></span></span></p>
<p><span><strong>Qual é a rotação (RPM) desse motor ?</strong> Acredito que a velocidade de rotação esteja ligada ao PWM. Não fiz medições, mas considero, da forma como estou usando, como rápida.</span></p>
<p><span><span><strong>Como consegue identificar que uma volta corresponde à 70 pulsos?</strong> A velha técnica da tentativa e erro (empiricamente). E também para confirmar o número usei um print fora da rotina de interrupt.</span></span></p>
<p><span><span><span><strong>Acho interessante que envie uma foto visível da sua montagem - encoder + disco ótico.</strong> Feito. O D0(fio azul) do sensor vai no Digital 2 do arduino.</span></span></span></p> Qual é a rotação (RPM) desse…tag:labdegaragem.com,2017-04-19:6223006:Comment:6079542017-04-19T22:05:26.765ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Qual é a rotação (RPM) desse motor ? É bem lento?</p>
<p>Como consegue identificar que uma volta corresponde à 70 pulsos?</p>
<p>Acho interessante que envie uma foto visível da sua montagem - encoder + disco ótico.</p>
<p></p>
<p>Qual é a rotação (RPM) desse motor ? É bem lento?</p>
<p>Como consegue identificar que uma volta corresponde à 70 pulsos?</p>
<p>Acho interessante que envie uma foto visível da sua montagem - encoder + disco ótico.</p>
<p></p> Feito. Obrigado.tag:labdegaragem.com,2017-04-19:6223006:Comment:6078762017-04-19T21:59:29.379ZFred Prateshttps://labdegaragem.com/profile/FredPrates
<p>Feito. Obrigado.</p>
<p>Feito. Obrigado.</p> Boa noite FP,
sugestão:
Remov…tag:labdegaragem.com,2017-04-19:6223006:Comment:6080382017-04-19T21:53:12.939Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Boa noite FP,</p>
<p>sugestão:</p>
<p>Remova o code que colou na área de texto e anexe como arquivo.</p>
<p>Rui</p>
<p>Boa noite FP,</p>
<p>sugestão:</p>
<p>Remova o code que colou na área de texto e anexe como arquivo.</p>
<p>Rui</p>