Pages: [1]   Go Down
Author Topic: Puerto Serie y Visual Basic.Net  (Read 2953 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 38
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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:
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
Logged

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 38
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Pages: [1]   Go Up
Jump to: