ola garagistas tudo bem?
estou tentando acionar um triac no inicio do semi ciclo mas estou com um pouco de dificuldades
vou colocar o codigo do q eu quero modificar se puderem me ajudar a incluir a funçao cross int agradeço !!!
esse eh uma programaçao de nr-12
funciona assim :
aperta o botao liga e liga o motor, desliga para o motor, emergencia desliga o motor e so liga dnv se pressionar o reset assim como tb com o sensor
mas pra evitar interferencias no lcd quero acionar no tempo certo da senoide
segue o codigo:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int liga = 10;
int desliga = 9;
int reset= 8;
int emergencia = 7;
int sensor = 13;
int motor = 6;
boolean motor_bloqueado = true;
boolean libera_lcd = false;
boolean libera_lcd2 = false;
boolean libera_lcd3 = false;
void setup()
{
pinMode(liga,INPUT);
pinMode(desliga,INPUT);
pinMode(reset,INPUT);
pinMode(emergencia,INPUT);
pinMode(sensor,INPUT);
pinMode(motor,OUTPUT);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("OLA EZEQUIEL");
lcd.setCursor(0,1);
lcd.print("BOM TRABALHO");
}
void loop()
{
if (digitalRead(liga) == HIGH && motor_bloqueado == false && libera_lcd == false)
{
digitalWrite(motor,HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MOTOR LIGADO");
libera_lcd = true;
}
if (digitalRead(desliga) == HIGH && libera_lcd == true)
{
digitalWrite(motor,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MOTOR DESLIGADO");
libera_lcd = false;
}
if (digitalRead(emergencia) == HIGH && libera_lcd2 == false)
{
digitalWrite(motor,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BOTAO EMERGENCIA");
lcd.setCursor(0,1);
lcd.print("FOI PRESSIONADO");
motor_bloqueado = true;
libera_lcd2 = true;
}
if (digitalRead(reset) == HIGH && libera_lcd2 == true);
{
motor_bloqueado = false;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MAQUINA LIBERADA");
libera_lcd2 = false;
libera_lcd3 = false;
}
if (digitalRead(sensor) == HIGH && libera_lcd3 == false)
{
digitalWrite(motor,LOW);
motor_bloqueado = true;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SENSOR ACIONADO");
lcd.setCursor(0,1);
lcd.print("PRESSIONE RESET");
libera_lcd3 = true;
}
}
desde ja agradeço!!!
Tags:
Oi Wichert, voce está correto,
O MOC3041 só dispara o TRIAC no zerocross .
Eu uso o MOC3023, pois ele serve para as duas situações, chave ou dimmer, o diac dele faz o disparo.
Chave ligando e desligando o LED "dele", e dimmer usando o delay após o zerocross para controlar o LED, como no circuito que postei acima.
Rui
isso mesmo rui
Oi José,
este novo código faz a mesma lógica das chaves e parte o motor progressivamente. (SoftStart).
Modifique os pinos de acordo com a sua necessidade.
o unico pino que não deve ser mudado é o da entrada de zerocross que é o pino 2.
Se voce quiser muda-lo a única alternativa no UNO é o pino 3, mas se mudar tem que mudar tb dentro do código,
Esta linha attachInterrupt(0, zero_cross, RISING); mude de 0 para 1, e nesta linha detachInterrupt(0); também.
Rui
rui fiz umas mudanças ficou assim
vou montar na pci e testar tudo funcionando dps coloco os resultados aqui pra todos ok!
vlw!!!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por