Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?
30/01/2015 #161

Avatar de papirrin

Finskey:

Acabo de darme cuenta de algo:



ahi dice que el MOC3010 es zero crossign, pero creo que esta mal, tu necesitarias uno con deteccion de cruce como el MOC3031, dale una revizada a eso.

sin deteccion del cruce normalmente se usa para controlar la fase, no en ON-OFF.
30/01/2015 #162

Avatar de Finskey

Mira vos que picardia , yo tenia un 3021 y le encaje ese ahora justo estaba por medirle la corriente que necesitaba para ser activado.

Con la resistencia de 470 ohmios, el puerto del pic me entrega 23 mA, no es mucho?
Hay posibilidad de quemar el micro usando el diagrama del post 154?
Voy a tratar de conseguir los otros modelos que veo que consumen menos, justo el que uso es el que mas consume.
30/01/2015 #163

Avatar de papirrin

Con la resistencia de 470 ohmios, el puerto del pic me entrega 23 mA, no es mucho?
pues si.. no entiendo porque deberia de dar 23mA, si son V=470*.023=10.81V deberias estar alimentado con 12V aprox, o ¿o esa medicion es de los dos optos?

Hay posibilidad de quemar el micro usando el diagrama del post 154?
pues es probable, es que no entiendo que estas haciendo si dices que con una resistencia de 470 te da 23mA, si pones otro son 46mA y revienta... si ya estan ambos no creo que se queme, pero no es recomendable exigirle tanto o por lo menos yo no lo hago siempre dejo una tolerancia de un 20%, o sea 20mA si el puerto soporta 25mA.

pero aclara como estas haciendo.

Voy a tratar de conseguir los otros modelos que veo que consumen menos,
creo que ahi hay algo raro, tu puedes limitar la corriente que tu quieras incrementando el valor ohmico, pero si aumentas mucho el valor no alcanza a gatillar el triac, asi que tienes que encontrar el punto justo, en que consuma menos y gatille bien, tipicamente es lo que dice la ficha tecnica pero no es estrictisimamente ese, pues cada uno se fabrica diferente y el fabricante digamos que toma un valor promedio.
30/01/2015 #164

Avatar de Finskey

Estoy usando uno solo (el moc 3021), si , no me verifica la ley de ohm Verificare la resistencia el codigo de colores esta bien, quizas este dañada aunque no lo creo, Verifique devuelta y si 23mA dc
30/01/2015 #165

Avatar de papirrin

No sera que el led tiene una resistencia de entrada?
Pues todo componente tiene una resistencia interna...

ya me estas haciendo dudar creo que ahi tengo un 3021, deja verifico si me da el mismo consumo que a ti, y prueba pero sin el pic no lo vayas a quemar utiliza una fuente de 5v.
30/01/2015 #166

Avatar de Finskey

Nos mareamos entre nosotros La alimentación de mi pic viene del usb, entre medio hay un max232 pero eso no tiene nada que ver, Quizás mi puerto este dañado y de cualquier cosa, lo verificare pero no creo.
30/01/2015 #167

Avatar de papirrin

pues ya verifique el MOC que tengo y si estas haciendo algo mal, puede ser que tu amperimetro no este midiendo bien...

mira puse un moc alimentado con 5V y una resistencia de 330R y me da con mi amperimetro 11mA

en teoria serian 5-3/330=6mA, asi que la caida de voltaje de este moc no es de 3V, sino de 1,36V
o sea 5-1.36/330=11mA [5-(.011*330)=1.36V]

si yo quisiera que me de unos 8mA, tendria que poner una R de 5-1.36/.008=455R.
30/01/2015 #168

Avatar de Dr. Zoidberg

Todos los datos del LED del MOC estan en el datasheet Y NO SON LOS QUE APARECEN EN "Absolute Maximun Ratings"!!!!.
Si le meten 20 o mas mA van a quemar el led y el pic...
30/01/2015 #169

Avatar de Finskey

Bueno verifique la resistencia, la cual da 470 Ohmios, probé mi amperimetro el cual funciona bastante bien ( 1 o 2 ma de diferencia con respecto a lo teórico) y medí la tensión de mi USB , 4.7 voltios.

