Pages: [1]   Go Down
Author Topic: Arduino y visual basic  (Read 985 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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);
}
« Last Edit: July 20, 2013, 02:02:40 pm by cocoludro » Logged

Cuenca, Ecuador
Offline Offline
Newbie
*
Karma: 1
Posts: 21
Patricio Renoso Mendoza
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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()
Logged

Patricio Reinoso M.
patolin.com

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

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.
« Last Edit: August 01, 2013, 05:40:17 am by cocoludro » Logged

Pages: [1]   Go Up
Jump to: