Ir ao conteúdo
  • Cadastre-se

"bugs" na execução de comandos enviados do celular via Bluetooth pro Arduino [RESOLVIDO]


Posts recomendados

Vou tentar explicar como é o meu projeto e falar como é esse bug, pra ver se vocês conseguem visualizar o projeto e tentar identificar o que pode tá causando esse maldito bug kk. 
O objetivo do meu projeto é controlar um ventilador pelo celular via bluetooth e pelo botão físico (chave seletora de velocidade) já existente no ventilador. No ventilador, existe uma chave seletora que controla a velocidade do mesmo. É uma chave que possui 1 comum(que vem da rede elétrica) e 3 saídas para o ventilador. A velocidade é de acordo com cada saída. No caso é um ventilador de 3 velocidades obviamente. O que eu fiz foi seguinte: substituí a chave seletora por 3 relés. o comum da rede que vai pra chave seletora, eu desconectei da chave seletora e conectei no comum de cada relé e os fios das saídas da chave seletora que vão para o ventilador eu desconectei da chave seletora e conectei nos NA de cada relé. E no comum da chave seletora, eu conectei o GND, e as saídas da chave seletora, eu conectei em 3 portas digitais do meu Arduíno Nano. Ou seja, a chave seletora virou um periférico de entrada de dados. obs: Sabemos que são dois fios que vem da rede elétrica pro ventilador, um fio vai direto para o motor do ventilador e ou outro vai pra chave seletora e as saídas da chave seletora que vão pra o ventilador. As modificações que eu fiz foi no fio que vai para a chave seletora, o outro fio que vai direto para o motor do ventilador eu não modifiquei nada.
Usando o módulo bluetooth , eu conectei meu celular, usando um app. Assim posso realizar o controle do ventilador (regulagem de velocidade e ligar/desligar) tanto pelo celular, quanto pela própria chave seletora do mesmo.
O projeto funciona basicamente assim: Quando enviar o comando do celular ou da chave seletora pra escolher determinada velocidade ou ligar/desligar o ventilador, o arduíno vai energizar o relé responsável pela tal velocidade ou ligar/desligar o ventilador, dependendo do comando enviado do celular ou da chave seletora. Ou seja, o arduíno vai controlar os relés que são responsáveis pela regulagem de velocidade e por ligar/desligar o ventilador. Ex: se eu enviar o comando do celular ou da chave seletora pro ventilador girar na velocidade 3, o arduíno vai energizar o relé responsável por essa velocidade, conectando o fio responsável por essa velocidade a rede elétrica. E quando enviar o comando pra desligar o ventilador, o arduíno vai desenergizar todos os relés e consequentemente desligará o ventilador.  
Realizei os testes do meu projeto sem carga, e funcionou perfeitamente. Mas com carga (ventilador), fica dando "bug" no meu projeto.
Esses bugs são o seguinte: Quando mando algum comando do celular pra determinada velocidade, os 3 relés só piscam (eles ligam e desligam)...as vezes envio um comando pra energizar o relé 1, aí o relé 2 ou 3 que é energizado por exemplo, outras vezes até desliga o ventilador. Aí pra executar a ação que eu desejo, tenho que dar o comando 5 ou 6 vezes. Volto a repetir, esse bug só acontece quando o ventilador tá conectado aos relés. Sem o ventilador, os relés funcionam perfeitamente. Obs: os parâmetros (tensão e corrente) da minha carga(ventilador) estão dentro dos limites de parâmetros dos relés e esse erro só acontece quando envio os comandos pelo celular. Na chave seletora, funciona perfeitamente. 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

sua explicação foi bem completa e suficiente pra mentalizar a coisa mas levei um tempão pra ler. Se tivesse desenhado o esquema... uma imagem vale + que 1000 palavras...

 

Seguinte... Hás de colocar filtros no sistema. Algo como

-distanciar circuito de controle da potência (mc e relés)