Creo que ese 1.36 volt corresponde a la imagen que te adjunto.


Esperare a tener el integrado de optoacopladores PC847 , para poder realizar todas las pruebas, Saludos!
30/01/2015 #170

Avatar de papirrin

Creo que ese 1.36 volt corresponde a la imagen que te adjunto.
O si, si perdon me resbale es que me quede con la idea de 3V... entonces lo teorico concuerda con lo practico.

Bueno verifique la resistencia, la cual da 470 Ohmios, probé mi amperimetro el cual funciona bastante bien ( 1 o 2 ma de diferencia con respecto a lo teórico) y medí la tensión de mi USB , 4.7 voltios.
no entendi, ¿te sigue dando 25mA?, si es asi seguramente ya se quemo, aunque con un resistencia de 470R no debio haberse quemado segun los calculos.

y si le mides la tension al puerto del pic, no vaya a ser que traigas filtrando 12V, con el max232. osea que este mal conectado.
30/01/2015 #171

Avatar de Finskey

La 3era es la vencida, 6,5 mA , desconozco que estaba haciendo mal ... Con esta corriente de seguro me sobra para conectarlo junto al opto acoplador. Disculpen las sucesivas molestias
31/01/2015 #172
Moderador

Avatar de D@rkbytes

Dr. Zoidberg dijo: Ver Mensaje
Todos los datos del LED del MOC están en el datasheet Y NO SON LOS QUE APARECEN EN "Absolute Maximun Ratings"!!!!.
Cierto, yo también usé los valores máximos soportados. Ya me estaba durmiendo.

En esta parte si están los valores típicos de corriente para el LED:

Para los MOC3010, 11 y 12

Para los MOC3020, 21, 22 y 23


Gracias por la corrección, Dr.

Ahora si, a aplicar la ley de Ohm correctamente.
Imágenes Adjuntas
Tipo de Archivo: jpg MOC3010-12.jpg (26,6 KB (Kilobytes), 75 visitas)
Tipo de Archivo: jpg MOC3020-23.jpg (88,8 KB (Kilobytes), 74 visitas)
02/02/2015 #173

Avatar de Finskey

Les comento que voy a sacrificar 2 salidas. Tenia 12 salidas en total, 4 con relay a RF, 4 con potencia en CA, CC y de las otras 4 que me quedan, preferí sacrificar dos.
Éstas ponerlas como entradas digitales con 2 respectivas salidas, éstas entradas digitales estarían opto acopladas y están pensadas para sensores y cualquier circuito que brinde una salida TTL o un cambio de estado.
Esto no es complicado y tengo idea de como hacerlo.
Lo que me gustaría hacer, es meter a la PC entre medio, o sea, que la PC me pida autorización para prender la salida.

Me gustaría hacerlo más interesante y poder poner un tiempo en que se ponga en HIGH la salida y algún chiche más.
Si no me equivoco, habría que hacer lo siguiente:
En el programa del PIC en BASIC, hacer una condición IF, si detecta HIGH en las entradas digitales del micro hacer un paquete con el comando SEROUT, sacar un dato serial, ingresarlo en la PC, y en Visual Basic realizar la programación correspondiente.
Creo que puedo hacer todo, menos lo de Visual Basic.

Agradecería ideas y consejos. Gracias de antemano.
10/02/2015 #174

Avatar de Finskey

Compañeros, ya casi termino el proyecto, pero me surgió un problema a último momento el cual no puedo resolver.
Yo añadí dos entradas digitales, las cuales a cada una les corresponde una salida.

La condición para que se prenda la salida consta de dos cosas.
1: Que la entrada esté a "1" Lógico.
2: Que la variable serial ingrese con tal letra (la cual la comando desde un objeto en VB, el cual adjunto).

Cuando tengo las dos entradas conectadas a "1" lógico y mando individualmente cada una desde VB, todo funciona a la perfección, pero cuando desconecto una del "1" lógico, cosa que pasaría normalmente, todo va mal, se me reinicia el micro a veces y otras veces me prende otra salida, la SL1.

No encuentro el error en la programación.
Por favor, si alguien lo encuentra que me avise.
Los programas compilan a la perfección.

PD: Por ahora los 1 lógicos se los doy con una resistencia y un pulsador.
Luego usaré los optoacopladores que se ven en el diagrama.

Saludos!
Imágenes Adjuntas
Tipo de Archivo: jpg Diagrama Bloques.jpg (59,7 KB (Kilobytes), 12 visitas)
Archivos Adjuntos
Tipo de Archivo: rar Control Computarizado 10-2.rar (12,8 KB (Kilobytes), 11 visitas)
10/02/2015 #175

Avatar de papirrin

No lo compile pero fijate en la estructura para que veas una alternativa....

Código:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 10/05/2014                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
;Programa para control computarizado con Visual Basic
INCLUDE "modedefs.bas"          ;incluyen los modos de comunicación
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
@ DEVICE pic16F628A, WDT_ON ' Watchdog Timer ON
@ DEVICE pic16F628A, PWRT_ON ' Power-On Timer
@ DEVICE pic16F628A, BOD_ON
@ DEVICE pic16F628A, MCLR_ON ' Master Clear Opción interno
@ DEVICE pic16F628A, LVP_OFF ' Bajo voltaje de programación
@ DEVICE pic16F628A, CPD_OFF ' Protección del código de memoria OFF
@ DEVICE pic16F628A, PROTECT_OFF' protección de código OFF

CMCON = 7
TRISA=%0
TRISB=%1100

serial VAR BYTE                 ;variable de almacenamiento de 255     
sec1  VAR BIT                    ;variable sec1 de 1 bit 0 o 1
sec2  VAR BIT                    ;variable sec2 de 1 bit 0 o 1
sec3  VAR BIT                    ;variable sec3 de 1 bit 0 o 1 
sec4  var bit
sec5  var bit
sec6  var bit
sec7  var bit
sec8  var bit
sec9  var bit 
sec10 var bit
sec11 var bit
sec12 var bit


sec1=0                         ;valores iniciales para las variables
sec2=0
sec3=0
sec4=0
sec5=0
sec6=0
sec7=0
sec8=0
sec9=0
sec10=0
sec11=0
sec12=0

  
SL1     VAR porta.6           ;nombre para los pines
SL2     VAR porta.7
SL3     VAR portb.6
SL4     var portb.7
SRF1    var porta.0
SRF2    var porta.1
SRF3    var porta.2
SRF4    var porta.3
ED1     var portb.2
ED2     var portb.3
SD1     var portb.4
SD2     var portb.5
prueba  var porta.4          


LOW prueba
PAUSE 3000
HIGH prueba
LOW prueba
pause 500
high prueba
pause 500
low prueba
pause 500
high prueba
pause 500 
low prueba
pause 1000   ;led para saber si ya arrancó el PIC

