Go Down

Topic: Arduino y visual basic (Read 1 time) previous topic - next topic

cocoludro

Jul 20, 2013, 08:51 pm Last Edit: Jul 20, 2013, 09:02 pm by cocoludro Reason: 1
Hola a todos, tengo un problema quiero controlar  varias salidas  pwm de arduino con un potenciometro simulado en visual basic con un solo potenciometro es facil solo hay que pasar el valor de un trackball con un serialwrite y un serial read en  el codigo del arduino pero
mi problema llega cuando quiero poner tres potenciometros en la pantalla de visual basic ¿como hago para enviar los datos y que me reconozca cada uno por separado en el arduino?
   
CODIGO VISUAL BASIC

Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Imports Microsoft.VisualBasic.PowerPacks

Public Class Form1
   Shared _continue As Boolean
   Shared _serialPort As SerialPort
   Dim y As Integer


   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       SerialPort1.PortName = ("com4") 'change com port to match your Arduino port
       SerialPort1.Close()
       SerialPort1.BaudRate = 9600
       SerialPort1.DataBits = 8
       SerialPort1.Parity = Parity.None
       SerialPort1.StopBits = StopBits.One
       SerialPort1.Handshake = Handshake.None
       SerialPort1.Encoding = System.Text.Encoding.Default 'very important!

   End Sub
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       SerialPort1.Open()
   End Sub

   Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll

       TextBox1.Text = TrackBar1.Value
       y = TrackBar1.Value

       SerialPort1.Write(Chr(y))


   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       SerialPort1.Close()
   End Sub
End Class




CODIGO ARDUINO:

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

void loop()
{
char val;
 while(Serial.available() ==0);
val= Serial.read();
analogWrite(2,val);
}

patolin

Te estas ahogando en un vaso de agua. Copia los trackbars en la app de visual basic y los llamas trackbar2 y trackbar3. Luego de igual manera, lees los valores, y los envias al Arduino uno por uno, los 3 en serie, quedando algo así:

serialPort1.open()
serialPort1.write(chr(trackbar1.value()))
serialPort1.write(chr(trackbar2.value()))
serialPort1.write(chr(trackbar3.value()))
serialPort1.close()
Patricio Reinoso M.
patolin.com

cocoludro

#2
Aug 01, 2013, 12:37 pm Last Edit: Aug 01, 2013, 12:40 pm by cocoludro Reason: 1
Gracias por tu respuesta pero mi problema era reconocer en arduino cada uno de los trackbar, al final lo he conseguido enviando un byte con un caracter para reconocer el trackbar y el siguiente byte con el valor del trackbar . Separados por unos 4 mseg tanto en visual basic por medio de un timer,como en la recepcion de arduino por un delay de 4mseg . Un Saludo.

Go Up