FAQ FAQ  •  Buscar Buscar  •  Registrarse Registrarse  •  Entre para ver sus mensajes privados Entre para ver sus mensajes privados  • Login Login

Anterior  1, 2

dimmer para pic

Índice de los Foros Electronica Facil » FOROS ELECTRONICA » Microcontroladores PIC
Publicar nuevo tema   Responder al tema
Ver tema anteriorEntre para ver sus mensajes privadosVer tema siguiente
AutorMensaje
rina
Asunto:  MensajePublicado: 25 Ago, 2011 - 05:18
Fanatico de la Electronica
Fanatico de la Electronica


Registrado: 14 Ago, 2005
Mensajes: 1894

anda y no me avia fijado en la pajina.. la verdad que se complico un cuanto mas en el circuito.. incluso demasiado.. nose yo e puesto tantos componentes los necesarios nada mas y lleva funcionando ya casi 10 años que seme io por acer el proyecto y de diaro muchas horas. alo mucho algun trias con unas halogenas..
y si presta ver programas en mplab que asi voy entendiendolo mejos. (me parece mucho mejor programar asi porlomenos sele puede sacar mucho mas rendimiento..

asi de primeras que en el momento de paso por cero del ciclo tu directamente te vas a leer los controles. por eso nunca podras meter barios controles. y intentas leer de una vez si es bajo o alto.. y contando los dos ciclos que comen un salto a subrrutina..

lo que tienes que acer nada mas salir de la rutina de disparo es poner los bit de pulsadores en 1 por ejemplo y despues compruevas si alguno esta forzado a 0 si es asi entonces saltas a esa linea que solo come un ciclo y compruevas cual de los botones se a pulsado. haces lo que tenga que hacer y saltas al programa principal

que no esta ninguno forzado a 0 pues los pones a 0 y compruevas que no alla ninguno forzado a 1 y lo mismo que antes saltas a la linea para comprovar cuel de ellos se a pulsado..

para eso suelo poner el puertob como salidas (por ahorrar material)

y nada mas.

algun que otro trukito.... pero simples simple mente es para que funcione bien aunque no sea perfecto..

porlomenos si no tocas ningun pulsados que no tenga que verificar si los pulsas que echaria mucho tiempo asi que mientras el solo comprueve que no se a pulsado ninguno no entra ni a mirar que as pulsado para realizar la funcion que desenpeñe..

otra perdida de tiempo que te vi o eso me parece que yo lo que ago es borras el vanco de memoria un ciclo nada mas, en ese programa la variable para el disparo del triac sela añades tu al salir eso ya son dos ciclos del oscilador.. si vas perder dos ciclos que sea cuando estas sumandola pero ya que terminas de usarlo envez de darle un valor simplemente borras para despues bolver a contar... aparte que a 4mhz el tiempo ya es muy importante yo te aconsejava que fuera a 8Mhz, puedes acer el doble de funciones en el intervalo del ciclo en cero y tendrias el doble de resolucion en los niveles de luz unas 180 posiciones para una frecuencia de 60hz.. con un cristal de 4mhz te quedaria en tansolo 80 y bailoteando un poco..

creeme me llevo siu tiempo y practicas el trabajito ese

un saludo y lo revisare un poco mas.. ya te digo que no entiendo mucho el mplab lo justo que e necesitado para entener el funcionamiento e un pic +- pero si considero que es mucho mejor programar asi...

y otra cosa.. podrias poner los comentarios de lo que ace en todo el programa.. aunque me parece que es muy parecido a otro proyecto de uno devio de ser al tiempo del mio, el tambien utilizo muco menos material incluso para la referencia del ciclo e rorriente (casi por eso no me gusto mucho..) y la verda que lo vi todavia no ace muchos años.

pongamos que los dimmer de luz tarian maas de moda sobre el 2002 y nos pusimos unos cuantos en ellos cadauno por suuenta... mas omenos son todos muy parecios.. "menos el mis" 8tampoco tenia internet de aquella) vamos biblioteca o algun tenecentro que estaba empezando a estudiar el mundillo ddel pic

lo dicho un daludo
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
rina
Asunto:  MensajePublicado: 27 Sep, 2011 - 05:30
Fanatico de la Electronica
Fanatico de la Electronica


Registrado: 14 Ago, 2005
Mensajes: 1894

ueno al final me puse acerlo de nuevo.. (cadavez me queda mas cortito el programa simplificndo alguns cosas)

'****************************************************************
'* Name : programa control hiluminacion vivienda pic16f84 *
'* Author : peep *
'* Notice : Copyright (c) 2011 buffff *
'* : All Rights Reserved *
'* Date : 26/08/2011 *
'* Version : 3.0 lo menos *
'* 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


tampoco es acierta cierta que funcione.. no lo e proado pero en principio deveria, practicamente es como casi todos los demas.. aunque seguro tendre alguna errata o mas de alguna..

un saludo
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
rina
Asunto:  MensajePublicado: 28 Feb, 2013 - 04:35
Fanatico de la Electronica
Fanatico de la Electronica


Registrado: 14 Ago, 2005
Mensajes: 1894

--


Ultima edición por rina el 28 Feb, 2013 - 04:39 , editado 2 veces
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
rina
Asunto:  MensajePublicado: 28 Feb, 2013 - 04:36
Fanatico de la Electronica
Fanatico de la Electronica


Registrado: 14 Ago, 2005
Mensajes: 1894

---
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
Mostrar mensajes anteriores:     
Cambiar a:  
Todas las horas son GMT
Publicar nuevo tema   Responder al tema
Ver tema anteriorEntre para ver sus mensajes privadosVer tema siguiente
Anterior  1, 2
 Índice de los Foros Electronica Facil » FOROS ELECTRONICA »  Microcontroladores PIC
powered by phppowered by MySQLPOWERED BY APACHEPOWERED BY CentOS© 2004 - 2025Información Legalpoliticas de cookiesipv6 ready