Tag: arduino

如何使用C#应用程序重置Arduino Mega2560?

我注意到Arduino IDE会在启动/退出时由内置的串行应用程序自动重置 其中一条FT232RL硬件流控制线(DTR)通过100纳法电容连接到ATmega1280的复位线。 当该线被置位(取低)时,复位线下降足够长的时间以复位芯片。 我注意到我的串行C#应用程序不会发生这种行为。 我希望重置function适用于我的C#应用​​程序。 我没有做什么让我的C#应用​​程序重置我的Arduino Mega? Arduino和C#的工作代码: 通过将PWM Port12的电线连接到RESET端口,我在大约5分钟内完成了工作。 在Arduino上,我检查了传入的SerialEvent3上的文本RESET。 找到RESET时: pinMode(7, OUTPUT); digitalWrite(7, LOW); 至于C#,它很简单: if (serialPort1.IsOpen) { serialPort1.Write(“RESET”); } 重置似乎按预期工作。

找到Arduino所连接的端口

我知道如何列出可用的串行端口,但每次连接Arduino时我能找到合适的COM端口吗? 应该像MessageBox.Show(COMport);一样打印COM端口MessageBox.Show(COMport); 我想在Visual C#应用程序中读/写Arduino数据。 [ 这对我不起作用]

拔下USB时,COM端口消失

我正在使用USB端口作为连接器为平板电脑设计一种基于Arduino的扩展坞。 这意味着我需要支持在平板电脑上的应用程序运行时插拔USB连接器的能力。 平板电脑运行ac#应用程序(Win7 64位上的.net 4.5),我将连接到Arduino Uno。 启动应用程序时,我使用以下命令循环所有可用的COM端口: var ports = SerialPort.GetPortNames(); // -> [COM3,COM4,COM8] foreach (var port in ports) { var serial = new SerialPort(portname, baudRate); //attempt handshake and connect to right port } 这工作正常,但如果我拔下并重新插入USB电缆并重新尝试重新连接到Arduino(当应用程序仍在运行时),Arduino端口(COM8)不再列在: SerialPort.GetPortNames(); // -> [COM3,COM4] and no COM8 即使重新启动应用程序(使用Arduino重新插入)也会导致仅列出[COM3,COM4]。 让它恢复工作的唯一方法是在应用程序未运行时拔掉并重新插入Arduino。 令我困惑的是,当我在启动应用程序后插入Arduino Uno时,SerialClass会识别新添加的端口并允许我连接。 只有在应用程序运行时拔出并重新插入设备时才会出现此问题。 似乎尽管能够重置COM端口(在代码中或在设备管理器中手动),但SerialClass(以及本机Win32_SerialPort – 我也检查了这一点)无法识别这一点,除非我重新启动应用程序 这可能是什么原因? 如何确保我的应用程序可以重新连接到该端口? 有没有其他方法可以使用SerialPort来处理USB连接器?

C#读Arduino

我正在尝试创建一个从Arduino读取传出信号的应用程序,但我无法在C# Windows窗体中使用它 ,只能在控制台中使用。 我的C#Windows窗体代码是错误的吗? 我调试时没有出现任何错误,但这并不意味着我没有忘记一些事情。 这是我的代码: 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; using System.Threading; namespace CommunicateWithArduino { public partial class Form1 : Form { public static System.IO.Ports.SerialPort port; delegate void SetTextCallback(string text); private BackgroundWorker hardWorker; private Thread readThread = null; public Form1() { […]

C#控制台应用程序通过蓝牙与Arduino交谈

除了这个不起作用之外,在这里说的不多,我不知道为什么。 Arduino上的串行输出什么都没有。 C#代码的输出结果是等待响应然后什么都没有。 当我启动C#程序时,Arduino上的蓝牙卡LED变为绿色,因此正在建立连接。 别无其他。 Arduino代码 #include //Software Serial Port #define RxD 8 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD) #define TxD 7 // This is the pin that the Bluetooth (BT_RX) will receive from the Arduino (TxD) SoftwareSerial blueToothSerial(RxD,TxD); boolean light = false; void setup(){ Serial.begin(9600); […]

如何将NVIDIA核心温度设为整数值?

我正在参加Arduino微控制器课程,我正在研究我的最终项目:一个根据shell温度工作的自动计算机冷却系统。 我无法使用以下来源获取我的NVIDIA GPU核心温度: 此MSDN链接或此NVIDIA链接 。 如何获得GPU的温度值? 我在C#中的知识是基本的,我无法从该手册的尾部或MSDN中的代码示例中找到答案。

不在C#应用程序中发送串行数据

我有两个Arduinos允许使用串行监视器通过串行端口进行消息交换。 如果我在双方使用串行监视器一切正常。 如果我使用我的C#应用​​程序没有任何反应。 我试图从串行监视器发送C#应用程序,它可以工作,但不是相反的。 // … comPort1.Open(); // … private void comPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(processData)); } private void processData(object sender, EventArgs e) { string inData = comPort1.ReadExisting(); msgBoxLog.AppendText(inData); } // … private void sendButton_Click(object sender, EventArgs e) { string my_str = “my string”; msgBoxLog.AppendText(msgBox.Text + my_str); comPort1.Write(msgBox.Text); } RtsEnable和DtrEnable都已启用

如何自动检测Arduino COM端口?

我正在使用带有Firmata库的Arduino与C#应用程序进行通信,我想要消除COM端口配置组件,因为它可以在不同的机器之间进行更改… 是否有可能: 枚举系统中的COM端口列表? (在我的谷歌搜索中,我看到了一些相当丑陋的Win32 API代码,希望现在可能有更清洁的版本) 自动检测哪个COM端口连接到Arduino?