Archivo de la etiqueta: comunicacion

Envio de información de Arduino a VB6.0 y de VB6.0 a Arduino


Este post es para entender el funcionamiento de la comunicación de Arduino con Visual Basic 6.0 y viceversa. He realizado un pequeño programa que nos permite la comunicación desde Arduino a Visual Basic 6.0 mediante puerto serie y de Visual Basic 6.0 a Arduino.

Para comprobar la comunicación desde Arduino a Visual Basic 6.0 vamos a controlarla mediante un pulsador conectado al pin 12 de nuestro Arduino y para comprobar el envío desde Visual Basic 6.0 a Arduino disponemos de un led conectado al pin 13.

El programa en Visual Basic 6.0 también es bastante sencillo, cuenta con dos botones, dos labels, un control de puerto serie y un temporazidor (Timer), para realizar cada 20 ms, en este caso, una acción automáticamente. Aquí una imagen de la aplicación:

Aquí tenéis el código hecho en Visual Basic 6.0:

Option Explicit

Dim dato As String 'Variable para guarda el dato recibido por el puerto serie

'Botón de conectar
Private Sub cmdConectar_Click()
Serie.PortOpen = True   'Abrimos el puerto serie
cmdConectar.Enabled = False 'Deshabilitamos botón de conectar
cmdDesconectar.Enabled = True 'Habilitamos botón de conectar
Timer1.Enabled = True 'Habilitar temporizador
End Sub

'Botón de desconectar
Private Sub cmdDesconectar_Click()
Serie.PortOpen = False  'Cerramos el puerto serie
cmdConectar.Enabled = True 'Habilitamos botón de conectar
cmdDesconectar.Enabled = False 'Deshabilitamos botón de desconectar
Timer1.Enabled = False 'Deshabilitamos temporizador
End Sub

'Función que se realiza automáticamente cada 20 ms
Private Sub Timer1_Timer()
dato = Left(Serie.Input, 1) 'Cortamos el dato que nos llega por puerto serie
'para solamente tener un único caracter
pulsador.Caption = dato 'Asigamos ese dato a nuestra label para mostrar el estado
'del pulsador
Serie.Output = pulsador.Caption 'Enviamos al arduino nuestro dato recibido por puerto serie
End Sub

El código arduino es bastante básico pero que sirve perfectamente para entender la comunicación serie entre VB y Arduino:

//Programa de comunicación bilateral Arduino-Visual Basic 6.0
//Mediante un pulsador enviamos información a visual y desde visual
//dependiendo del estado de ese pulsador mandamos una orden a arduino
//para encender un lez o apagarlo.
//Programa realizado por Regata

int boton=12; //pulsador conectado en pin 12
int led=13;   //led conectado en pin 13

void setup()
{
Serial.begin(9600); //Configuración de puerto serie
pinMode(led,OUTPUT); //Indicamos led como salida
//NOTA: no hace falta indicar el pulsador como entrada
}

void loop()
{
Serial.print(digitalRead(boton),DEC); //Enviamos por puerto serie el
//estado del pulsador hacia VB
if (Serial.available())  //Comprobamos si hay datos desde VB hacia Arduino
{
byte dato; //Variable donde guardaremos el dato recibido por puerto serie
dato=Serial.read();  //Guardamos el dato recibido
switch(dato)
{
case '0': //Apagamos el led si recibimos '0' por puerto serie
digitalWrite(led,LOW);
break;
case '1': //Encendemos el led si recibimos '1' por puerto serie
digitalWrite(led,HIGH);
break;
}
}
delay(30);
}

Aquí tenéis el esquema de conexión:

Y por último os dejo un video del funcionamiento:

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal