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

    浏览量

    23847
  • Arduino
    +关注

    关注

    187

    文章

    6464

    浏览量

    186655
收藏 人收藏

    评论

    相关推荐

    多个TLV320AIC3254一路I2C总线对其配置可行吗?

    一片CPU3片TLV320AIC3254做音频处理,想用一路I2C总线对其配置可行吗? 地址好像是唯一的 0011000没法设置,手册中又提到可使用10位地址但是没找到说明怎样用,哪位大侠用过
    发表于 10-22 07:54

    怎样用THS3201实现输出功率可调?

    怎样用THS3201实现输出功率可调?
    发表于 08-26 08:28

    OPA735加OPA333,怎样用TINA TI去仿真?

    当输入信号VG1从7.06V慢慢变化到7.22V时。 输出电压Vout的变化必须是接近线性变化的。我想知道我该怎样用TINA TI去仿真?怎样设置那个输入信号VG1才能达到我的目的。因为这个电压源好像
    发表于 08-02 08:39

    怎样用Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino程序代码。
    的头像 发表于 07-30 09:14 714次阅读
    <b class='flag-5'>怎样用</b><b class='flag-5'>Arduino</b>测试锂电池容量

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用
    发表于 06-12 07:21

    怎样用STM8L的PB3/TIM2_TRIG的引脚测量脉宽?

    怎样用STM8L的PB3/TIM2_TRIG的引脚测量脉宽?
    发表于 05-07 06:55

    stm32f100怎样用重映射功能?

    的是stm32f100c8t6b芯片,现在想用将PB1映射为TIM1_CH3N,在调用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)时, GPIO_PinAFConfig和GPIO_AF_TIM1都没定义,st
    发表于 05-07 06:06

    HRS连接器发布牢固CIC连接器FH52C系列

    【新品发布】牢固CIC连接器FH52C系列
    的头像 发表于 04-15 10:59 589次阅读
    HRS<b class='flag-5'>连接</b>器发布牢固CIC<b class='flag-5'>用</b><b class='flag-5'>连接</b>器FH52<b class='flag-5'>C</b>系列

    STM32F412G-DISCO怎样用MX生成fatfs的代码?

    STM32F412G-DISCO怎样用MX生成fatfs的代码? SD卡例程能跑,但mx生成的代码不能正常运行,我生成代码后是不是还要配置一些东西?(我生成后只写了测试代码) 问题解决了,虽然我不知道我为什么不能直接使用mx生成的代码去操作sd卡,但我通过复制粘贴例程的代码完成了测试。
    发表于 03-12 08:15

    C#网络串口调试助手源码

    非常牛B网络串口调试助手C#源码,支持添加多条协议
    发表于 12-27 09:45 4次下载

    怎样用最快的速度排查PLC程序上的错误?

    :检查PLC程序所涉及的输入输出设备,确保它们的连接正确,传感器和执行器都正常工作。检查信号线路和电源供应是否正常。 (3)检查程序逻辑:仔细检查PLC程序的逻辑,确保
    的头像 发表于 12-22 08:50 869次阅读

    怎样用表来判断加热管的好坏?

    怎样用表来判断加热管的好坏? 万表是电工常用的测量仪器,它可以用来判断加热管的好坏。加热管是一种常见的加热元件,广泛应用于家电、机械设备和工业生产中。在选择和使用加热管时,我们需要了解其电阻值
    的头像 发表于 12-20 17:21 5069次阅读

    无线通信:怎样用电磁波表示1和0

    为什么频率越高,能携带的信息就越多?以数字信号为例,信息就是一串串的1和0,所以先搞清楚怎样用电磁波表示1和0。
    发表于 12-05 14:44 1752次阅读
    无线通信:<b class='flag-5'>怎样用</b>电磁波表示1和0

    ADAU1452做FFT分析,怎样设定取样点的数量?

    请问,我想用ADAU1452做FFT分析,怎样设定取样点的数量,还有就是怎样用单片机读出分析得到的复数结果数组?谢谢!
    发表于 11-29 06:42

    怎样用ADAU1761设计DRC的压缩/扩展?

    请问怎样用ADAU1761设计DRC的压缩/扩展。我在SigmaStudio 4.5的模块中只找到RMS。如果ADAU1761设计DRC要怎样
    发表于 11-28 06:41