Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Tutoriales / Fragmentos / C# / Comunicación puerto serie entre Arduino y C#

Comunicación puerto serie entre Arduino y C#

Luis del Valle Hernández

Cuando programamos el microcontrolador de Arduino, lo hacemos a través del puerto serie. Este puerto nos permite cargar el programa, pero también sirve para monitorear, de forma sencilla, los datos de salida de los sensores conectados y poderlos visualizar en alguna aplicación. En este fragmento te voy a explicar cómo podemos hacer la comunicación puerto serie entre Arduino y C# para que tu mismo puedas crearte tus propias aplicaciones en Visual Studio.

Para comunicar tu pc con Arduino a través del puerto serie tienes que hacer uso de una clase llamada SerialPort. Esta clase será la encargada de comunicar a través del puerto serie con Arduino. La clase expone una serie de propiedades y de métodos que nos ayudan a configurar el protocolo de comunicación.

BaudRate

Obtiene o establece la velocidad en baudios del puerto serie. Un baudio es el número de señales por segundo, se trata de una medida usada en telecomunicaciones. Si quieres saber más puedes ira a la Wikipedia y ver la definición. Normalmente utilizaremos 9600 y debe ser igual a la que ponemos en la configuración de Arduino.

PortName

Obtiene o establece el puerto de comunicaciones. Dependerá del puerto COM asignado a cada placa de Arduino. Una manera de saber que número de puerto tenemos asignado es a través del IDE de desarrollo, en Herramientas/Puerto podemos verlo.

  • arduino-herramientas-puerto

Una vez configuradas estas dos propiedades podríamos empezar a comunicar con Arduino, para ello solo debemos de hacer uso del método Open() que abre una nueva conexión. Para leer los datos que nos van llegando de Arduino utilizaremos el evento DataReceived asociado a la clase SerialPort que nos avisará cuando haya un dato nuevo en el puerto serie es decir, cada vez que se escriba una línea en el puerto serie a través de Arduino. En C# utilizamos el método ReadLine(), que nos devolverá la línea escrita.

DataReceived recibe dos parámetros por defecto. Por un lado un sender del tipo object, este parámetro contiene la instancia de la clase SerialPort que ha lanzado el evento. Por otro lado SerialDataReceivedEventArgs que proporciona datos para este evento.

Por lo tanto y recopilando la información, declaramos una instancia de SerialPort, asignamos la propiedades BaudRate y PortName, asignamos el evento DataRecived y abrimos la conexión con Open(). Dentro del delegado que hemos creado para el evento DataRecived debemos leer las líneas que nos va mandando Arduino. Os dejo a continuación el código que debemos utilizar en C#.

using System.IO.Ports;

namespace RadarSonarWPF.Class
{
    public class ComunicacionPuertoSerie
    {
        // Nueva instancia de la clase
        SerialPort serialPort = new SerialPort();

        public ComunicacionPuertoSerie()
        {
            // Asignamos las propiedades
            serialPort.BaudRate = 9600;
            serialPort.PortName = "COM5";

            // Creamos el evento
            serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived);

            // Controlamos que el puerto indicado esté operativo
            try
            {
                // Abrimos el puerto serie
                serialPort.Open();
            }
            catch 
            {
                
            }
            
        }

        private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            // Obtenemos el puerto serie que lanza el evento
            SerialPort currentSerialPort = (SerialPort)sender;

            // Leemos el dato recibido del puerto serie
            string inData = currentSerialPort.ReadLine();
        }
    }
}

Bueno pues hasta aquí este sencillo código de ejemplo para comunicar Arduino con cualquier aplicación escrita en C# a través del puerto serie.

home assistant 2026.7

Automatizaciones Home Assistant 2026.7: por fin hablan en humano

¿Cuántas veces te has sentado delante del ordenador para hacer una triste automatización y has acabado queriendo tirar el teclado por la ventana? Eso … [+ info...]

comparativa home assistant y homey

Comparativa Home Assistant y Homey: qué sistema domótico comprar

Comparativa Home Assistant y Homey: si estás pensando en montar una casa inteligente de verdad, tarde o temprano te vas a encontrar con esta duda. ¿Me … [+ info...]

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.