0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用C#程序連接Arduino

454398 ? 來(lái)源:wv ? 2019-09-23 11:26 ? 次閱讀

第1步:創(chuàng)建一個(gè)新應(yīng)用程序

怎樣用C#程序連接Arduino

打開(kāi)Visual Studio并創(chuàng)建一個(gè)新的Windows窗體應(yīng)用程序。然后,當(dāng)出現(xiàn)表格1時(shí),從SerialPort類開(kāi)始添加任意數(shù)量的控件。

如果要將Arduino支持添加到預(yù)制程序中,則只需添加SerialPort類。如果您比較高級(jí),則可能只想使用SerialPort庫(kù)制作一個(gè)普通的代碼文件,這樣就不必繼續(xù)對(duì)其進(jìn)行定義。

步驟2:配置串行端口

唯一需要更改的是

-BaudRate(更改此項(xiàng)以匹配Arduino代碼(Serial.begin(這是您的波特率))

-端口名稱(編譯和上傳時(shí),您需要選擇一個(gè)端口,通常以COM開(kāi)頭)

-也許讀取緩沖區(qū)大小并寫入緩沖區(qū)

第3步:使用串行端口,只有在您打算讀取/寫入的數(shù)據(jù)量大于4096Bytes的讀取數(shù)據(jù)或向arduino寫入2048Bytes的數(shù)據(jù)時(shí),此設(shè)置通常保持不變。代碼。

在按鈕上,或者單擊任何具有“事件”的控件時(shí),只需雙擊該控件,它將顯示在代碼窗口中。這里有一些您可以在其中使用的代碼。如果語(yǔ)句相同!

大多數(shù)代碼是相似的;但是

Arduino代碼C#代碼

布爾布爾

unsigned any u any

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

C#沒(méi)有時(shí)間選項(xiàng),例如delay()delayMicroseconds()。

Other Stuff(在頂部??。?/p>

serialPort1。打開(kāi)(); -打開(kāi)串行端口供您使用。如果端口已打開(kāi)或端口不存在,將出現(xiàn)一個(gè)嚴(yán)重的錯(cuò)誤。

serialPort1.BytesToRead-使用if語(yǔ)句將其與0進(jìn)行比較。如果結(jié)果為false,則表示有可用的串行數(shù)據(jù)(if(serialPort1.BytesToRead == 0)與arduino if(Serial.available)相同)

與Arduino對(duì)話

serialPort1.Write( arg ); -告訴arduino,您要說(shuō)的是 arg 。如果未打開(kāi)端口,則將出現(xiàn)一個(gè)非常討厭的錯(cuò)誤。

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

從Arduino讀取

string read = serialPort1.ReadTo( arg ); -讀取串行數(shù)據(jù),直到找到 arg 中的文本,然后將其作為 read 返回。如果未打開(kāi)端口,也會(huì)出現(xiàn)錯(cuò)誤。

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

string read = serialPort1.ReadToEnd(); -繼續(xù)讀取直到?jīng)]有更多數(shù)據(jù)可讀取,然后以字符串 read 的形式返回。

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

在兩個(gè)示例頁(yè)面上,我都附加了源代碼文件。要打開(kāi)文件,請(qǐng)將文件解壓縮到您想要的任何位置,然后打開(kāi)CS文件夾,然后雙擊.csproj文件。

我要有一個(gè)可更改RGB LED顏色的程序。 ,每次單擊按鈕時(shí),我將需要在控件上使用一個(gè)按鈕,以及一個(gè)serialPort。

我將按鈕和串行端口添加到了表單中,然后調(diào)整按鈕的大小以適合它。

然后添加了一個(gè)串行端口,并將PortName更改為COM4。這可能與您的計(jì)算機(jī)有所不同。

然后我雙擊按鈕,將其更改為代碼視圖。在 button1_Click(對(duì)象發(fā)送者,EventArgs e)中,我添加了代碼(此代碼中有一些錯(cuò)誤處理代碼。):

if(!serialPort1.IsOpen)

