Go Down

Topic: Puerto Serie y Visual Basic.Net (Read 3446 times) previous topic - next topic

sergioc_g

Estoy intentado hacer una aplicación muy sencilla con Arduino Uno y Visual Basic.Net

La aplicación consiste en leer los valores por el puerto serie y mostrarlos en una interfaz hecha en Visual Basic.Net

Más o menos la aplicación funciona, pero me da un error, que no sé por qué se produce.

El error que me reporta Visual Basic.Net es el siguiente "la conversión de la cadena "" en el tipo Integer no es válida" y no sé el porqué me lo dice.

Adjunto los 2 códigos a ver si alguien me hecha una mano.

CÓDIGO SKETCH ARDUINO

Code: [Select]

int valor;
int resistencia;
byte led = 13;

void setup()
{
  Serial.begin(9600);
  pinMode(led,OUTPUT);
}

void loop()
{
  valor = analogRead(A0);
  resistencia = map(valor,0,1023,0,4700);
  if (resistencia <=15)
  {
    digitalWrite(led,HIGH);
  }
  if (resistencia >=1000)
  {
    digitalWrite(led,LOW);   
  }

  Serial.println(resistencia);
  delay(200);
}



CÓDIGO VISUAL BASIC.NET

Code: [Select]
Public Class Form1

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim lectura As Integer = SerialPort1.ReadExisting
        If lectura = "" Then lectura = lectura  //Intento capturar la cadena "" para transformarla en el valor leído anteriormente
        Label1.Text = lectura

        VScrollBar1.Value = lectura

    End Sub

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


El Timer1 lo tengo configurado con un Interval de 200, el mismo que utilizo en el delay del Sketch

jorgepl


El error que me reporta Visual Basic.Net es el siguiente "la conversión de la cadena "" en el tipo Integer no es válida" y no sé el porqué me lo dice.

        If lectura = "" Then lectura = lectura  //Intento capturar la cadena "" para transformarla en el valor leído anteriormente


Creo que está bastante claro, ¿no? Un entero es un valor numérico, y "" no lo es, es una cadena de caracteres vacía. Por cierto, ¿cómo quieres capturar una cadena vacía?

sergioc_g

HOla Josepl, gracias por intentar ayudarme.

A eso me refiero, durante un rato estoy recibiendo datos de la Arduino de forma correcta, pero llega un momento en el que la interfaz de Visual Basic lee ese carácter vacío y me vuelca el error y no sé solucionarlo.

Go Up