0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用C#程序连接Arduino

454398 来源:wv 2019-09-23 11:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:创建一个新应用程序

怎样用C#程序连接Arduino

打开Visual Studio并创建一个新的Windows窗体应用程序。然后,当出现表格1时,从SerialPort类开始添加任意数量的控件。

如果要将Arduino支持添加到预制程序中,则只需添加SerialPort类。如果您比较高级,则可能只想使用SerialPort库制作一个普通的代码文件,这样就不必继续对其进行定义。

步骤2:配置串行端口

唯一需要更改的是

-BaudRate(更改此项以匹配Arduino代码(Serial.begin(这是您的波特率))

-端口名称(编译和上传时,您需要选择一个端口,通常以COM开头)

-也许读取缓冲区大小并写入缓冲区

第3步:使用串行端口,只有在您打算读取/写入的数据量大于4096Bytes的读取数据或向arduino写入2048Bytes的数据时,此设置通常保持不变。代码。

在按钮上,或者单击任何具有“事件”的控件时,只需双击该控件,它将显示在代码窗口中。这里有一些您可以在其中使用的代码。如果语句相同!

大多数代码是相似的;但是

Arduino代码C#代码

布尔布尔

unsigned any u any

random(新System.Random( ))。Next()

C#没有时间选项,例如delay()delayMicroseconds()。

Other Stuff(在顶部?!)

serialPort1。打开(); -打开串行端口供您使用。如果端口已打开或端口不存在,将出现一个严重的错误。

serialPort1.BytesToRead-使用if语句将其与0进行比较。如果结果为false,则表示有可用的串行数据(if(serialPort1.BytesToRead == 0)与arduino if(Serial.available)相同)

与Arduino对话

serialPort1.Write( arg ); -告诉arduino,您要说的是 arg 。如果未打开端口,则将出现一个非常讨厌的错误。

serialPort1.WriteLine( arg ); -与serialPort1.Write( arg )相同;但总是添加“ n”。

从Arduino读取

string read = serialPort1.ReadTo( arg ); -读取串行数据,直到找到 arg 中的文本,然后将其作为 read 返回。如果未打开端口,也会出现错误。

string 读取 = serialPort1.ReadLine();-与serialPort1.ReadTo(“ n”)相同;

string read = serialPort1.ReadToEnd(); -继续读取直到没有更多数据可读取,然后以字符串 read 的形式返回。

步骤4:示例第1部分-C#Part

在两个示例页面上,我都附加了源代码文件。要打开文件,请将文件解压缩到您想要的任何位置,然后打开CS文件夹,然后双击.csproj文件。

我要有一个可更改RGB LED颜色的程序。 ,每次单击按钮时,我将需要在控件上使用一个按钮,以及一个serialPort。

我将按钮和串行端口添加到了表单中,然后调整按钮的大小以适合它。

然后添加了一个串行端口,并将PortName更改为COM4。这可能与您的计算机有所不同。

然后我双击按钮,将其更改为代码视图。在 button1_Click(对象发送者,EventArgs e)中,我添加了代码(此代码中有一些错误处理代码。):

if(!serialPort1.IsOpen)

{

try

{结果serialPort1.Open();结果,serialPort1.Write( “T”);结果,serialPort1.Close();结果,}结果,赶上结果{结果的MessageBox。 Show(“发生错误。请确保选择了正确的端口,并且已插入设备。”);

}

}

步骤5:示例第2部分-Arduino部分

在两个示例页面上,我都安装了源代码文件。要打开,请将文件解压缩到所需的位置,然后打开Arduino编程环境,然后打开在Arduino文件夹和子文件夹下找到的文件。

已连接RGB LED到

RCo GB LED引脚

13 12 1110 Ardunino数字引脚

void setup()

{ pinMode(13,OUTPUT);

》 pinMode(12,OUTPUT);

pinMode(11,OUTPUT);

pinMode(10,OUTPUT);

digitalWrite(11,LOW);

digitalWrite(13,HIGH);

}

int led = 1;

无效循环()

{

if(Serial.available())

{ switch( led)

{

案例1:led = 2;

digitalWrite(13,LOW);

digitalWrite(12,HIGH);

break;

案例2:

led = 3;

digitalWrite(12,LOW);

digitalWrite(10,HIGH);

break;

情况3:

led = 1;

digitalWrite( 10,LOW);

digitalWrite(13,HIGH);

}

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C#
    +关注

    关注

    0

    文章

    6

    浏览量

    24014
  • Arduino
    +关注

    关注

    191

    文章

    6535

    浏览量

    197663
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C#运动控制开源(一): CAD导图和小线段速度前瞻的优化之CAD导图

    C#实现CAD解析及如何对小线段轨迹进行运动前瞻
    的头像 发表于 04-02 14:33 1753次阅读
    <b class='flag-5'>C#</b>运动控制开源(一): CAD导图和小线段速度前瞻的优化之CAD导图

    USBISP/USBasp编程器给Atmega32U4下载Arduino bootloader引导程序

    对于新出厂的ATmega32U4芯片内部是没有arduino引导程序的,需要用户预先下载bootloader后才能用串口下载自己的应用程序.在某些罕见情况下旧的bootloader会导致一些bug
    的头像 发表于 01-31 14:38 1034次阅读
    USBISP/USBasp编程器给Atmega32U4下载<b class='flag-5'>Arduino</b> bootloader引导<b class='flag-5'>程序</b>

    C#上位机实战开发指南

    电子发烧友网站提供《C#上位机实战开发指南.pdf》资料免费下载
    发表于 01-11 17:15 7次下载

    AI智能体开发C#软件的临时方案

    AI智能体 (Agent) 可以帮你生成完整的C# 工程,包括主体代码、WinForm界面设计和引用添加。但是目前Visual Studio (VS) 的Agent功能好像还不太完善,时常出一些奇怪
    的头像 发表于 12-30 10:50 1108次阅读
    AI智能体开发<b class='flag-5'>C#</b>软件的临时方案

    Amphenol FCI USB Type-C连接器及线缆组件:高效连接的理想之选

    Amphenol FCI USB Type-C连接器及线缆组件:高效连接的理想之选 在当今数字化高速发展的时代,电子设备之间的数据传输和供电需求日益增长。USB Type-C接口凭借其
    的头像 发表于 12-15 09:55 697次阅读

    STMicroelectronics NUCLEO-C031C6 Nucleo开发板数据手册

    中构建和重复使用附加硬件。NUCLEO-C031C6提供与Arduino兼容的连接器,标准化ST连接器 (Morpho) 可访问MCU上的所有IO。
    的头像 发表于 10-27 14:41 1107次阅读
    STMicroelectronics NUCLEO-<b class='flag-5'>C031C</b>6 Nucleo开发板数据手册

    使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板

    以下是使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板的详细步骤指南: 一、准备工作 ✅ 硬件需求: 项目 要求 开发板 Arduino E
    发表于 10-16 12:41

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录
    的头像 发表于 08-08 20:16 4095次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3开发板给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3开发板重新烧录引导<b class='flag-5'>程序</b>bootlaoder

    CSA C22.2 NO .42通插座、连接插头和类似的接线装置资料

    电子发烧友网站提供《CSA C22.2 NO .42通插座、连接插头和类似的接线装置资料.pdf》资料免费下载
    发表于 08-06 15:39 3次下载

    求助,关于CYW43455 BLE Windows断开连接问题求解

    可以使用 Windows 中的 C# 应用程序以及 iPhone 上的AIROC™应用程序连接并访问该设备,无需配对。 然而我无法让它在 Windows 中配对并保持
    发表于 07-17 07:38

    C#上位机与运动控制卡网络通讯的周期上报

    使用C#上位机编程实现运动控制卡网络通讯的周期上报功能
    的头像 发表于 06-26 13:59 1086次阅读
    <b class='flag-5'>C#</b>上位机与运动控制卡网络通讯的周期上报

    《ESP32S3 Arduino开发指南》第三章 C/C++语言基础

    3.9 循环结构 3.1 数据类型在C/C++语言程序中,对所有数据都必须指定其数据类型。数据有常亮和变量之分。需要注意的是,Arduino中的部分数据类型与计算机中的有所不同。1.
    发表于 06-10 09:20

    下位机CY7C68013A发送数据,上位机C#读取数据,510字节一帧,会丢帧或者帧内错位是怎么回事?

    下位机CY7C68013A发送数据,上位机C#在1个while循环内不断地读取数据,510字节1帧,1秒333帧、1秒667帧、1秒1333帧,会整帧丢帧或者帧内丢部分字节导致错位(帧头不在开始的位置),这个怎么回事?
    发表于 05-30 07:43

    无法使用USB串行配置实用程序连接CY7C65214,如何配置此设备?

    我无法使用 USB 串行配置实用程序连接CY7C65214。 如何配置此设备? 我找到的唯一USB串行配置实用程序在启动屏幕上没有声称支持CY7C
    发表于 05-29 07:36

    如何用 C# 代码对 FX3/CX3 的 EEPROM 进行编程?

    /CyUSB-NET-manual/td-p/105011),我如何用 C# 代码对 FX3/CX3 的 EEPROM 进行编程? 我应该使用这个功能吗? \"4.9.1
    发表于 05-26 07:21