none
Leer un valor y ponerlo en pantalla donde quiera con X, Y. RRS feed

  • Pregunta

  • Hola:

    Quiero recibir datos por el puerto serie. He hecho varios ejemplos. Lo más sencillo es este código de abajo, solo tiene que mostrar número en la posición que yo quiera X, Y del 0 al 1023 que recibe todo el rato. El código le llega desde Arduino y su código es.

    Código Arduino:
    Código
    1. int valorPot=0;
    2.  
    3. void setup(){ Serial.begin(115200); }
    4.  
    5. void loop(){
    6.     valorPot=analogRead(2);
    7.     Serial.println(valorPot);
    8.     delay(100); // 0.1 segundos.
    9. }

    Código C#:
    Código
    1. using System;
    2. using System.IO.Ports; // No olvidar.
    3. using System.Collections.Generic;
    4.  
    5. namespace Porcentaje_Barra_P_Serie_Consola_2_CS
    6. {
    7.    class Program
    8.    {
    9.        public static string Recibidos = "";
    10.  
    11.        // Como variables de clase
    12.        public static string[] Separador = new string[] { ",", "\r", "\n", "/n" };
    13.        public static List<string> Leo_Dato = new List<string>();
    14.  
    15.        static void Main(string[] args)
    16.        {
    17.            Console.Title = "Serial Port C#";
    18.  
    19.            int Variar_este_valor = 0; // De 0 a 1023.
    20.  
    21.            SerialPort Puerto_serie;
    22.  
    23.            // Crear un nuevo objeto SerialPort con la configuración predeterminada.
    24.            Puerto_serie = new SerialPort();
    25.  
    26.            // Configuración.
    27.            Puerto_serie.PortName = "COM4"; // Número del puerto serie.
    28.            Puerto_serie.BaudRate = 115200; // Baudios.
    29.            Puerto_serie.Parity = Parity.None; // Paridad.
    30.            Puerto_serie.DataBits = 8; // Bits de datos.
    31.            Puerto_serie.StopBits = StopBits.Two; // Bits de parada.
    32.            Puerto_serie.Handshake = Handshake.None; // Control de flujo.
    33.  
    34.            // Establecer la lectura / escritura de los tiempos de espera.
    35.            Puerto_serie.ReadTimeout = 500;
    36.            Puerto_serie.WriteTimeout = 500;
    37.  
    38.            Puerto_serie.Open(); // Abre el puerto serie.
    39.  
    40.            Puerto_serie.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
    41.        }
    42.  
    43.        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
    44.        {
    45.  
    46.            // En el evento.
    47.            Leo_Dato.Clear();
    48.            Leo_Dato.AddRange(Recibidos.Split(Separador, StringSplitOptions.RemoveEmptyEntries));
    49.  
    50.            SerialPort sp = (SerialPort)sender;
    51.            Recibidos = sp.ReadLine();
    52.            Console.SetCursorPosition(5, 10); // Posición X, Y.
    53.            Console.Write(Recibidos);
    54.        }
    55.    }
    56. }
    57.  

    Cuando varío el potenciómetro de Arduino, en el puerto serie del PC, en pantalla de C# o modo consola, tiene que aparecer valores que lee el programa, la pantalla se apaga rápido.

    ¿Alguna idea?

    Saludos.

    http://electronica-pic.blogspot.com

    jueves, 21 de abril de 2016 13:14