- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 11

Thema: Arduino mit Perl steuern

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Ok. Hier mein C#-Arduino-Kommunikations-Programm.
    -Es ist zugeschitten auf das oben gepostete Arduino-Programm.
    -Es ist ein einfaches Konsolenprogramm, das sich den Arduino-Port selbst sucht.
    -Im Projektmappenexplorer von Visual-Studio:
    • Rechtsklick auf das Projekt im Projektexplorer
    • Hinzufügen -> Verweis
    • Haken bei System.Management hinzufügen (Framework)




    --- Hauptprogramm ---
    Code:
    using System;
    using System.IO.Ports;
    using System.Linq;
    using System.Threading;
    
    namespace ConnectToArduino
    {
        class Program
        {
            static void Main(string[] args)
            {
                #region --- Start ---
                ConnectionManager manager = new ConnectionManager();
                SerialPort arduinoPort;
                if (manager.SerialPorts.Count > 0)
                {
                    arduinoPort = manager.SerialPorts.ElementAt(0).Value;
                    Console.WriteLine("Arduino found: {0}\n", manager.SerialPorts.ElementAt(0).Key);
                }
                else
                {
                    Console.WriteLine("No Arduino found!");
                    Console.WriteLine("<Press Key to exit program>");
                    Console.ReadKey();
                    return;
                }
                try
                {
                    arduinoPort.Open();
                }
                catch (Exception)
                {
                    Console.WriteLine("Port already open!");
                    Console.WriteLine("<Press Key to exit program>");
                    Console.ReadKey();
                    return;
                }
                #endregion
    
    
                #region --- Send and Receive ---
                arduinoPort.Write("1");
                Thread.Sleep(100);
                Console.WriteLine("Response from Arduino after sending \"1\": {0}", arduinoPort.ReadLine());
                Thread.Sleep(1000);
    
                arduinoPort.Write("0");
                Thread.Sleep(100);
                Console.WriteLine("Response from Arduino after sending \"0\": {0}", arduinoPort.ReadLine());
                Console.WriteLine("<Press Key to exit program>");
                Console.ReadKey();
                #endregion
    
    
                #region --- End Program ---
                try { arduinoPort.Close(); }
                catch (Exception){ return; }
                #endregion
            }
        }
    }
    --- ConnectionManager ---
    Code:
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO.Ports;
    using System.Linq;
    using System.Management;
    
    namespace ConnectToArduino
    {
        public sealed class ConnectionManager
        {
            public Dictionary<string, SerialPort> SerialPorts { get; private set; }
    
            public ConnectionManager()
            {
                FindArduinoDevices();
            }
    
            private void FindArduinoDevices()
            {
                var dict = new Dictionary<string, SerialPort>();
                try
                {
                    foreach (ManagementObject device in
                        new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_SerialPort").Get())
                    {
                        if (!device["PNPDeviceID"].ToString().Contains("VID_2341")) continue;
                        var port = new SerialPort();
                        var config = device.GetRelated("Win32_SerialPortConfiguration")
                                           .Cast<ManagementObject>().ToList().FirstOrDefault();
                        port.PortName = device["DeviceID"].ToString();
                        port.BaudRate = (config != null)
                                            ? int.Parse(config["BaudRate"].ToString())
                                            : int.Parse(device["MaxBaudRate"].ToString());
                        dict.Add(device["Description"].ToString(), port);
                    }
                    SerialPorts = dict;
                }
                catch (ManagementException mex)
                {
                    Debug.WriteLine(@"An error occurred while querying for WMI data: " + mex.Message);
                }
            }
        }
    }
    Geändert von Sisor (28.09.2014 um 20:38 Uhr)

Ähnliche Themen

  1. Arduino mit IR (fern)steuern
    Von invisible09 im Forum Arduino -Plattform
    Antworten: 2
    Letzter Beitrag: 30.01.2013, 08:32
  2. Modellbau Fhrtenregler mit Arduino steuern
    Von Sebastian Meyer im Forum Arduino -Plattform
    Antworten: 12
    Letzter Beitrag: 04.03.2012, 19:59
  3. [ERLEDIGT] [ARDUINO] 2 Motoren + Servo mit dem Arduino Uno steuern
    Von Torrentula im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.08.2011, 16:31
  4. PNP mit Arduino steuern
    Von Arduino99 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.12.2009, 11:13
  5. LPT & COM mit PERL ansprechen
    Von Free Faq im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 31.08.2005, 22:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests