Dimmer digital em ventiladores no raspberry pi

Fala galera!

Hoje irei demonstrar o funcionamento de um componente que eu comprei no site InMojo, chamado Digital AC dimmer.

DSC_0196 DSC_0197

O processo, para quem não quer saber sobre o funcionamento do circuito é bem simples, Você conecta VCC em 5V , o GROUND,  o TRC em um GPIO para enviar pulso e o ZCR para receber pulso.

TRC é conhecido com TRIAC (link wikipedia, que fica mais facil entender de TRIAC de baixa potência)

ZCR é conhecido como Zero Cross que permite que você identifique o momento em que a tensão da rede elétrica AC cruza a linha de zero volts.

NOVAMENTE:  MUITO  CUIDADO AO MANIPULAR COMPONENTES DIRETAMENTE NA REDE ELÉTRICA, A DESCARGA POR MANUSEIO DO MÓDULO SEM DESCONECTAR DA ENERGIA PODE MATAR OU MACHUCAR FEIO, PORTANTO CASO NÃO TENHA FIRMEZA DO QUE ESTÁ FAZENDO, PEÇA PARA ALGUÉM QUE SAIBA.

Como vimos na primeira imagem acima, temos 2 entradas de energia:

AC IN: que é onde vai entrar a energia elétrica vinda da tomada ou diretamente da rede.

LOAD: onde será conectado o ventilador ou qualquer outro motor,  já que as nossas lâmpadas atuais (luz branca) não é possível fazer a mudança de potência de mais fraca para mais forte, somente as já esquecidas incandescentes.

Fiz a compra de alguns cabos chamados “Rabicho” ou algo do gênero, para fazer a extensão de 2 cabos, 1 que vai da energia até o componente e um que  vai do ventilador para o componente. como podem ver os 2 lados se conectam um no outro portando a outra ponta faz a conexão com a peça inserida nas tomadas que a ponta nos dará os fios de cobre.

DSC_0195

Feito isso, EU, mais por facilidade fiz uma emenda em um fio mais fino nesse grosso para conseguir fazer a conexão nos buracos pequenos do componente , ficando exatamente assim.

DSC_0198 DSC_0199

Então assim t emos a ponta do AC IN a tomada macho para ligar na energia e na ponta do LOAD a tomada fêmea para entrar o ventilador.

 

Por padrão utilizaremos no GPIO o pino 8 para o TRIAC e o 7 para o ZCR

Raspberry-Pi-GPIO-Layout-Revision-2

Vale ressaltar que é um script provisório, executei e funcionou, porém vou melhorar pois nesse primeiro script ele não está fazendo nenhuma interação com a função do zero cross, já que estamos modulando a tensão diretamente no Raspberry pelo PWM

arquivo chamado dimmer.py

import RPi.GPIO as GPIO   
import sys
global TRC;
global ZCR;
global velocidade;
TRC = 8;
ZCR = 7;
global pwm;
velocidade = float(sys.argv[1]); #velocidade vindo do parametro do console
def zcr_detect(channel):
  print "ZCR"; #Nao faz nada somente manda um print ZCR
  
GPIO.setmode(GPIO.BOARD) 
GPIO.setwarnings(False)  
GPIO.cleanup() 
GPIO.setup(TRC,GPIO.OUT)	
GPIO.output(TRC,GPIO.LOW);
GPIO.setup(ZCR,GPIO.IN);
GPIO.add_event_detect(ZCR,GPIO.RISING,callback=zcr_detect);
pwm = GPIO.PWM(TRC,60); #Chamando modulo PWM no pino do TRC à 60Hz
pwm.start(velocidade);
print velocidade;
while True:
 pass;

feito isso iremos chamar o arquivo com a velocidade, por exemplo

 

sudo python dimmer.py 20
sudo python dimmer.py 40
sudo python dimmer.py 60
sudo python dimmer.py 80
sudo python dimmer.py 100

Teremos o seguinte resultado:

 

Espero que tenham gostado e vou tentar melhorar o script, mas a princípio faz o que propõe.

Até a próxima!