Hola a todos,
Soy nuevo en este tema de arduino y comunicación con una interfaz grafica. En este caso estoy utilizando VB.net 2017, el tema es el siguiente estoy monitoreando una entrada analogicas y digitales. Cuando activo la interfaz grafica el arduino (Arduino Mega) este no siempre se conecta y realiza un loop y seguidamente este queda congelado.
El código que tengo en el arduino es el siguiente:
int jqz[]={8,9,10,11,12,13};
int ent[]={2,3,4,5,6,7};
int cont=6;
void setup() {
Serial.begin(9600);
for(int conta=0;conta<cont;conta++)
{pinMode(jqz[conta],OUTPUT);}
for(int conta=0;conta<cont;conta++)
{pinMode(ent[conta],INPUT_PULLUP);}
}
void loop() {
String jacu = Serial.readStringUntil('\n');
if (jacu.equals("081")){
digitalWrite(jqz[0],HIGH);
}
else if (jacu.equals("080")){
digitalWrite(jqz[0],LOW);
}
if (digitalRead(ent[0])){
digitalWrite(ent[0],true);
Serial.write("pin021");}
else{
digitalWrite(ent[0],false);
Serial.write("pin020");
}
}
Para el VB utilizo lo siguiente
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Timer1.Start()
Inicializa(hab1, 1)
arduino.PortName = "COM8"
arduino.BaudRate = 9600
arduino.DataBits = 8
arduino.Parity = IO.Ports.Parity.None
arduino.StopBits = IO.Ports.StopBits.One
If Not arduino.IsOpen Then
arduino.Open()
End If
End Sub
Private Sub arduino_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles arduino.DataReceived
Dim string1 As String = arduino.ReadExisting()
If string1.Equals("pin020") Then
hab1.bgcolor = Color.Blue
End If
Invoke(subrotinaSTR, string1)
End Sub
Sub tratamentoSTR(ByVal meustring As String)
TextBox2.Text = meustring
End Sub
Les agradezco cualquier ayuda
Saludos