Rebeater
Usuario (México)

En esta publicación aprenderemos como conectar nuestra placa Arduino con una aplicación para computadora creada en Visual Studio de manera directa mediante el puerto serie. Programación en Arduino Para este ejemplo empezaremos por algo sencillo, el HOLA MUNDO de la electrónica, encender un led. En nuestra placa Arduino en el pin 13 tenemos un led conectado a una resistencia así que la aprovecharemos. En el Setup colocamos el pin 13 como Salida ademas de iniciar el puerto serial.Void Setup() { pinMode(13, OUTPUT); Serial.Begin(9600); } Lo siguiente será hacer el loop en el cual haremos uso de la sentencia Serial.available() esta nos regresa el número de bytes disponibles para lectura en el puerto serie. En caso de que no estemos mandando nada por el puerto serie el valor devuelto es 0 y nosotros leeremos solamente cuando el número de bytes enviados sea mayor que 0. Void loop() { if (Serial.available() > 0) { int lectura = Serial.read(); //Leemos el puerto serie y lo guardamos en lectura if(lectura == '1') //Si lectura es igual a 1 Encendemos el led { digitalWrite(13, HIGH); } else if(lectura == '0') //Si lectura es igual a 0 Encendemos el led { digitalWrite(13, LOW); } } } Con ese código ya estaría funcionando nuestro arduino para usar el monitor serie enviando 1 para encender y 0 para apagar. lo siguiente es la aplicación en Visual Studio Programación en Visual Studio Explicare primero como funciona en consola y luego lo veremos en una aplicación visual con Windows Form. Tanto en consola como en Form usaremos la herramienta SerialPort. Consola Empezaremos agregando el Using para usar los puertos. Using System.IO.Ports; Ahora en el Main instanciamos el SerialPort SerialPort serial1 = new SerialPort("COM3", 9600); De esta manera creamos el puerto serial estableciendo el nombre del puerto como COM3 a 9600 baudios Abrimos el puerto y ya estaremos listos para realizar la comunicación serial1.Open(); Mandaremos un mensaje con los valores que podemos ingresar Console.WriteLine("Presione 1 para encender, 0 para apagar o X para salir" ); Comenzamos a leer la consola y enviar datos. Crearemos un string llamado valor que nos servirá como contenedor de lo que escribimos en consola string valor = ""; while(valor != "x" ) { valor = Console.ReadLine() if(valor == "1" ||valor == "0" ) valor = serial1.Write(valor); } Entramos a un ciclo While hasta que valor sea igual a x. leemos la consola y entramos al if donde solo entra si valor contiene 1 ó 0, de ser así mandaremos el valor por el puerto serial. Al salir cerramos el puerto serie serial1.Close(); Windows Form Iniciemos una nueva aplicación de Windows Forms y lo primero que haremos sera agregar la herramienta SerialPort desde el Cuadro de herramientas, luego iremos al constructor del Form1 de nuestra aplicación y establecer lo siguiente: Public Form1() { InitializeComponent(); serialPort1.PortName = "COM3"; serialPort1.BaudRate = 9600; serialPort1.Open(); } Con esto ya queda establecido el puerto serie con el nombre "COM3" a 9600 baudios Agregamos dos botones a uno lo llamamos Encender y al otro Apagar, si queremos podemos agregar un Label para que nos de información del estado del led. Botón Encender En el evento click del botón Encender enviamos "1" por el puerto y escribimos el estado en el label1 Private void btn_Encender_Click(object sender, EventArgs e) { serialPort1.Write("1" ); label1.Text = "Led Encendido"; } Botón Apagar En el evento click del botón Apagar enviamos "0" por el puerto y escribimos el estado en el label1 private void btn_Apagar_Click(object sender, EventArgs e) { serialPort1.write("0" ); label1.Text = "Led Apagado"; } Para no tener problemas de dejar el puerto abierto al cerrar la aplicación en el evento FormClosing cerraremos el puerto. private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (serialPort1.IsOpen) serialPort1.Close(); } Ahora a probar! link: https://www.youtube.com/watch?v=pqrHkvonZ2A