• Domingo 22 de Diciembre de 2024, 07:27

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - wakowarner

Páginas: [1]
1
Microcontroladores / Re: Ultrasonidos Con Pic
« en: Martes 20 de Diciembre de 2005, 17:48 »
Aqui esta lo que necesitas!  B)
Electronics from japan

Saludos! :smartass:

2
Visual Basic 6.0 e inferiores / Re: [peticion] Asignar Valores A Propiedades
« en: Martes 11 de Enero de 2005, 21:07 »
Funciona!!! :rolleyes:
Muchas gracias!  B)

3
Visual Basic 6.0 e inferiores / [peticion] Asignar Valores A Propiedades
« en: Jueves 6 de Enero de 2005, 23:57 »
Estoy desesperado!!!
Necesito de su ayuda para asignar las propiedades a un control que estoy haciendo.
tengo un control llamado VSG, este control tiene como trompecientas propiedades, muchas muy semejantes que se diferencia solo por un numero, hasta aqui todo bien, ahora tambien tengo un timer que refresca el valor de dichas propiedades para cada control (este control es un array), el problema es que esta funcion hace un ciclo for para actualizar cada propiedad y segun el nombre de una etiqueta el programa decide a que propiedad se asigna el valor, pero como hay varias parecidas quisiera que con una sentencia IF instr("nombre parcial de la tag", decida a que propiedad se asigne el valor, les pongo parte de la rutina resumida para que vean de que hablo

Código: Text
  1.  
  2.     For i = 1 To OPCGroupItemsCls.Count
  3.         Set OPCItemToUpdate = OPCGroupItemsCls.Item(Str(i))
  4.        
  5.         ItemValue = OPCItemToUpdate.GetItemValue(1)
  6.         ItemID = OPCItemToUpdate.GetItemID
  7.        
  8.         Call FindRoute(ItemID, IDChannel, IDDevice, IDTag)
  9.         For j = 1 To VSGIndex
  10.             If VSG(j).Channel = IDChannel And VSG(j).Device = IDDevice Then
  11.                 Select Case IDTag
  12.                 Case "Mach"
  13.                     VSG(j).Mach = ItemValue
  14.                 Case "LampGreen"
  15.                     VSG(j).Lampgreen = ItemValue
  16.                 Case "LampRed"
  17.                     VSG(j).LampRed = ItemValue
  18.                 Case "LampAmber"
  19.                     VSG(j).LampAmber = ItemValue
  20.                 Case "DT1000"
  21.                     VSG(j).DT1000 = ItemValue
  22.                 Case "DT1001"
  23.                     VSG(j).DT1001 = ItemValue
  24.                 Case "DT1002"
  25.                     VSG(j).DT1002 = ItemValue
  26.                 Case "DT1003"
  27.                     VSG(j).DT1003 = ItemValue
  28.                 Case "DT1004"
  29.                     VSG(j).DT1004 = ItemValue
  30.                 Case "DT1005"
  31.                     VSG(j).DT1005 = ItemValue
  32.                 Case "BadWeld"
  33.                     VSG(j).Badweld = ItemValue
  34.                 Case "DropedParts"
  35.                     VSG(j).DropedParts = ItemValue
  36.                 Case "EpoxyLosses"
  37.                     VSG(j).EpoxyLosses = ItemValue
  38.                 Case "TwistedAnodes"
  39.                     VSG(j).TwistedAnodes = ItemValue
  40.                 Case "EmptyPockets"
  41.                     VSG(j).EmptyPockets = ItemValue
  42.                 Case "Case"
  43.                     Select Case ItemValue
  44.                     Case 1
  45.                         VSG(j).Size = "D"
  46.                     Case 2
  47.                         VSG(j).Size = "B"
  48.                     Case 4
  49.                         VSG(j).Size = "A"
  50.                     Case 8
  51.                         VSG(j).Size = "C"
  52.                     Case 16
  53.                         VSG(j).Size = "X"
  54.                     End Select
  55.                 Case "StopBit"
  56.                     If VSG(j).Lampgreen = False And VSG(j).ErrorCode = "" And ItemValue = True Then
  57.                         VSG(j).ErrorCode = "R166"
  58.                         VSG(j).ErrorDescription = "Stop Button Pressed"
  59.                     End If
  60.                 Case "BitLdframe"
  61.                     If Monitor = False Then
  62.                         Dim Direccion As String
  63.                         Direccion = IDChannel & "." & IDDevice
  64.                         If ItemValue = True And VSG(j).LdfrmFlag = 0 Then
  65.                             VSG(j).Leadframe = ""
  66.                             Call UpdateItem(Direccion & ".ErrLdframe", 1)
  67.                         ElseIf ItemValue = True And VSG(j).LdfrmFlag = 1 Then
  68.                             Call UpdateItem(Direccion & ".ErrLdframe", 0)
  69.                             Call UpdateItem(Direccion & ".BitLdframe", 0)
  70.                         ElseIf ItemValue = False Then
  71.                             VSG(j).LdfrmFlag = 0
  72.                         End If
  73.                     End If
  74.                 Case "Batchreset"
  75.                     If ItemValue = True Then
  76.                         Call UpdateItem(IDChannel & "." & IDDevice & ".Batchreset", 0)
  77.                     End If
  78.                 Case "BatchLoaded"
  79.                     If Monitor = False Then
  80.                         Dim Direccion1 As String
  81.                         Direccion1 = IDChannel & "." & IDDevice & ".BatchLoaded"
  82.                         If Len(VSG(j).Batch) = 0 And VSG(j).DT1002 > 0 Then
  83.                             Call UpdateItem(Direccion1, 1)
  84.                         Else
  85.                             Call UpdateItem(Direccion1, 0)
  86.                     End If
  87.                     End If
  88.                 Case "LdframeYield"
  89.                     If ItemValue < 1001 Then
  90.                         'Para no guardar un valor falso del inicio
  91.                         VSG(j).LeadFrameYield = ItemValue / 10
  92.                     End If
  93.                
  94.                 End Select
  95.  
  96.  

hay una parte donde las propiedades van desde .Welder01 hasta .Welder20 y como no quiero hacer un select quisiera hacer algo como...

[CODE]
If Instr(TAG,"Welder") then
   VSG(j).<aqui va algo> = itemvalue
endif
Citar

lo que quiero saber es si es posible hacer una coleccion con las propiedades del objeto o una especie de puntero de tal manera que el codigo sepa a que de los welder debe asignarsele el valor, no se si me explico, si quieren puedo adjuntar el archivo, aunque dudo que lo puedan hacer correr sin una API que necesita

Saludos!!

4
Visual Basic 6.0 e inferiores / Re: Ayuda Datareport
« en: Martes 14 de Septiembre de 2004, 17:04 »
Hola Makko!!
Eres el makko de la pagina de Picard?
bueno, respecto a tu problema, intenta hacer primero el refresh y luego el show
y asi el reporte que se muestra es con los nuevos datos
DataReport1.Show
DataReport1.Refresh

Espero funcione!!
Saludos!! :kicking:

5
Visual Basic 6.0 e inferiores / Re: Ayuda Ocx
« en: Viernes 10 de Septiembre de 2004, 21:56 »
Estoy en las mismas!!! :o
Se que es borrando ciertas entradas de registro. Pero cuales??? :(

6
Visual Basic 6.0 e inferiores / Re: Programa Para Puerto Serial
« en: Martes 31 de Agosto de 2004, 18:04 »
NO se puede, el puerto serie es para recibir Bytes en forma serial, lo que necesitas es hacer uso del puerto paralelo, aqui si que puedes leer el estado especifico de un pin.
Saludos!
 :hola:

7
Visual Basic 6.0 e inferiores / Re: Access Xp..
« en: Jueves 26 de Agosto de 2004, 07:58 »
Ya intentaste con ODBC?

8
Programación de Aplicaciones para Dispositivos / Re: Codigo De Barras
« en: Viernes 16 de Abril de 2004, 18:16 »
Yo tengo un codigo (en realidad son muchos), pero son muy extensos, ya que en mi trabajo utilizo muchos scanners de codigos de barras, basicamente le tienes que configurar al scanner (esto es con una hoja de programacion) el preambulo y el postambulo, la velocidad, el control de flujos (si lleva o no lleva y si es por hardware o software) , cantidad de bits, paridad par o impar, etc. pero basicamente tiene que leer de un buffer y esperar el retorno de carro (CARACTER 13) y vaciar el buffer a un variable
Te dejo un extracto de un evento OnCom de una aplicacion que tengo en Visual Basic

Private Sub MSCom_OnComm()
'//Recibe los codigos del Scaner y les da el seguimiento adecuado
    Buffer = Buffer & MSCom.Input
    If Right(Buffer, 1) = Chr(13) Then
        Buffer = Left(Buffer, Len(Buffer) - 1)
        If Len(Buffer) > 5 Then
            If Pointer = 1 Then
                txtBatch.Text = Buffer
                Call txtBatch_KeyUP(13, 0)
            Else
                txtBadge.Text = Left(Buffer, Len(Buffer) - 1)
                UserFlag = True
                Call txtBadge_KeyUP(13, 0)
            End If
        Else
        '**Buffer < 6, pueden escanear un lid o una cspec
        End If
        Buffer = ""     '//Vacio buffer despues de recibir chr(13)
       
    End If
End Sub

9
Microcontroladores / Re: Otro Proyecto De Infrarrojos
« en: Lunes 15 de Marzo de 2004, 17:53 »
Hola LMarte, creo que no fui bastante claro al decir de que se trataba el proyecto :unsure:  al referirme como
Citar
proyecto de control de luz por luz infrarroja
. Lo que quiero controlar la iluminacion de una habitacion, controlar los aparatos como la TV o el equipo de sonido es harina de otro costal. El control de potencia la hago por medio de tiristores (un scr para ser mas exacto) regulando el angulo de disparo.
Ya tengo la fuente de alimentacion sin transformador. De momento estoy algo ocupado con un proyecto de mi trabajo (cosas de PLCs y aplicaciones cliente servidor en VB), pero ya estoy trabajando :comp:  en el diagrama del circuito, al parecer va a quedar muy compacto, ahora solo me queda terminar el programa, ya tengo una version preliminar del diagrama de flujo pero no es definitivo, por eso estoy esperando. tan pronto tenga tiempo publicare el resto del proyecto.

Por cierto, que quieres decir con la etapa de HW? te refieres al Hardware? si es asi, espera un poco y luego pondre el diagrama completo :whistling: (despacio, que llevo prisa)

Espero no haberte decepcionado por no ser lo que esperabas :huh:

Saludos! B)

10
Microcontroladores / Re: Mis Primeros Pasos
« en: Miércoles 25 de Febrero de 2004, 13:59 »
Primero: Comprate un pic, el 16F84 es perfecto para iniciarte

Segundo: compra o arma un programador, no es necesario que sea uno muy completo, con que pueda programar este pic es suficiente

Tercero: empieza a probar, prender y apagar un led es un buen ejercicio, cuando logres esto podras ir avanzando hasta controlar LCds, conversores y otros circvuitos mas complicados

Suerte!

11
Microcontroladores / Re: Otro Proyecto De Infrarrojos
« en: Lunes 23 de Febrero de 2004, 18:00 »
Ya que nadie dice nada, voy a seguir... (al menos nadie me ha criticado :whistling: )

En la imagen adjunta se ve que cada 8.33mS ocurre un un cruce por cero, con lo cual pienso generar una interrupcion. Tambien se ve que el tramado de un comando en RC5 dura un tiempo completo de 24.88mS, aqui empiezan los problemas. si el programa solo estubiera viendo los cruces por cero y hago un delay para disparar el scr (creo que me he adelantado, aun no he explicado como voy a controlar el angulo de disparo, pero como es algo muy simple y ustedes son muy listos supongo que me entenderan :smartass: ). El chiste es que si estoy haciendo un delay no debo descuidar la posible llegada de una trama del infrarrojo, esta trama esta compuesta por 14 bits, cada bit dura 1.778mS, los bits estan dispuestos como sigue:

2 Bits de Start: Siempre son 1,1
1 Toggle BIt: este bit siempre esta alternando entre uno y cero, asi se sabe si el comando se esta repitiendo, por ejemplo al mantener presionado el boton del volumen.
5 Bits de Sistema: se utilizan para seleccionar el aparato, se supone que es un codigo para la TV, otro para el modular, otro para el Dvd....
6 Bits de Comando: estos bits contienen el comando en si, encendido, volumen up, volumen down, channel up, channel down...

Otra cosa, un bit esta compuesto a su vez por dos bits (y una naranja por dos medias naranjas...) :blink: , me explico, se utilizan dos bit (complementarios, un uno y un cero o un cero y un uno) para expresar un uno o un cero y lo que interesa es la transicion entre ellos, si el primer bit es cero y el segundo un cero ocurrira una transicion positiva, esto se interpreta como un uno; por el contrario si el primer bit es un uno y el segundo un cero la transicion sera negativa y esto lo veremos como un cero.

Otra cosa(como si no fuera bastante confuso ya :devil: ), enteriormente habia dicho que un bit duraba 1.77mS, asi que cada uno de estos 'medios bits" dura 0.888mS. Asi que creo que este es el evento mas pequeño que debo ser capaz de procesar, asi que una posibilidad es generar interrupciones con un timmer y ver los eventos, bueno, aun no lo decido, voy a investigar un poco hacerca de los S.O. y luego les aviso.

Saludos!

12
Microcontroladores / Re: Donde Conseguir Microcontroladores
« en: Domingo 22 de Febrero de 2004, 18:05 »
Tambien puedes intentar con www.digikey.com es una tienda muy importante de electronica en USA, es muy probable que hagan envios a otros paises; otra tienda muy barata es www.amazonelectronics.com tienen varios circuitos para desarrollar con pics. Checa con esas dos  :rolleyes:

Saludos!

13
Programación de Aplicaciones para Dispositivos / Re: Sensor De Proximidad.
« en: Domingo 22 de Febrero de 2004, 16:47 »
Tienes razon, es posible detectar la luz infrarroja hasta una distacia de 10 metros sin problemas, pero ojo, en el control remoto hay un transmisor de un lado y un receptor del otro, con un sensor lo que tienes que ver es el rebote de la luz, existen sensores (creo que son los de las alarmas) que utilizan luz infrarroja, pero estos lo que ven es el movimiento, lo que hacen es ver las variaciones de la luz reflejada (esto con un opamp en modo diferencial); creo que si los usas para ver un obstaculo, su operacion no es muy fiable, de todos modos voy a investigar al respecto, si encuentro algo les aviso.

Saludos!

14
Programación de Aplicaciones para Dispositivos / Re: Sensor De Proximidad.
« en: Sábado 21 de Febrero de 2004, 18:22 »
Disculpa, pero no creo que puedas medir mas de dos centimetros con sensor infrarrojo, lo mejor es un ultrasonico, eso si, es mas complicado. En http://www.hobby-elec.org/e_pic6_6.htm encuentras un proyecto de un medidor de distancias; algo complicado pero viene muy bien exlicado. Suerte! B)

15
Microcontroladores / Re: El Ojo Que Todo Lo Ve!!!
« en: Sábado 21 de Febrero de 2004, 14:53 »
Tienes razon, Pero ya que hablas de computadora, no seria mas facil hacer un programa y te evitas armar todos los fierros?

en si lo unico que implementas es un codigo que se incrementa de forma secuencial (o aleatoria para ver nieve de colores  :P ), de todas formas no creo que se vea nada, como bien dices, las conbinaciones son exponeciales...

16
Microcontroladores / Otro Proyecto De Infrarrojos
« en: Sábado 21 de Febrero de 2004, 14:49 »
Solo para comentarles que estoy por inicar un proyecto de control de luz por luz infrarroja. He visto proyectos que controlan reles o algunos otros de proposito general, pero lo que yo quiero es lo siguiente.

Control Universal en formato RC5 programable
Control de potencia variable
Apagado y Encendido gradual (es decir que prenda despacio y se apague igual)
Un Timer de apagado para que cuando nos vayamos a la cama nos de tiempo de acostarnos antes de apagar la luz

El proyecto es bastante simple (hay otros muy buenos por aqui), he incluso he visto uno parecido en la revista Elektor pero creo que es con un chip Atmel y no es facil conseguirlo donde vivo. asi creo voy a usar un chip, aun no decido si sera un 16f84 o uno de la serie 16f87x.

Hasta ahorita el principal problema es la velocidad con que ocurren los eventos, necesito un detector de cruce por cero para detectar el inicio de la onda. la frecuencia aqui es de 60 Hz (Por cierto, soy de Mexico), asi que eso me da periodos de 8.33 mS, y y un comando de RC5 dura 24.889mS, asi que tengo que implementar algo que parezca multitarea, creo que voy a poner un timer que dure 444uS, que es lo que dura un bit de RC5 y generar bases de tiempo para verificar una lista de tareas (aun no lo tengo bien definido).

Otra caracteristica del circuito es que no voy a emplear transformador sino uno un divisor de tension, solo que eso representa un problema (ademas de la limitada corriente que suministra), ya que el divisor usa capacitores en serie lo que defasa el voltaje y me crea problemas para detectar el cruce por cero (indispensable para disparar el triac).

En fin, eso es lo que pretendo hacer; soy nuevo en este foro y espero aprender mucho con la ayuda de ustedes.

saludos! :kicking:

17
Microcontroladores / Re: El Ojo Que Todo Lo Ve!!!
« en: Sábado 21 de Febrero de 2004, 14:23 »
Tecnicamente creo que el proyectoes bueno  ...pero en la practica creo que solo veras una bonita nieve de colores  :rolleyes:

Suerte!

Páginas: [1]