elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Eléctronica - Display7seg
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eléctronica - Display7seg  (Leído 1,587 veces)
Myth.ck


Desconectado Desconectado

Mensajes: 303


Algorithmics & C++ Studient


Ver Perfil
Eléctronica - Display7seg
« en: 17 Noviembre 2008, 16:34 pm »

Hola... Estoy desarrollando un programa para la visualización de números en display de 7 segmentos hechos con shapes...

1º Hice un SHAPE1(Index as integer), con la cual controladré cada segmento de dicho "display"
2ºIncluí dos procedimientos para el conteo ascendente y descendente.
3ºIncluí un botón de pause.

Bueno como verán ya se imaginaron todo el código y es algo sencillo.

El problema es que solo controlo una sola matriz:

Private Sub Tmr_Contar_Ascendente()
cnt=cnt+1
if cnt=999 then
   cnt=0
end if
unidades= (cnt\10)MOD 10 ' me otorga el valor de las unidades para el display
display7seg
End Sub

Ahora bien en la rutina display7seg hago un select case para unidades...

Como debería hacer para que por ejemplo si pondría
decenas=(cnt\10) MOD 100
Me las muestre en otro display (otra matriz) con las mismas propiedades? y no tener que hacer un select case decenas y describir cuales son los segmentos a encender?, a lo que me refiero es que con sólo los datos de unidades, decenas y centenas pueda controlar tres display, con las mismas propiedades y no tener que hacerlo por separado...

Salu2"


En línea

Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Eléctronica - Display7seg
« Respuesta #1 en: 17 Noviembre 2008, 22:54 pm »

Podes hacer algo asi y poner el select case adentro del for

Código:
Option Explicit

Private Sub Form_Load()

    Dim lVal As Long
    Dim i As Long
   
    lVal = 10

    For i = Len(CStr(lVal)) - 1 To 0 Step -1
        Debug.Print Mid$(CStr(lVal), Len(CStr(lVal)) - i, 1)
    Next
End Sub


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Myth.ck


Desconectado Desconectado

Mensajes: 303


Algorithmics & C++ Studient


Ver Perfil
Re: Eléctronica - Display7seg
« Respuesta #2 en: 19 Noviembre 2008, 12:04 pm »

Hola... Mira este es el programa...

http://rapidshare.com/files/165278303/7segdisplay.rar.html

Lo que necesito es que a partir de una sola matriz de segmentos es decir Shape1(Index as Integer)controle los demás dígitos, para no tener que hacer un respectivo select case para cada segmento... Es algo parecido a la técnica de multiplexado en microcontroladores...

Salu2
En línea

Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.
Jedaias

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Eléctronica - Display7seg
« Respuesta #3 en: 21 Noviembre 2008, 18:17 pm »

Hola, he estado testeando tu programa. Por lo pronto te digo que no creo que sea posible hacerlo como tu quieres, ya que aun cuando muestres el valor de una variable en 2 displays, necesariamente tienes que hacer el case para cada display. Es como utilizar un decodificador BCD a 7 Segmentos en electronica, utilizas un PIC para hacer el contador pero 1 deco para cada display.

De todos modos seguire intentando a ver que se puede lograr  ;)
En línea

Myth.ck


Desconectado Desconectado

Mensajes: 303


Algorithmics & C++ Studient


Ver Perfil
Re: Eléctronica - Display7seg
« Respuesta #4 en: 21 Noviembre 2008, 19:03 pm »

Gracias por responder...

Lo que a mi me parece es que no es algo muy "elegante o profesional" el código, ustedes que dicen?, osea teniendo en cuenta que no es algo muy complejo o terminado

Salu2!
En línea

Un intelectual es un hombre que usa más palabras de las necesarias para decir más cosas de las que sabe.
Jedaias

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Eléctronica - Display7seg
« Respuesta #5 en: 21 Noviembre 2008, 19:34 pm »

Bueno, eso depende de las circunstancias, porque no es lo mismo presentarlo en una empresa ante ejecutivos a presentarlo a un profesor para una calificacion. Aun asi, seran pocas las personas que te pregunten por el codigo, y eso te lo digo por experiencia, les importa mas que trabaje y cumpla con lo que te pidieron que haga.

Desde mi punto de vista le doy mas peso a la funcionalidad. Si hace lo que quieres que haga entonces esta bien.

A mi me ha pasado que haciendo un progama me salian varias linas, que despues de un tiempo al aprender mas de programacion en VB, simplificaba algunos pasos.

Aun asi le segire pensando, si logro algo te lo informare.

Editando:

Lo que se me ocurrio es declarar una variable sin tipo, y con un for ir recorriendo todos los elementos del form, de manera que cuando encontrara un elemento shape llamar una funcion, pasandole como parametro el nombre del elemento shape y el valor, para encender los segmentos , pero me marca error de referencia al objeto.
Tampoco me funciono declarando una variable tipo shape. Ejemplo del codigo:

Código
  1. Dim Elemento
  2. For each Elemento in Frm_7segDisplay.Controls
  3.   if typeof Elemento is shape
  4.      call Segmentos(Elemento, num)
  5.   end if
  6. Next
  7.  
  8. sub Segmentos(vElemento as shape, vNum as integer)
  9.   Select Case vNum
  10.      Case "0"
  11.         vElemento.BackColor= &H40&
  12.         ...
  13.   End Select
  14. End Sub
  15.  

Saludos  ::)
« Última modificación: 21 Noviembre 2008, 23:31 pm por Jedaias » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines