Boa noite garagistas..

Estou com um projeto muito importante para eu terminar

Eu fiz um dimmer utilizando MOC3021, 4n35, bt138 e funcionou muito bem com um código (dimmer Original) que eu encontrei na net. Por ele você seta o valor da luminosidade pelo serial monitor que vai de 0 a 100%. pela chamada

int Concatena_Numeros(int variavel1, int variavel2)
{
int resultado;
resultado = ((variavel1-'0')*10)+(variavel2-'0');
return resultado;
}

Porém a minha aplicação depende de setar o valor da luminosidade da lâmpada a partir de uma entrada analôgica (1024 valores), estou usando um potenciômetro de 10k.

Ou seja, acho que eu preciso fazer um map da variavel e transforma-la em 0 a 100, ou de 20 a 95.. Pois não preciso deixa-la totalmente apagada ou os 100% dela.

Segue em anexo o código original, e o meu código, só que o meu código não está funcionando certo. Alguém pode me ajudar?

Exibições: 132

Anexos

Responder esta

Respostas a este tópico

Boa noite S,

o erro no seu sketch deve estar sendo causado por você ter declarado uma variável com o mesmo nome

em dois lugares.

No inicio:   int valor = 0; 

dentro da função loop()  int valor = map(analogRead(pot), 0, 1023, 0, 100);

Ao usar a rotina de zero cross e usar esta variavel valor:

aqui:   if(valor > 0){    e aqui: long dimtime = int(map(valor,0,100,8000,150));

a variável usada aqui é a definida no inicio e tem sempre o valor 0;

A variável definida dentro da função loop(), só vale pra dentro função loop().

Isto é conhecido como tempo de vida de uma variável, ou ainda escopo de uma variável.

Para resolver o seu skectch, remova a palavra "int" desta linha:   

           int  valor = map(analogRead(pot), 0, 1023, 0, 100);

e deverá funcionar.

Rui

Muito obrigado Rui.

Eu ajustei aqui e melhorou o erro, ela antes estava piscando. Agora ela fica acesa direto, mas eu não consigo ajustar o brilho pelo potenciômetro.

Ela mantem a luminosidade enquanto eu giro o potenciômetro, só quando eu giro tudo ela apaga.

Acho que o erro ta em transformar o valor do pot(0-1024) a pwm (0-255) e  em luminosidade (0-100% ou 20-95%)

Ou porque eu usei a função map duas vezes para a variavel valor.

S, anexa o novo sketch pra que possa ver como ele ficou.

Rui

S,

revisando o seu sketch e o original, não encontrei a definição do port 2 como port de entrada,

para seu usado como interrupt.

Rui

code e Fotos com 22 e 77% de lum
Anexos

Código

Anexos

Senhor S. 

qdo logar me chame no chat.

Rui

Boa tarde S
Testa este sketch.
É o seu com algumas modificações.
O ZeroCross de entrar no port 2.
O triac é acionado pelo port 3
e o potenciômetro deve ser ligado no port A4.
Rui

Anexos

Perfeito RV muito obrigado..

Era o que eu precisava, parabéns mesmo.

O bug que surgiu é que quando eu vou diminuindo ela vai diminuindo o brilho normal até zerar.

Mas o pot ainda não chegou no final da rolagem fisica dele, a lamp apaga em 80% do giro do pot. e digamos que de 90% a 100% ela fica brilhando na potencia máxima e piscando. Mas nada que seja mais um grande problema. Devo conseguir solucionar.

Muito lindo o trabalho, to muito feliz!

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2017   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço