Bueno...si ya configuraste el control de COM serial, entonces hace asi:
Private Sub boton1_Click()
MSComm1.Output = Bin2String(10000000) " reemplaza 10000000 por el valor que quieras enviar(8 decimales max) o bien una variable cargada con el valor que quieras enviar.
End Sub
Private Function Bin2String(DatoBin As Long) As String
Dim DatoInt As Integer
Dim Recorre As Integer
DatoInt = 0
For Recorre = 0 To Len(CStr(DatoBin)) - 1
DatoInt = DatoInt + ((2 ^ Recorre) * CInt(Mid(CStr(DatoBin), Len(CStr(DatoBin)) _
- Recorre, 1)))
Next
Bin2String = Chr(DatoInt)
End Function
Lo que hace el programa es tomar el DatoBin(que es un long, pero en el cual en realidad cargas un binario(ceros y uno SI O SI)) y utilizarlo como cadena de texto,y asi poder analizar cada uno de sus digitos.
Si el digito leido es un 1 entonces se eleva 2 al exponente correspondiente a la posicion del digito leido en la cadena.
o sea: si hago
MSComm1.Output = Bin2String(1100001) "
por ejemplo:
Lee el primer digito de der a izq ( o sea, el 1) y hace:
DatoInt = DatoInt(= cero inicialmente) + 2 elevado a la cero ( =1) * digito leido ( =1)
Lee ahora el segundo digito de der a izq ( o sea, el 0 ) y hace:
DatoInt = DatoInt(= 1) + 2 elevado a la uno ( =2) * digito leido ( =0)
Lee ahora el tercer digito de der a izq ( o sea, otro 0 ) y hace:
DatoInt = DatoInt(= 1) + 2 elevado a la dos ( =4) * digito leido ( =0)
Lee ahora el cuarto digito de der a izq ( o sea, otro 0 ) y hace:
DatoInt = DatoInt(= 1) + 2 elevado a la tres ( =8) * digito leido ( =0)
Lee ahora el quinto de der a izq ( o sea, otro 0 ) y hace:
DatoInt = DatoInt(= 1) + 2 elevado a la cuatro ( =16) * digito leido ( =0)
Lee ahora el sexto digito de der a izq ( o sea, un 1 ) y hace:
DatoInt = DatoInt(= 1) + 2 elevado a la cinco ( =32) * digito leido ( =1)
Lee ahora el septimo digito de der a izq ( o sea, otro 1 ) y hace:
DatoInt = DatoInt(=1+32) + 2 elevado a la seis ( =64) * digito leido ( =1)
Entonces al final: DatoInt=1+32+64 = 97
Al final pasa el valor 97 al codigo ASCII para transformarlo en String, que es lo que necesitas para poder enviarlo x el control COM
Entonces la funcion devuelve el caracter correspondiente al valor decimal 97.
Resumiendo, la linea queda:
MSComm1.Output = "a" "ya que a = 97 en ASCII (presiona alt + 97 en un editor de texto y fijate lo que sale)









Espero hayas entendido...Exitos.