Descargar

Juego de Luces Controlado por Computadora (página 2)

Enviado por jaimemontoya


Partes: 1, 2, 3

DETALLES TÉCNICOS PRELIMINARES

Este programa está desarrollado en Visual Basic 2005, pero para su correcto funcionamiento y si se desea modificar el código fuente, deben tomarse en cuenta los siguientes detalles técnicos:

  1. El archivo inpout32.dll debe ubicarse en C:Windowssystem para Windows Vista o en C:Windowssystem32 para Windows XP.
  2. Teniendo instalado Windows Media Player, debe habilitarse para que pueda interactuar con Visual Basic 2005. Para ello se deben seguir estos pasos: ir al menú Herramientas, Elegir elementos del cuadro de herramientas, luego en la pestaña Componentes COM buscar Windows Media Player y ponerle el cheque de selección. Al tener instalado Windows Media Player, automáticamente el archivo DLL necesario se encuentra en C:Windowssystem32wmp.dll.
  3. Si se quiere ejecutar el programa en diferentes computadoras, el código del botón playmusicButton se debe actualizar de acuerdo a la ruta de dirección de los archivos de sonido, específicamente en las siguientes cuatro líneas de código:
  1. Dim song = AxWindowsMediaPlayer.newMedia("C:UsersJaime MontoyaDesktopPort_Testingmyresourcesfocosazulesencendidos.mp3")
  2. Dim song = AxWindowsMediaPlayer.newMedia("C:UsersJaime MontoyaDesktopPort_Testingmyresourcesfocosrojosencendidos.mp3")
  3. Dim song = AxWindowsMediaPlayer.newMedia("C:UsersJaime MontoyaDesktopPort_Testingmyresourcesfocosamarillosencendidos.mp3")
  4. Dim song = AxWindowsMediaPlayer.newMedia("C:UsersJaime MontoyaDesktopPort_Testingmyresourcesfocosverdesencendidos.mp3")
  1. Parallel Port Monitor

    (c) 1997-2002 Fred Bulback

    email: fred[arroba]geekhideout.com

    url:

  2. Verificar que los resultados del programa son correctos y que la comunicación con el puerto paralelo se está haciendo realmente y tal como aparece en las imágenes de las fotos en el programa creado en Visual Basic 2005. Para ello, en vez de medir voltajes en los pines, resulta muy práctico verificar el buen funcionamiento con un programa como el siguiente:
  3. El objeto Timer1 debe estar inicialmente con la propiedad Enabled en False, pues el conteo binario con los focos no se debe iniciar sino hasta que se haga clic en el botón Contador Binario.

FUNCIONAMIENTO DEL PROGRAMA

Al iniciar el programa, aparecerá la siguiente pantalla:

Al hacer clic en el botón Clic On/Off, los focos se encenderán y apagarán al hacer clic sobre ellos. Si el foco está apagado y se hace clic sobre él, se encenderá, y si el foco estuviera encendido y se hiciera clic sobre él, se apagará. Cuando un foco tenga el fondo blanco y un cero debajo de él, significa que está apagado. Cuando un foco tenga fondo anaranjado y un uno sobre él, significa que está encendido. Por ejemplo, luego de encender los focos amarillos y verdes (haciendo clic sobre ellos), se tendrá lo siguiente:

Al hacer clic sobre el botón Contador Binario, se inicializará un conteo binario con los focos, comenzando desde 0 hasta terminar en 255 (11111111 en sistema binario y FF en sistema hexadecimal). Cada segundo se dará un incremento en uno del conteo. Cuando se llegue a 255, se reinicia el contador y sigue el conteo indefinidamente hasta que se ejecute una acción que detenga la cuenta. Si la velocidad es Normal, el incremento en el conteo se irá dando cada segundo; con velocidad Lenta, el incremento en el conteo será cada dos segundos; si la velocidad seleccionada es Rápido, el incremento en el conteo se irá dando cada medio segundo. Por ejemplo, cuando el contador vaya en 157 (10011101 binario y 9D hexadecimal), se verá de esta forma:

El botón Encender Focos simplemente encenderá los ocho focos:

Lo que hará el botón Apagar Focos es simplemente apagar todos los focos:

Al hacer clic sobre el botón Play, se encenderán los focos del color que esté seleccionado en los botones de radio. A la vez, el botón Play de Windows Media Player se activará. Por ejemplo, si estuviera seleccionado el color Rojo y se hiciera clic en el botón Play, encenderían los focos Rojos y se activaría el botón Play de Windows Media Player:

Luego al hacer clic sobre el botón Play de Windows Media Player, se escuchará que los focos rojos están encendidos (rojos en este caso, pues dependiendo de los focos que se encuentren encendidos, ese color dirá la grabación de sonido):

Haciendo clic en el botón Stop, se deshabilitará el sonido, se apagarán todos los focos, y el usuario podrá hacer clic sobre el botón Play y encender otra pareja de focos de otro color, o hacer clic sobre cualquiera de los botones que se muestran en la parte inferior del formulario.

El botón Ayuda mostrará una ventana de ayuda sobre el uso del programa:

El botón Acerca de mostrará la siguiente ventana:

CÓDIGO DEL PROGRAMA

CÓDIGO DEL FORMULARIO acercadeForm.vb

Public Class acercadeForm

Private Sub cerrarButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cerrarButton.Click

Me.Close() 'Cerrar formulario actual.

End Sub

End Class

CÓDIGO DEL FORMULARIO ayudaForm.vb

Public Class ayudaForm

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.Close() 'Cerrar formulario actual.

End Sub

End Class

CÓDIGO DEL FORMULARIO Form1.vb

Option Strict Off

Option Explicit On

Module InpOut32_Declarations

'Inp and Out declarations for port I/O using inpout32.dll.

Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Short) As Short

Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Short, ByVal Value As Short)

End Module

Module variables 'Para declarar variables globales que se van a utilizar al programar.

Public binary378port As String 'Variable para almacenar en una cadena el valor binario del puerto 378 del puerto paralelo.

Public valordecimal As Integer 'Variable para almacenar el resultado de la conversión de binario a decimal.

Public valorshort As Short 'Variable para almacenar en tipo Short el resultado de la conversión de decimal a hexadecimal.

Public contadorfoco7 As Integer 'Variable para controlar el conteo binario con el foco 7.

Public contadorfoco6 As Integer 'Variable para controlar el conteo binario con el foco 6.

Public contadorfoco5 As Integer 'Variable para controlar el conteo binario con el foco 5.

Public contadorfoco4 As Integer 'Variable para controlar el conteo binario con el foco 4.

Public contadorfoco3 As Integer 'Variable para controlar el conteo binario con el foco 3.

Public contadorfoco2 As Integer 'Variable para controlar el conteo binario con el foco 2.

Public contadorfoco1 As Integer 'Variable para controlar el conteo binario con el foco 1.

End Module

Public Class Form1

Private Sub bulb1off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb1off.Click

bulb1on.Visible = True

bulb1off.Visible = False

Label1.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb1on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb1on.Click

bulb1off.Visible = True

bulb1on.Visible = False

Label1.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb2on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb2on.Click

bulb2off.Visible = True

bulb2on.Visible = False

Label2.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb3on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb3on.Click

bulb3off.Visible = True

bulb3on.Visible = False

Label3.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb4on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb4on.Click

bulb4off.Visible = True

bulb4on.Visible = False

Label4.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb5on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb5on.Click

bulb5off.Visible = True

bulb5on.Visible = False

Label5.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb6on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb6on.Click

bulb6off.Visible = True

bulb6on.Visible = False

Label6.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb7on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb7on.Click

bulb7off.Visible = True

bulb7on.Visible = False

Label7.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb8on_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb8on.Click

bulb8off.Visible = True

bulb8on.Visible = False

Label8.Text = "0"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb2off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb2off.Click

bulb2on.Visible = True

bulb2off.Visible = False

Label2.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb3off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb3off.Click

bulb3on.Visible = True

bulb3off.Visible = False

Label3.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb4off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb4off.Click

bulb4on.Visible = True

bulb4off.Visible = False

Label4.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb5off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb5off.Click

bulb5on.Visible = True

bulb5off.Visible = False

Label5.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb6off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb6off.Click

bulb6on.Visible = True

bulb6off.Visible = False

Label6.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb7off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb7off.Click

bulb7on.Visible = True

bulb7off.Visible = False

Label7.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub bulb8off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bulb8off.Click

bulb8on.Visible = True

bulb8off.Visible = False

Label8.Text = "1"

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

azulRadioButton.Select() 'Para que al cargar el formulario aparezca predeterminadamente seleccionado el color azul.

normalRadioButton.Select() 'Para que al cargar el formulario aparezca predeterminadamente seleccionada la velocidad Normal para el conteo binario.

'Se deshabilitan todos los PictureBox al cargar el formulario.

bulb1on.Enabled = False

bulb1off.Enabled = False

bulb2on.Enabled = False

bulb2off.Enabled = False

bulb3on.Enabled = False

bulb3off.Enabled = False

bulb4on.Enabled = False

bulb4off.Enabled = False

bulb5on.Enabled = False

bulb5off.Enabled = False

bulb6on.Enabled = False

bulb6off.Enabled = False

bulb7on.Enabled = False

bulb7off.Enabled = False

bulb8on.Enabled = False

bulb8off.Enabled = False

End Sub

Private Sub contadorbinarioButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles contadorbinarioButton.Click

'Reiniciar variables públicas o globales que coordinan el conteo binario con los focos.

contadorfoco7 = 0

contadorfoco6 = 0

contadorfoco5 = 0

contadorfoco4 = 0

contadorfoco3 = 0

contadorfoco2 = 0

contadorfoco1 = 0

'Si está seleccionada velocidad lenta para el conteo binario.

If lentoRadioButton.Checked = True Then

Timer1.Interval = 2000

End If

'Si está seleccionada velocidad normal para el conteo binario.

If normalRadioButton.Checked = True Then

Timer1.Interval = 1000

End If

'Si está seleccionada velocidadd rápida para el conteo binario.

If rapidoRadioButton.Checked = True Then

Timer1.Interval = 500

End If

'Para quitar sonidos cargados previamente (si es que los hay).

If AxWindowsMediaPlayer.currentPlaylist.count > 0 Then 'Si existiera música cargada, con la siguiente línea se quita.

AxWindowsMediaPlayer.currentPlaylist.removeItem(AxWindowsMediaPlayer.currentMedia)

End If

'Para que no estén activados los botones stopmusicButton y playmusicButton a la vez, sino que solamente uno de los dos.

playmusicButton.Enabled = True

stopmusicButton.Enabled = False

'Se deshabilita el Timer1 para detener el conteo binario (reiniciarlo).

Timer1.Enabled = False

'Se ponen visibles todos los PictureBox con foto de foco apagado y se ponen invisibles todos los PictureBox con foto de foco encendido (para reiniciar el sistema de luces o resetearlo). Se ponen todos los Label en "0".

bulb1off.Visible = True

bulb1on.Visible = False

Label1.Text = "0"

bulb2off.Visible = True

bulb2on.Visible = False

Label2.Text = "0"

bulb3off.Visible = True

bulb3on.Visible = False

Label3.Text = "0"

bulb4off.Visible = True

bulb4on.Visible = False

Label4.Text = "0"

bulb5off.Visible = True

bulb5on.Visible = False

Label5.Text = "0"

bulb6off.Visible = True

bulb6on.Visible = False

Label6.Text = "0"

bulb7off.Visible = True

bulb7on.Visible = False

Label7.Text = "0"

bulb8off.Visible = True

bulb8on.Visible = False

Label8.Text = "0"

'Se deshabilitan todos los PictureBox al inicializar el contador binario.

bulb1on.Enabled = False

bulb1off.Enabled = False

bulb2on.Enabled = False

bulb2off.Enabled = False

bulb3on.Enabled = False

bulb3off.Enabled = False

bulb4on.Enabled = False

bulb4off.Enabled = False

bulb5on.Enabled = False

bulb5off.Enabled = False

bulb6on.Enabled = False

bulb6off.Enabled = False

bulb7on.Enabled = False

bulb7off.Enabled = False

bulb8on.Enabled = False

bulb8off.Enabled = False

'Se habilita el Timer1 para inicializar el conteo binario.

Timer1.Enabled = True

'Timer2andonactivation.Enabled = True

End Sub

Private Sub cliconoffButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cliconoffButton.Click

'Para quitar sonidos cargados previamente (si es que los hay).

If AxWindowsMediaPlayer.currentPlaylist.count > 0 Then 'Si existiera música cargada, con la siguiente línea se quita.

AxWindowsMediaPlayer.currentPlaylist.removeItem(AxWindowsMediaPlayer.currentMedia)

End If

'Para que no estén activados los botones stopmusicButton y playmusicButton a la vez, sino que solamente uno de los dos.

playmusicButton.Enabled = True

stopmusicButton.Enabled = False

'Se deshabilita el Timer1 para detener el conteo binario (por si estuviera activado).

Timer1.Enabled = False

'Se ponen visibles todos los PictureBox con foto de foco apagado y se ponen invisibles todos los PictureBox con foto de foco encendido (para reiniciar el sistema de luces o resetearlo). Se ponen todos los Label en "0".

bulb1off.Visible = True

bulb1on.Visible = False

Label1.Text = "0"

bulb2off.Visible = True

bulb2on.Visible = False

Label2.Text = "0"

bulb3off.Visible = True

bulb3on.Visible = False

Label3.Text = "0"

bulb4off.Visible = True

bulb4on.Visible = False

Label4.Text = "0"

bulb5off.Visible = True

bulb5on.Visible = False

Label5.Text = "0"

bulb6off.Visible = True

bulb6on.Visible = False

Label6.Text = "0"

bulb7off.Visible = True

bulb7on.Visible = False

Label7.Text = "0"

bulb8off.Visible = True

bulb8on.Visible = False

Label8.Text = "0"

'Se habilitan todos los PictureBox.

bulb1on.Enabled = True

bulb1off.Enabled = True

bulb2on.Enabled = True

bulb2off.Enabled = True

bulb3on.Enabled = True

bulb3off.Enabled = True

bulb4on.Enabled = True

bulb4off.Enabled = True

bulb5on.Enabled = True

bulb5off.Enabled = True

bulb6on.Enabled = True

bulb6off.Enabled = True

bulb7on.Enabled = True

bulb7off.Enabled = True

bulb8on.Enabled = True

bulb8off.Enabled = True

'De aquí en adelante es la parte de programación para mandar valores al puerto paralelo.

binary378port = Label1.Text + Label2.Text + Label3.Text + Label4.Text + Label5.Text + Label6.Text + Label7.Text + Label8.Text

'Se convierte el valor binario contenido en la variable "binary378port" a decimal.

valordecimal = 0

For i As Integer = Len(binary378port) To 1 Step -1

valordecimal = valordecimal + Val(Mid(binary378port, i, 1)) * 2 ^ (8 – i) 'Toma el último dígito y lo multiplica por 2 a la cero, luego el penúltimo por 2 a la uno y así sucesivamente, pues se está realizando la conversión de binario a decimal.

Next

'Se convierte el valor decimal (contenido en la variable "valordecimal") al correspondiente hexadecimal en tipo Short.

valorshort = CShort(valordecimal)

'Se manda el valor correspondiente al puerto paralelo para que se enciendan y apaguen los focos correspondientes.

Out(&H378, valorshort) 'En el puerto 378 (valor hexadecimal) del puerto paralelo, se manda como salida el valor hexadecimal contenido en la variable "valorhexadecimal" en tipo Short.

End Sub

Private Sub apagarfocosButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles apagarfocosButton.Click

'Para quitar sonidos cargados previamente (si es que los hay).

If AxWindowsMediaPlayer.currentPlaylist.count > 0 Then 'Si existiera música cargada, con la siguiente línea se quita.

AxWindowsMediaPlayer.currentPlaylist.removeItem(AxWindowsMediaPlayer.currentMedia)

End If

'Para que no estén activados los botones stopmusicButton y playmusicButton a la vez, sino que solamente uno de los dos.

playmusicButton.Enabled = True

stopmusicButton.Enabled = False

'Se deshabilitan todos los PictureBox.

bulb1on.Enabled = False

bulb1off.Enabled = False

bulb2on.Enabled = False

bulb2off.Enabled = False

bulb3on.Enabled = False

bulb3off.Enabled = False

bulb4on.Enabled = False

bulb4off.Enabled = False

bulb5on.Enabled = False

bulb5off.Enabled = False

bulb6on.Enabled = False

bulb6off.Enabled = False

bulb7on.Enabled = False

bulb7off.Enabled = False

bulb8on.Enabled = False

bulb8off.Enabled = False

'Se deshabilita el Timer1 para detener el conteo binario (por si estuviera activado).

Timer1.Enabled = False

 

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente