Autor Tema: dimmer light  (Leído 2526 veces)

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

Desconectado messi1980

  • PIC10
  • *
  • Mensajes: 7
dimmer light
« en: 12 de Mayo de 2010, 16:56:11 »
qiuero saber si este codigo en picsimulator ide esta bien o non para controlar potencia lampara 


Symbol trafo = GPIO.2
Symbol potenciomtre = GPIO.1
Symbol sortida = GPIO.0

'Macro para el ADC
Symbol ad_action = ADCON0.GO_DONE

'Configuro puertos y ADC
TRISIO = %111110  'GPIO 0,salidas;1 i 2 entradas
CMCON = 0x07  'comparator off
VRCON = 0x00  'vref off
ANSEL = %0000010  'GPIO.4 A/D en W/Frc
'Activo VREF, Selecciono canal 0, Justifico a la derecha
ADCON0 = %00001111
High ADCON0.ADON

'Variable que contiene el valor del ADC
Dim valor As Word
Dim i As Byte
Dim ii As Byte
Dim iii As Byte
Dim iv As Byte

GPIO = %110000  'todas las salidas a 0
i = 0
'Bucle principal
loop:

Adcin 1, valor
i = 5 / 6
ii = valor * 4
iii = (valor * 88) / 100
iv = ii + iii
Gosub trafo


   If iv > 0 And trafo = 0 Then
      sortida = 1
      WaitMs 1000
   Endif


   If iv = 0 And trafo = 1 Then
      sortida = 1
      WaitMs 1000
   Endif


If iv = 0 And trafo = 0 Then
   sortida = 0  'Apago LED rojo
Endif


If iv > 0 And trafo = 1 Then
   sortida = 0  'Apago LED rojo
Endif





Goto loop
End                                               
trafo:
   If i > 0 Then
      trafo = 1
   Endif

If i < 1 Then
   trafo = 0
Endif
Return

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: dimmer light
« Respuesta #1 en: 20 de Mayo de 2010, 17:48:41 »
Hola messi1980, si el único problema que te queda es que no detectas el paso por cero, este hilo es especial para el 12F675:

http://www.todopic.com.ar/foros/index.php?topic=24123.msg195211#msg195211

Y en concreto hay una práctica que mide el ancho de pulso de una onda senoidal de 50Hz pasada previamente a onda cuadrada, y para esto necesita detectar el paso por cero.

http://www.todopic.com.ar/foros/index.php?topic=24123.msg195614#msg195614

Y más concreto exactamente a partir de aquí:

http://www.todopic.com.ar/foros/index.php?topic=24123.msg195752#msg195752

El programa:

http://www.todopic.com.ar/foros/index.php?topic=24123.msg195756#msg195756

El hilo no es muy largo por lo que recomiendo su lectura completa.
Saludos desde Granada, España.

Desconectado messi1980

  • PIC10
  • *
  • Mensajes: 7
Re: dimmer light
« Respuesta #2 en: 22 de Mayo de 2010, 15:36:32 »
hola buenas dogflu66 yo qiuero acer el mismo proyecto que el ejemplo:http://platea.pntic.mec.es/%7Elmarti2/practic7.htm pero utilizando el programa pic simulator ide gp2 entrada señal gp1 entrada analogica digital gp0:salida triac esperando la vuestra ayuda.

Desconectado messi1980

  • PIC10
  • *
  • Mensajes: 7
Re: dimmer light
« Respuesta #3 en: 25 de Mayo de 2010, 13:35:50 »
hola dogflu66 soy messi autra ves solamente queria decir te que me dimmer funciona bastante pero falta una cosa al mover el potenciometro en el esquema para bajar potencia luz no baja la potencia al 0% se queda encendida donde esta el herror¡¡¡ graçias. este es mi codigo

trisio = %00000110
'ADCON0 = %00001101
'ADCON0 = %01100000
cmcon = %00000111
ansel = %00000010
Symbol salida = gp0


Dim entrada As Word

Dim estado2 As Bit
Dim estado1 As Word


gpio.0 = 1
estado2 = 0

inici:

If gp2 = 1 And estado2 = 1 Then
WaitUs estado1
salida = 0
WaitUs 50
salida = 1
estado2 = 0
Adcin 1, entrada
If entrada < 150 Then entrada = 150
If entrada > 950 Then entrada = 950
estado1 = entrada * 10
Endif

If gp2 = 0 And estado2 = 0 Then
WaitUs estado1
salida = 0
WaitUs 50
salida = 1
estado2 = 1
Adcin 1, entrada
If entrada < 250 Then entrada = 250
If entrada > 1000 Then entrada = 1000
estado1 = entrada * 10
Endif

Goto inici
End                                               


Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: dimmer light
« Respuesta #4 en: 25 de Mayo de 2010, 20:01:50 »
Código: QBasic/QuickBASIC
  1. 'Define CONF_WORD = 0x31c4
  2. 'Define CLOCK_FREQUENCY = 4
  3. ANSEL = %00000010
  4. CMCON = %00000111
  5. TRISIO = %00000110
  6. 'ADCON0 = %00001101
  7. 'ADCON0 = %01100000
  8.  
  9. Symbol salida = GP0
  10.  
  11. DIM entrada AS Word
  12. DIM estado1 AS Word
  13. DIM estado2 AS Bit
  14.  
  15. GPIO.0 = 1
  16. estado2 = 0
  17.  
  18. inici:
  19.  
  20.         IF GP2 = 1 AND estado2 = 1 THEN
  21. 'WaitUs estado1
  22.                 salida = 0
  23.                 WaitUs estado1
  24. 'WaitUs 50
  25.                 salida = 1
  26.                 estado2 = 0
  27.                 Adcin 1, entrada
  28.                 IF entrada < 150 THEN entrada = 150
  29.                 IF entrada > 950 THEN entrada = 950
  30.                 estado1 = entrada * 10
  31.         Endif
  32.  
  33.         IF GP2 = 0 AND estado2 = 0 THEN
  34. 'WaitUs estado1
  35.                 salida = 0
  36.                 WaitUs estado1
  37. 'WaitUs 50
  38.                 salida = 1
  39.                 estado2 = 1
  40.                 Adcin 1, entrada
  41.                 IF entrada < 250 THEN entrada = 250
  42.                 IF entrada > 1000 THEN entrada = 1000
  43.                 estado1 = entrada * 10
  44.         Endif
  45.  
  46. GOTO inici
Saludos desde Granada, España.


 

anything