-evitar correntes parasitas no gnd vcc do mc. Algo como ligar os drivers dos relés no gnd direto da fonte e nunca atravessar pelo gnd do mc

-capacitor de desacoplamento complementar no vcc 5V

-resistor-capacitor  nas saídas que acionam relés

-nenhuma entrada flutuando

-snubber rc nos contatos dos relés

-opto isolar e usar duas fontes

 

-etc

Ah e cuidado pra não acionar + de 1 relé ao mesmo tempo

 

Esquemas, fotos.. se não for te arrancar pedaço , ajudam placa cete num diagnóstico virtual eventual

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Muito obrigado. Vou seguir as tuas recomendações. Depois digo se deu certo.

adicionado 8 minutos depois

@Isadora Ferraz Mas não consigo entender como a minha carga tá "bugando" meu circuito de comando, já que não são conectados eletricamente... Tu podes me explicar isso?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

tentá-lo-ei... Teu (e todo) circuito opera como antena recebendo toda a sorte de sinais externos maéficos, ruídos eletro - estáticos - magnéticos, e afins. Ao acionar a carga - principalmente motor de indução - gera um campo eletromagnético. Mc são sensíveis à eles principalmente entradas como a de reset, cristal e as que ficam 'abertas' por isso te sugeri não as deixar flutuando de bobeira (aterre-as ou as configure como saída) e o mc longe da fonte de ruidos ou até mesmo opto isolado.

E se teu circuito estiver num protoboard então.. aífu deu ainda+. Não sei se ouviste direito mas te sugeri publicar fotos...

Tem uma "blindagem" que você pode fazer no sw também. Tente 1º resolver no hw. Dando ou não certo, depois eu te falo

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Desculpa pela ignorância rsrs, mas quando tu fala em distanciar o circuito e controle do circuito de potência, tu tá falando de distância física mesmo?

Em relação a capacitor de desacoplamento. É pra usá-lo no pino do Arduíno que fornece 5V pros drivers (módulo bluetooth e módulo relé)? 

E as portas que eu estou usando como entrada de dados. Preciso utilizar filtros nelas também?

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

seu diagrama não ajudou muito mas já é alguma coisa. Penso que fotos podem tornar a análise da problemática mais diagnosticável. P.ex. a correta distruibuição fisica do gnd é importante. A qualidade da alimentação também é importante. Seu carregador pode não estar colaborando.

 

Vejamos...

sim, distância física

sim, um (ou +) capacitor pra cada coisa entre vcc e gnd

não. porta de dados geralmente é de frequencia alta. o capacitor ia atrapalhar. Mas se você comunicar em velocidade baixa eu deixo você colocar um capacitor de 100...470pF entre dados e gnd

 

Que todas os ports não usados seja configurados como saída por favor. E pullups + capacitores pro gnd na chave seletora vão bem...

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Como eu faço para calcular os valores dos capacitores de desacoplamento? O cálculo dos valores do circuito resistor-capacitor das saídas que acionam os relés? E os cálculos dos circuitos snubber rc dos contatos dos relés?Ah, e não entendi o porquê de usar pullups e capacitores no GND da chave seletora...Por dois motivos, o primeiro: os resistores pullups são utilizados para uma saída de nível lógico alto (5V) e o que eu quero nas saídas da minha chave seletora é um nível lógico baixo (0V). O segundo: tu me recomendou a não utilizar capacitores nas minhas entradas, mas o GND da chave seletora vai para as minhas entradas. Então, se não for pedir muito, tu pode me explicar essa questão por favor.   

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

perdão pelo meu excesso de calos e rugas. Achei que seria de fácil compreensão. Continuemos tentando...

-capacitor na entrada de dados sequenciais como no caso do RX é prejudicial. Afinal os dados são pulsados e capacitor não se dá bem com pulsos e isso é recíproco. Ele meio que aterra o pulso. Mas um capacitor relativamente baixo (100..500pF) tende a anular somente os ruídos eventuais