{

try

{結(jié)果serialPort1.Open();結(jié)果,serialPort1.Write( “T”);結(jié)果,serialPort1.Close();結(jié)果,}結(jié)果,趕上結(jié)果{結(jié)果的MessageBox。 Show(“發(fā)生錯(cuò)誤。請(qǐng)確保選擇了正確的端口,并且已插入設(shè)備?!保?

}

}

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

在兩個(gè)示例頁(yè)面上,我都安裝了源代碼文件。要打開(kāi),請(qǐng)將文件解壓縮到所需的位置,然后打開(kāi)Arduino編程環(huán)境,然后打開(kāi)在Arduino文件夾和子文件夾下找到的文件。

已連接RGB LED到

RCo GB LED引腳

13 12 1110 Ardunino數(shù)字引腳

void setup()

{ pinMode(13,OUTPUT);

》 pinMode(12,OUTPUT);

pinMode(11,OUTPUT);

pinMode(10,OUTPUT);

digitalWrite(11,LOW);

digitalWrite(13,HIGH);

}

int led = 1;

無(wú)效循環(huán)()

{

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);

}

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C#
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    23864
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6474

    瀏覽量

    187444
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    液顯ID讀卡器C#程序開(kāi)發(fā)

    液顯WIFI無(wú)線讀卡器ID-10FC#語(yǔ)音開(kāi)發(fā)HTTP協(xié)議讀卡小程序。讀卡器圖片如下:? ID讀卡器的特點(diǎn): ?UDP通訊協(xié)議,設(shè)備主動(dòng)讀取EM4100及兼容的低頻RFID卡并即時(shí)將卡號(hào)發(fā)送到
    的頭像 發(fā)表于 01-10 15:31 ?64次閱讀
    液顯ID讀卡器<b class='flag-5'>C#</b>小<b class='flag-5'>程序</b>開(kāi)發(fā)

    C#基于Halcon實(shí)現(xiàn)Basler相機(jī)采圖

    C#基于Halcon實(shí)現(xiàn)Basler相機(jī)采圖
    發(fā)表于 01-05 09:16 ?0次下載

    運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)之C#上位機(jī)編程

    使用C#上位機(jī)編程實(shí)現(xiàn)運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)功能
    的頭像 發(fā)表于 12-24 10:54 ?188次閱讀
    運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)之<b class='flag-5'>C#</b>上位機(jī)編程

    多個(gè)TLV320AIC3254一路I2C總線對(duì)其配置可行嗎?

    一片CPU3片TLV320AIC3254做音頻處理,想用一路I2C總線對(duì)其配置可行嗎? 地址好像是唯一的 0011000沒(méi)法設(shè)置,手冊(cè)中又提到可使用10位地址但是沒(méi)找到說(shuō)明怎樣用,哪位大俠用過(guò)
    發(fā)表于 10-22 07:54

    怎樣用THS3201實(shí)現(xiàn)輸出功率可調(diào)?

    怎樣用THS3201實(shí)現(xiàn)輸出功率可調(diào)?
    發(fā)表于 08-26 08:28

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

    當(dāng)輸入信號(hào)VG1從7.06V慢慢變化到7.22V時(shí)。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設(shè)置那個(gè)輸入信號(hào)VG1才能達(dá)到我的目的。因?yàn)檫@個(gè)電壓源好像
    發(fā)表于 08-02 08:39

    怎樣用Arduino測(cè)試鋰電池容量

    本文詳細(xì)介紹了如何用Arduino測(cè)量鋰電池的容量。并附有電路圖和Arduino程序代碼。
    的頭像 發(fā)表于 07-30 09:14 ?967次閱讀
    <b class='flag-5'>怎樣用</b><b class='flag-5'>Arduino</b>測(cè)試鋰電池容量

    Arduino放回了一個(gè)空的schetch,重新打開(kāi)了程序不斷重啟的原因?

    . 我arduino重新加載,就像照片2一樣,但它總是以相同的方式重新啟動(dòng)。 我將代碼切成兩半,重新加載,它有效。 我恢復(fù)原始代碼,加載它,它有效。 我將相同的程序與加載器放回原處,它會(huì)不斷重新啟動(dòng)
    發(fā)表于 07-10 07:22

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫(kù)?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫(kù),例如我此時(shí)需要使用arduino的第三方庫(kù)blinker,怎樣使用
    發(fā)表于 06-12 07:21

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測(cè)量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測(cè)量脈寬?
    發(fā)表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現(xiàn)在想用將PB1映射為TIM1_CH3N,在調(diào)用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時(shí), GPIO_PinAFConfig和GPIO_AF_TIM1都沒(méi)定義,st
    發(fā)表于 05-07 06:06

    HRS連接器發(fā)布牢固CIC連接器FH52C系列

    【新品發(fā)布】牢固CIC連接器FH52C系列
    的頭像 發(fā)表于 04-15 10:59 ?631次閱讀
    HRS<b class='flag-5'>連接</b>器發(fā)布牢固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生成的代碼不能正常運(yùn)行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測(cè)試代碼) 問(wèn)題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過(guò)復(fù)制粘貼例程的代碼完成了測(cè)試。
    發(fā)表于 03-12 08:15

    如何將HC-SR04連接Arduino并編寫一個(gè)簡(jiǎn)單的程序來(lái)測(cè)量距離

    一種流行的Arduino超聲波傳感器是HC-SR04。它廣泛用于非接觸式距離測(cè)量,通常用于機(jī)器人和自動(dòng)化項(xiàng)目。本指南將向您展示如何將HC-SR04連接Arduino并編寫一個(gè)簡(jiǎn)單的程序
    的頭像 發(fā)表于 02-11 10:17 ?2427次閱讀
    如何將HC-SR04<b class='flag-5'>連接</b>到<b class='flag-5'>Arduino</b>并編寫一個(gè)簡(jiǎn)單的<b class='flag-5'>程序</b>來(lái)測(cè)量距離

    如何將增量旋轉(zhuǎn)編碼器與Arduino連接

    在本教程中,您將學(xué)習(xí)如何將增量旋轉(zhuǎn)編碼器與Arduino連接,以讀取旋鈕的運(yùn)動(dòng)。這對(duì)于在機(jī)器人和其他應(yīng)用程序中創(chuàng)建用戶界面或讀取機(jī)械位置非常有用。
    的頭像 發(fā)表于 02-11 10:00 ?1535次閱讀
    如何將增量旋轉(zhuǎn)編碼器與<b class='flag-5'>Arduino</b><b class='flag-5'>連接</b>