none
Comunicar aplicación en C# con microcontrolador mediante el puerto serie RRS feed

  • Debate general

  • Saludos a los miembros de este Foro,

    La comunicación serie es muy empleada en el desarrollo de proyectos mecatrónicos, diversidad de sensores usan este tipo de comunicación, actualmente me encuentro trabajando en un sistema de adquisición de datos  y debe ser desarrollado en Microsoft C#, si alguien puede ayudar en este tema se lo agradecería, saludos

    • Cambiado Rudedog2 lunes, 22 de octubre de 2012 18:56 : Gracias a web.Jose y Leandro Tuttini (De:Visual C# Language)
    • Cambiado webJose miércoles, 31 de octubre de 2012 2:03 (De:Lenguaje C#)
    viernes, 19 de octubre de 2012 4:45

Todas las respuestas

  • Post in English

    Mark Answered, if it solves your question and Vote if you found it helpful.
    Rohit Arora

    viernes, 19 de octubre de 2012 5:50
  • Me encuentro programando la aplicación en la PC pero tengo un problema ya que no tengo salidas en el puerto serie, el código es el siguiente

             

    using System.IO.Ports;

    private static void SendSampleData() 


      // configurando la comunicación

    SerialPort port = new SerialPort( "COM1", 9600, Parity.None, 8, StopBits.One); 
    port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); 
      //Abrir Puerto
      port.Open(); 

      // Escribiendo cadena de caracteres

      port.Write("Hello World"); 
      port.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3); 

      // Cerrar Puerto
      port.Close(); 
     }


    @ltheux

    domingo, 21 de octubre de 2012 21:45
  • Preguntale aqui --->  http://social.msdn.microsoft.com/Forums/es-es/vcses/threads

    MSDN 


    Mark the best replies as answers. "Fooling computers since 1971."

    http://thesharpercoder.blogspot.com/


    • Editado Rudedog2 lunes, 22 de octubre de 2012 2:15
    lunes, 22 de octubre de 2012 2:12
  • Yup.  It got moved correctly.

    Jose R. MCP
    Code Samples

    lunes, 22 de octubre de 2012 18:58
  • Hola Carlos

    Podría ayudarte, en mi trabajo cree una app que maneja instrumentos de medición (envía comandos, lee mediciones, etc...) creo que te puedo ayudar, pero en que parte tienes problema? Saludos

    lunes, 22 de octubre de 2012 19:02
  • Hola Cruznick,

    Estoy tratando de adquirir la información del sensor Maxbotix LV-EZ1, este sensor de ultrasonido proporciona múltiples salidas de señal Analógica, PWM y una de ellas es serie, tiene terminales TX-TX y Gnd respectivamente (trasmisión asíncrona), mediante un programa escrito en Microsoft C# quiero leer sus datos adjunto una imagen del sensor y el enlace con sus características: https://www.sparkfun.com/products/639


    @ltheux

    martes, 23 de octubre de 2012 0:15
  • Gracias Rudedog2, busque en el foro que recomiendas pero no encontré  una solución optima, es por ello que inicie esta pregunta, ahora muchos equipos electrónicos necesitan comunicarse con una aplicación de ordenador, seleccione C# y espero poder completar este pequeño proyecto, muchas gracias...



    martes, 23 de octubre de 2012 0:19
  • Hola

    No he podido ver el enlace, pero básicamente necesitas, conocer los parámetros necesarios para configurar el puerto serie (BaudRate, dataBits, parity... etc) una vez que conozcas estos parámetros y configures el puerto serie debes poder establecer la comunicación con el modulo.

    Solo te faltaría entonces conocer el protocolo de comunicación con el modulo, o sea: que comandos acepta y de que manera debes enviarlos para que los interprete correctamente (por ejemplo (un ejemplo sencillo) quizás requiere $ como inicio y fin de cadena y entre $ y $ va el comando); Luego es cuestión de saber, de que forma responde a los comandos y queda de tu parte interpretar su respuesta. Eso seria todo :D

    Saludos.

    martes, 23 de octubre de 2012 12:17
  • Hola:

    Antes que nada, algún moderador mueva este tema donde corresponde en la sección del foro llamado

    Comunicación con dispositivos externo

    Tutorial o manual sobre el control del puerto serie envio y recibo de datos bajo C#.

    Ver manual

    Código completo de un ejemplo sobre el COM1.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    using System.IO.Ports; // Do not forget.
    
    namespace PicRS232
    {
        public partial class Form1_Principal : Form
        {
            // Use a string as the receive buffer.
            string Recibidos;
            public Form1_Principal()
            {
                InitializeComponent();
                // Open port while running the application.
                if (!serialPort1.IsOpen)
                {
                    try
                    {
                        serialPort1.Open();
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
                // Run the Reception function by triggering the Event 'DataReived'.
                serialPort1.DataReceived += new
                System.IO.Ports.SerialDataReceivedEventHandler(Recepcion);
            }
            // Upon receiving the data.
            private void Recepcion(object sender, 
                    System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                // Collecting the characters received to our 'buffer' (string).
                Recibidos += serialPort1.ReadExisting();
                // Invoke or call the process of hatching.
                this.Invoke(new EventHandler(Actualizar));
            }
            // Process the data received in the full frame buffer and extract.
            private void Actualizar(object s, EventArgs e)
            {
                // Assign the value of the plot to the RichTextBox.
                richTextBox_visualizar_mensaje.Text = Recibidos;
            }
            private void button_t_Click(object sender, EventArgs e)
            {
                byte[] mBuffer = new byte[1];
                mBuffer[0] = 0x74; //ASCII letter "t".
                serialPort1.Write(mBuffer, 0, mBuffer.Length);
            }
    
            private void button_b_Click(object sender, EventArgs e)
            {
                byte[] miBuffer = new byte[1];
                miBuffer[0] = 0x62; //ASCII letter "b".
                serialPort1.Write(miBuffer, 0, miBuffer.Length);
            }
    
            private void button_a_Click(object sender, EventArgs e)
            {
                byte[] mBuffer = new byte[1];
                mBuffer[0] = 0x61; //ASCII letter "a".
                serialPort1.Write(mBuffer, 0, mBuffer.Length);
            }
    
            private void button_l_Click(object sender, EventArgs e)
            {
                byte[] mBuffer = new byte[1];
                mBuffer[0] = 0x6C; //ASCII letter "l".
                serialPort1.Write(mBuffer, 0, mBuffer.Length);
            }
    
            private void button_Espacio_Click(object sender, EventArgs e)
            {
                byte[] mBuffer = new byte[1];
                mBuffer[0] = 0x20; //ASCII letter "Space".
                serialPort1.Write(mBuffer, 0, mBuffer.Length);
            }
    
            // Show local time.
            private void timer1_Tick(object sender, EventArgs e)
            {
                statusStrip1.Items[0].Text = DateTime.Now.ToLongTimeString();
            }
    
            // We always show the message below.
            private void richTextBox_visualizar_mensaje_TextChanged(object sender, EventArgs e)
            {
                richTextBox_visualizar_mensaje.SelectionStart = 
                            richTextBox_visualizar_mensaje.TextLength;
                richTextBox_visualizar_mensaje.ScrollToCaret();
            }
        }
    }

    http://www.codeproject.com/Articles/46603/A-PicRS232-control-with-a-PIC-microcontroller-seri

    Suerte con el proyecto.


    http://electronica-pic.blogspot.com


    • Editado Metaconta miércoles, 24 de octubre de 2012 7:07
    martes, 23 de octubre de 2012 23:06
  • Muchas gracias estimado Metaconta, el código es muy útil, ahora a poner la mano en el proyecto... 

    @ltheux

    sábado, 27 de octubre de 2012 23:56
  • Buenas:

    Si te ha sido útil, no olvides marcar como respuesta correcta en el botón verde.

    Saludo y mucha suerte.


    http://electronica-pic.blogspot.com

    domingo, 28 de octubre de 2012 7:58
  • amazing!!

    miércoles, 31 de octubre de 2012 1:23
  •  microsoft C# es un lenguaje de programación muy útil..
    miércoles, 31 de octubre de 2012 1:43