-capacitor na entrada dc como no caso da sua chave rotativa não prejudica e se dá muito bem com ela. Pulsos prejudiciais que eventualmente queiram entrar na chave por outro meio que não seja a mudança de estado (p.ex. faisca, relâmpago, liquidificador ou até mesmo o que o seu rele causa), o capacitor aterra-os. Vá de 100nF

 

Pullup´s são imprescindíveis se seu mc não os tiver internamente e habilitados. Senão a saída fica flutuando indecisa.

O capacitor não altera o nível dc 5v que o pullup causa.

 

Sinto muito mas cálculos não me pertencem mais mas se rugas e calos te servirem: desacoplamento: 100nF/25V CD

snubber rc 220/400 PM / 22R 5W ou aguarde opinião de alguém de verdade. No entanto penso que este é desnecessário por enquanto.

 

Não se se já falei, mas já passou do momento fotos... Palavras quase já não são mais suficientes...

 

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz rsrsrs não precisa pedir desculpas, eu é que peço desculpas pela minha ignorância. Mas agora eu consegui entender o que tu quis dizer. Só restou uma dúvida: não consegui entender esses valores do snubber rc...Tu pode me esclarecer o que são essas especificações 220/400 PM / 22R 5W, por favor?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

perdão amigo...

220nF 400Vdc e 22 ohms 5 watts em série e o conjunto em paralelo com contatos do rele

mas antes, tenta as solucões primarias

Ah sim, mostre alguma evolução. Depois de algum sucesso me avisa que te dou dicas para alguma blindagem evitar entradas de influências de outras dimensões (vulgo ruídos) pelo sw. Mas é peneira fina. A peneira grossa deve ser feita no hw mesmo ok?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Eu segui três das suas recomendações: utilizei duas fontes, uma para o microcontrolador e outra para as bobinas dos relés, e configurei como saídas as portas do microcontrolador que não são utilizadas e escrevi LOW nelas.

Mas não melhorou...Mas percebi que os ruídos não estão vindos das bobinas dos relés e nem da comutação dos contatos dos relés. Porque os bugs só acontecem quando os fios que vem da chave seletora estão conectados nas entradas do Arduíno e quando desconectei esses fios das entradas do Arduíno, os meus comandos via bluetooth funcionaram perfeitamente. Então, eu creio que esses malditos ruídos estão vindo pelos fios da chave seletora. OBS: os pullups das portas de entradas que estou utilizando eu já os tinha habilitados.

Agora eu vou seguir as tuas outras recomendações, principalmente as que tem a ver com a chave seletora. Então, tu pode me esclarecer como deve ser feita essa ligação dos capacitores na chave seletora???

E também gostaria de saber quais os valores dos capacitores e dos resistores, do circuito RC, que devo utilizar nas saídas do Arduíno que acionam os relés??? 

Ah, e quais tipos de capacitores devo usar, o eletrolítico, poliéster ou cerâmico???

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

aff este arduíno é bem frutinha mesmo hein...

 

de 10 a 100nF CD ou PM (nunca vi eletrolitico nestes valores) entre cada entrada da chave e gnd.

Pra confirmar se pullups habilitados, meça vcc nas entradas "não selecionadas".

 

Se for estiver falando do snubber, talvez isso...

Em 17/01/2017 às 19:59, Isadora Ferraz disse:

220nF 400Vdc e 22 ohms 5 watts em série e o conjunto em paralelo com contatos do rele

...refresque sua memória. Mas você nem vai precisa disso. Perceba zero matemática. Se achar que deve, peça ajuda pra um universitário teórico.

 

Eu ia te falar pra publicar fotos mas não lembro se ja falei então esquece

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Segue em anexo as fotos do meu projeto que tu tanto pede rsrs 

WP_20170120_21_28_11_Pro[1].jpg

WP_20170120_21_23_38_Pro[1].jpg

WP_20170120_21_20_55_Pro[1].jpg