Inicio:
 SERIN portb.0,T9600,serial      ;esperar por dato serial y guardarlo
 select case serial
  case "A" 
   IF sec1=0 THEN                 ;bandera para la chicharra 1 On
    HIGH SL1                ;y 0 es OFF
    SEROUT portb.1,T9600,["A"]     ;enviar H diciendo que está prendi
   else
    LOW SL1
    SEROUT portb.1,T9600,["B"]    ;enviar I diciendo que está OFF
   ENDIF
   toggle sec1
  case "B" 
   IF sec2=0 THEN
    HIGH SL2
    SEROUT portb.1,T9600,["C"]     ;envía D diciendo q´ el led es ON
   else
    LOW SL2
    SEROUT portb.1,T9600,["D"]     ;envía E diciendo q´el led es OFF
   eNDIF
   toggle sec2
  case "C"
   IF sec3=0 THEN
    HIGH SL3
    SEROUT portb.1,T9600,["E"]     ;envía G diciendo q´ el relé es ON
   else
    LOW SL3
    SEROUT portb.1,T9600,["F"]     ;envía F diciendo q´ el relé es OFF
   ENDIF
   toggle Sec3
  case "D" 
   IF sec4=0 THEN                 ;bandera para la chicharra 1 On
    HIGH sl4 
    SEROUT portb.1,T9600,["G"]                    ;y 0 es OFF
   else
    LOW SL4
    SEROUT portb.1,T9600,["H"] 
   ENDIF
   toggle sec4
  case "E"
   IF sec5=0 THEN                 ;bandera para la chicharra 1 On
    HIGH  SRF1
    SEROUT portb.1,T9600,["I"]                     ;y 0 es OFF
   else
    LOW   SRF1
    SEROUT portb.1,T9600,["J"] 
   ENDIF
   toggle sec5
  case "F"
   IF sec6=0 THEN                 ;bandera para la chicharra 1 On
    HIGH SRF2
    SEROUT portb.1,T9600,["K"]                   ;y 0 es OFF
   else 
    LOW SRF2
    SEROUT portb.1,T9600,["L"] 
   ENDIF
   toggle sec6
  case "H" 
   IF sec7=0 THEN                 ;bandera para la chicharra 1 On
    HIGH SRF3
    SEROUT portb.1,T9600,["M"]                    ;y 0 es OFF
   else
    LOW  SRF3
    SEROUT portb.1,T9600,["N"] 
   ENDIF
   toggle sec6
  case "I"
   if portb.2 then
    IF sec9=0 THEN                 ;bandera para la chicharra 1 On
     HIGH SD1
     SEROUT portb.1,T9600,["P"]                 ;y 0 es OFF
    else
     LOW SD1
     SEROUT portb.1,T9600,["Q"] 
    ENDIF
    toggle Sec9
   endif
  case "J" 
   if Portb.3 then
    IF sec10=0 THEN                 ;bandera para la chicharra 1 On
     HIGH SD2
     SEROUT portb.1,T9600,["R"]                 ;y 0 es OFF
    else
     LOW SD2
     SEROUT portb.1,T9600,["S"] 
    ENDIF
    toggle Sec10
   endif
 end select
GOTO inicio
lo compilas y si tiene errores me dices... XD

y ponle unas resistencias pull_down a la entradas port b3 y b2
10/02/2015 #176

Avatar de Finskey

Papirrin, ha compilado sin problemas. Te muestro la conexión que estoy usando para RB2 Y RB3.

[IMG]Ver Imagen: http://s2.subirimagenes.com/imagen/previo/thump_9275980sin-ttulo.png[/IMG]
10/02/2015 #177

Avatar de papirrin

es esta la imagen?


si es esa esta bien, te sigue dando problemas?
10/02/2015 #178

Avatar de Finskey

Sip esa es la imagen.

He probado y lo de las entradas funciona A LA PERFECCIÓN. donde esta el problema? Al iniciar el circuito ademas de led de prueba, hay 1,2 o 3 salidas que inician prendidas.Varia según la vez que alimentes el circuito, no creo que sea un problema de código ni de los componentes, Sino de los modos de comunicación en si. Asique seguramente las entradas analogicas dispararan a las salidas solo con estar en 1 lógico, no los haré pasar por el programa porque seria muy complicado y aparte tampoco tendría mucho sentido hacerlo ... Gracias por tu código papirrin, parece mucho mas prolijo que el mio.
10/02/2015 #179

Avatar de papirrin

pues nada mas inicializas los puertos en 0

los pones asi:

Código:
CMCON = 7
TRISA=%0
TRISB=%1100

PORTA=0
PORTB=0

serial VAR BYTE                 ;variable de almacenamiento de 255     
sec1  VAR BIT                    ;variable sec1 de 1 bit 0 o 1
sec2  VAR BIT                    ;variable sec2 de 1 bit 0 o 1
sec3  VAR BIT                    ;variable sec3 de 1 bit 0 o 1
oh y estos ponlos en OFF

@ DEVICE pic16F628A, WDT_OFF
@ DEVICE pic16F628A, PWRT_OFF
@ DEVICE pic16F628A, BOD_OFF
10/02/2015 #180

Avatar de Finskey

Ahora si esta perfecto, espero no molestarte y quiero hacerte unas consultas:

1- TRISA=%0
TRISB=%1100

???? Se que configura de alguna manera el puerto a y el puerto b.

2- Tienes los significados de los fuses??

3- Algun enlace,libro o documento donde se desarrolle PBP y ejemplos??

PD: En el programa te comiste la rutina para SRF4 y eso provoco un error en SRF3, ya lo estoy implementando

Muchas gracias y
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.