Ejemplo comunicación serial Arduino y Visual Basic 6

Con estas simples lineas, Visual Basic recibe texto enviado por Arduino
En el código se encuentra una función antirebote para cuando se presiona el botón, la señal pueda ser detectada correctamente.

Código para Arduino:

const int boton = 4;      // Botón conectado al pin 4
const int tiempoantirebote = 10;

int cuenta = 0;     // lleva la cuenta de cuantas veces se presiona el botón
int estadoboton;
int estadobotonanterior;

//-----inicio------------función antirebote----------
boolean antirebote(int pin){
  int contador = 0;
  boolean estado;     // Guarda el estado del boton
  boolean estadoanterior;     // Guarda el último estado del botón

  do {
    estado = digitalRead(pin);
    if (estado != estadoanterior){   //comparamos el estado actual con el anterior
      contador = 0;   // Reiniciamos el contador
      estadoanterior = estado;
      }
      else{
        contador = contador + 1;
      }
      delay(1);
  } while(contador < tiempoantirebote);

  return estado;
}
//-----fin------------función antirebote----------

void setup() {
  Serial.begin(9600);     //Inicia la comunicación serial
  pinMode(boton, INPUT);  //Declara el boton como entrada
}

void loop() {
  estadoboton = digitalRead(boton);     // leemos el estado del boton

  if(estadoboton != estadobotonanterior){     // si hay cambio con respecto al estado anterior
    if(antirebote(boton)){     /// verificamos si está presionado y si lo está,
      Serial.print("Hola");
delay(1000);
    }
  }

  estadobotonanterior = estadoboton;      // guarda el estado del boton
}






Código para Visual Basic 6:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
MSComm1.PortOpen = True
Sleep 2000
End Sub

Private Sub MSComm1_OnComm()
Dim ReceivedData As String
ReceivedData = MSComm1.Input
Text1.Text = Text1.Text & ReceivedData
Label1.Caption = ReceivedData
End Sub

Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub

Private Sub Text1_Change()
Text1.SelStart = Len(Text1.Text)
Text1.SelLength = 0
End Sub

Private Sub Timer1_Timer()
Label1.Caption = MSComm1.Input

End Sub


Label1 recibe el mensaje Hola, que aparece en pantalla.