Autor Tema: 2 dimmer con pic 16f84a  (Leído 3109 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rina

  • PIC10
  • *
  • Mensajes: 45
2 dimmer con pic 16f84a
« en: 17 de Enero de 2012, 16:58:36 »
bueno abra que postear un circuito que monte ya hace unos cuantos años,

este es un circuito muy sencillo para regular e disparo de unos triac (en este caso dos) y poder controlar otras funciones aparte de activar y desactivar dos salidas a rele.

la parte mas importante en este proyecto es el octener el sincronismo de la red despues de un trasformador ac ac, para conseguir un mejor sincronirmo, cari que el punto mas importante es despues de la rectificacion, el punto donde octenemos la señal para b.0 (que yo pase de usar interruciones "no es necesario ni eficiente").  en este punto donde tenems un una onda senoidal continua de la rectificacion y evitando que se estavilice hay que meterle una carga por lo menos de 20mA para un trasformador de 10Vac 200mA, para asi poder eliminar ruidos, despues el que use tantos condesnsadores es para que los picos de corriente del circuito no afecten ala señal de referencia de b.0.
pongamos que el led ala entrada de corriente es muy util para estavilizarla y la resistencia de carga en el zener de 4,7V que pdia ser mejor de 5,1v y la resistencia de 4K7.

quitando el conseguir una buena señal de referencia el programa puede ser de diversas formas. (el conseguir una buena referencia de la red es muy importante)



aconsejo no mas de 4 salidas dimmer b.6, b.7, a.0, a.2, con un cristal de 12Mhz y daria tiempo de sobra a acer todas las operaciones en el intervalo de 0 de la red electrica...

el archivo hex es el ultimo programa que tengo funcionando ahora mismo para un cristal de 8mhz

un saludo para el que tenga ganas de paparse todo esto.. (y no es mas que la mitad mas importante)
« Última modificación: 18 de Enero de 2012, 04:47:57 por rina »

Desconectado rina

  • PIC10
  • *
  • Mensajes: 45
Re: 2 dimmer con pic 16f84a
« Respuesta #1 en: 17 de Enero de 2012, 17:15:25 »
otra razon de de postear eset proyecto seria aver  si hay algunas ideas para poder controlarlo con un mando a distancia.
en realidad tenia pensado intentar usar el puesto rs232 como interuccion para ller sin problema el codigo de un mando.

me esplico mejor, el poder comparar de primeras los primeros 8bitm  si son correctos compararlos conlos otros 8 y quedarme con los siguientes 8 para comprovar que boton se a pulsadom pero que bueno todo esto es algo relativo ala codificacion que use el mando a distancia..   pero ya me avia currado un sofward vastante chulo que solo hay que retocar un poco, que sirve para leer un mando a distancia y almacenar el codificador y el boton.

ue seria esto
http://www.youtube.com/user/tarariruritararirura#p/u/3/b_phzVRgvRI
solo que tengo que solucionar algo por hay que ace que seme resete el pic.

pero que vamos con un 16f628, que ademas compre no ace mucho. podria combinar los dos programas sin problemas

la cuestion seria que la parte electronica del 232 almacenamiento por cadenas de 8bit que cargue y funcione sin dar ningun  problema al sincronismo con la red electrica..  porque vamos sin fallos sin fallos todavia no e visto nada mas que el que me curre yo (fallos= bailoteos de la luz ya sea por interferencis del infrarrojo o por mala comparacion del sincronismo de la corriente de la rec electrica)

 un saludo y bueno muchas gracias de antemano aunque no tenga ningun aporte de idea (lo mas comun)

bueno y aparte ampliar la salida pwm del pic para la nueva tegnologia led.. pa poder regularla sin problen.. jejeje


Desconectado rina

  • PIC10
  • *
  • Mensajes: 45
Re: 2 dimmer con pic 16f84a
« Respuesta #2 en: 17 de Enero de 2012, 17:21:29 »
por razones de una memoria sd que se estropeo y no tenia en otro sitio algunos programas el que tengo funcionando en el video youtuve lo perdi. este es el mismo con el mismo principio que siempre e usado para echarlo a funcionar.. solo que no esta provado y verificado.. aparte de estas con algunas mejoras como una salida pwm cuando se apaguen al completo todas las luces.


'****************************************************************
'*  Name    : programa control hiluminacion vivienda pic16f84   *
'*  Author  : peep                                              *
'*  Notice  : Copyright (c) 2011 buffff                         *
'*          : All Rights Reserved                               *
'*  Date    : 26/08/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   : 2Xdimer 220V, PWM led, temporizador y conmutacion *
'*          :                                                   *
'****************************************************************
'
'
contador var word
estractor var word
funci var byte
b0 var funci.bit0
b1 var funci.bit1
b2 var funci.bit2
ciclo var byte
luz1 var byte
luz2 var byte
t_luz1 var byte
t_luz2 var byte
temp1 var byte
temp2 var byte
reten var byte
pwm_led var byte
clear
trisb=1
portb=128
trisa=0
porta=12
intcon=%01000111
porta=0
luz1=100
luz2=20
t_luz1=160
t_luz2=160
estractor=23000
contador=65300
pause 20
read 0,temp1  ' leemos epron y comprobamos si hay algun valor almacenado
if temp1<>255 then gosub leer_epron
'
' programa
'
programa
gosub alterna
if contador=estractor then low porta.4
contador=contador+1
if contador=65301 then contador=0:porta.4=b0
if reten<>0 then programa
high portb.1:high portb.2:high portb.3:high portb.4
if portb.1=0 or portb.2=0 or portb.3=0 or portb.4=0 then bajo
low portb.1:low portb.2:low portb.3:low portb.4
if portb.1=1 or portb.2=1 or portb.3=1 or portb.4=1 then alto
goto programa
'
' disparo del triac
'
alterna:
while portb.0=0
wend
while portb.0=1 and ciclo<159
    if ciclo=luz1 then high porta.0
    if ciclo=luz2 then high porta.1
    ciclo=ciclo+1
wend
low porta.0
low porta.1
ciclo=0
return

'
' lectura de controles
'
' pulso 0
'
bajo:
if b1=0 and portb.1=0 and luz1<160 then luz1=luz1+1
if b1=0 and portb.2=0 and luz2<160 then luz2=luz2+1
if portb.3=0 then
        toggle porta.2
        b1=porta.2
        reten=120
        swap t_luz1,luz1
        swap t_luz2,luz2
    else
        reten=7
endif
if portb.4=0 then n_estractor
if luz1=160 and luz2=160 and b1=0 then led_pwm
goto programa
'
' pulso alto
'
alto:
if portb.1=1 and luz1>0 then luz1=luz1-1
if portb.2=1 and luz2>0 then luz2=luz2-1
if portb.3=1 then
        toggle porta.3
        b0=porta.3
        contador=65300
        reten=120
    else
        reten=7
endif
if portb.4=1 then almacenar
goto programa
'
' muestra el tiempo activo del estractor
'
n_estractor:
temp1=160
temp1=160
swap temp1,luz1
swap temp2,luz2
while portb.4=0
    high portb.4                                                       
    estractor=estractor+100
    if estractor>65300 then estractor=7200
    luz1=160-(estractor/520)
    gosub alterna
wend
swap temp1,luz1
swap temp2,luz2
porta.4=b0
goto programa
'
' nivel de apagado control PWM para led
'
led_pwm:
pwm_led=210
while pwm_led<>230
    for reten=0 to 20
        low portb.7
        for temp1=0 to 200
            if temp1=pwm_led then high portb.7
            PAUSEUS 2
        next temp1
    next reten
    high portb.1:high portb.2:high portb.3
    if (portb.1=0 or portb.2=0) and pwm_led>20 then pwm_led=pwm_led-1
    if portb.3=0 then pwm_led=230
    low portb.1:low portb.2
    if portb.1=1 or portb.2=1 then pwm_led=pwm_led+1
wend
reten=0
high portb.7
goto programa
'
' leer los valores de la epron
'
leer_epron:
read 0,luz1
read 1,luz1
read 2,temp1
read 3,funci
return
'
' almacenar valores
'
almacenar:
high porta.0
for temp1=0 to 50
    low portb.4
    if portb.4=1 then goto programa
    pause 4
next temp1
temp1=contador/255
write 0,luz1
write 1,luz1
write 2,temp1
write 3,funci
for temp1=0 to 5
    toggle porta.0
    pause 500
next temp1
goto programa


la verdad que este  programa tambien llena el pic, un consejo seroa no intenteis con el 84 usar a.2 ni a.3 para el dimmer no son estables. o porlomenos ami nunca me funcionaron bien.
aparte en ese programa a.3 es una salida temporizada a intervalos de unos 5min.
« Última modificación: 17 de Enero de 2012, 17:27:53 por rina »


 

anything