Ir para conteúdo
View in the app

A better way to browse. Learn more.

EletrônicaBR.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Navegação Limpa e Sem Anúncios! (Cadastre-se)

O melhor fórum técnico do mundo está de cara nova e de portas abertas! Estamos de cara nova e com ferramentas ainda mais poderosas para a sua bancada. Faça o seu cadastro de forma rápida e simples para acessar o maior e mais atualizado acervo de Esquemas Elétricos, BIOS e Firmwares da internet.

Aqui, o conhecimento vale muito: através do nosso sistema de créditos, membros participativos ganham acesso totalmente gratuito aos downloads. Venha trocar experiências com os melhores especialistas do mercado!

👉 Técnico sem o EletrônicaBR não é um técnico completo!

 

Featured Replies

Postado

Olá a todos da comunidade, este é meu primeiro post aqui no forum então pode faltar informações, ou conter muitas desnecessárias ok? kk

Certo, estou desenvolvendo uma PCB para controle de cargas AC (resistivas e/ou Indutivas, mas de baixa indutância). Com base em pesquisas fui montando todo circuito utilizando o 4N25 para transmitir a passagem por Zero para o Arduino, o MOC3021 (Não tem o 3020 no Proteus), como comutador do Triac, enfim um circuito completo. Ele funciona? Sim funciona, se eu fizer a sketch de leitura da passagem de zero com HIGH na porta e uma condição if/else para ligar outra porta quando tiver em HIGH, funciona ele fica comutando várias vezes a a entrada do MOC, só que não é isso que é pra ele fazer, preciso de controlar o ângulo de disparo para que ele comute de acordo com esse ângulo, tipo 0° ele começa em 0seg, mas 90º ele começa em 4,16ms. São dois os meus problemas, o tal do Zero_Crossing_RISING e o Timer1 do Arduino, por mais que eu tente não acho um tutorial bem explicado de como utilizar eles, principalmente para essa tarefa. 

Circuito Triac.jpg

Logo se alguém tiver alguma ideia, ou se tiver essa sketch pronta e puder compartilhar, eu agradeço.

 

PS: Segue em anexo a imagem do meu circuito. Obrigado

Postado

Talvez essa abstração te ajude. Estou sem referências no momento.

 

#include "TimerOne.h"

void setup()
{
      Timer1.initialize(1000000);
      Timer1.attachInterrupt(trataTimer);
}

 

void trataTimer()
{
    // Estourou
}

 

 

Flw...

Postado
  • Autor

A parte do Zero Cross eu consegui fazer e está funcionando perfeitamente, só falta implementar o tempo agora pra gatilhar o pulso no momento certo.

 

#include <TimerOne.h>

//--- Mapeamento de Portas ---
#define  Gate 9
#define  Zero 2
//--- Rotina de Interrupção ---
void Interrupt()
{  
  digitalWrite(Gate, HIGH);
  delayMicroseconds(500);
  digitalWrite(Gate, LOW);
}

//--- Configuração Inicial do Programa ---
  void setup()
  {
  Serial.begin(9600);
  pinMode(Gate, OUTPUT);
  pinMode(Zero, INPUT);
  digitalWrite(Gate, LOW);

  attachInterrupt(0, Interrupt, RISING);
  }

  //--- Loop Infinito ---
  void loop()
  {
  }

Vlw  nagkiller, partiu entender esse timer1 agora 

  • 10 meses depois...

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

Account

Navigation

Pesquisar

Pesquisar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.