adicionado 10 minutos depois

@Isadora Ferraz Quando perguntei os valores do circuito RC, estava me referindo a esse circuito resistor-capacitor nas saídas que acionam os relés que tu mencionou abaixo...

Em 12/01/2017 às 07:50, Isadora Ferraz disse:

 

-resistor-capacitor  nas saídas que acionam relés

-nenhuma entrada flutuando

-snubber rc nos contatos dos relés

-opto isolar e usar duas fontes

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

suspeitei desde o principio que era protoboard e que sua montagem estava uma aranha. Estou vendo zero capacitor de desacoplamento. Isto é quase um crime. 10u,,,100uF em paralelo com 10n...100nF CD entre vcc e gnd bem perto do mc,

A principio nem precisa dos RC nas saídas dos relés. Essencialmente resistor que vai pra base so tr npn que aciona rele e um capacitor entre B e E. A ideia também é colocar capacitores nas saidas (DC) do mc. Como você ja detectou que o fantasma é na chave rotativa, capacitor entre elas e gnd  no protoboard. Certifique-se de novo do pullup ou coloque externo pra garantir

 

Os fios são antenas convidando toda a sorte (ou azar) de sinais do mundo externo. Diminua-os por gentileza

 

Ainda há as quase derradeiras opções: opto isolar, blindagens generalizadas, o macete da blindagem por sw que não sei se te do dou

 

Isto daí já tem o modulo bluethoot? As mesmas circunstâncias o envolvem...

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@ViniciusKruz Eu ia utilizar essa placa mesmo. Mas o meu projeto não é definitivo. Meu orientador disse que pra apresentar posso deixar na protoboard mesmo. Mas muito obrigado pela dica! 

adicionado 21 minutos depois

@Isadora Ferraz RESOLVIDO!!!! Só com os capacitores de 0,1uF nas saídas da minha chave, que vão pras portas de entrada do Arduíno, a execução do meu projeto melhorou em quase 100%! O meu projeto já tá muito satisfatório. Mas, vou adicionar os capacitores de desacoplamento e organizar a montagem pra garantir que não aconteça nenhum problema.  

Muito obrigado pela ajuda Isadora! Tu me ajudouuu muuito! Tu foi bastante atenciosa comigo. Vou ficar te devendo pro resto da vida haha. Valeu mesmo!

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Agora tá RESOLVIDO de vez! O projeto tá funcionando perfeitamente!

Quando coloquei os capacitores pra filtrar os ruídos, o projeto melhorou muito, mas de vez em quando quando eu mudava de velocidade o Arduíno resetava. Então, hoje eu conectei circuitos snubber RC nos contatos de potência do relé (COM e NA), fiz alguns testes e por enquanto ainda não resetou. Acho que tá tudo certo agora.

Eu vou dizer o que eu fiz pra eliminar esse malditos ruídos. Acredito que vai ser útil pra muita gente.

O que eu fiz foi seguir todos as recomendações da Isadora:

- Utilizei capacitores de 100nF/400V entre cada porta (entradas e saídas) do Arduíno e GND da fonte. 

- Utilizei capacitores de desacoplamento de 100nF/400V e 100uF/250V, em paralelo, pra cada componente que tá sendo alimentado pelos 5V do Arduíno e usei capacitores de desacoplameto do mesmo valor , em paralelo, na alimentação do Arduíno também. 

- Utilizei um circuito snubber rc de 220nF/630V e 27ohms/5W  nos contatos de potência dos relés. Obs: usei resistores de 27ohms porque não tinha de 22ohms.

- Separei a alimentação do arduíno com as dos relés. 12v pro arduíno e 5v pros relés. 

 

Espero que sirva de ajuda pra quem tá passando pelo mesmo perrengue rsrs e agradeço novamente a Isadora! Se não fosse ela, não teria resolvido essas broncas haha. Ela me ajudou pakas! 

 

Boa sorte, galera! 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...