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


打開Visual Studio并創(chuàng)建一個(gè)新的Windows窗體應(yīng)用程序。然后,當(dāng)出現(xiàn)表格1時(shí),從SerialPort類開始添加任意數(shù)量的控件。
如果要將Arduino支持添加到預(yù)制程序中,則只需添加SerialPort類。如果您比較高級(jí),則可能只想使用SerialPort庫(kù)制作一個(gè)普通的代碼文件,這樣就不必繼續(xù)對(duì)其進(jìn)行定義。
步驟2:配置串行端口
唯一需要更改的是
-BaudRate(更改此項(xiàng)以匹配Arduino代碼(Serial.begin(這是您的波特率))
-端口名稱(編譯和上傳時(shí),您需要選擇一個(gè)端口,通常以COM開頭)
-也許讀取緩沖區(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。打開(); -打開串行端口供您使用。如果端口已打開或端口不存在,將出現(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 。如果未打開端口,則將出現(xiàn)一個(gè)非常討厭的錯(cuò)誤。
serialPort1.WriteLine( arg ); -與serialPort1.Write( arg )相同;但總是添加“ n”。
從Arduino讀取
string read = serialPort1.ReadTo( arg ); -讀取串行數(shù)據(jù),直到找到 arg 中的文本,然后將其作為 read 返回。如果未打開端口,也會(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è)面上,我都附加了源代碼文件。要打開文件,請(qǐng)將文件解壓縮到您想要的任何位置,然后打開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è)面上,我都安裝了源代碼文件。要打開,請(qǐng)將文件解壓縮到所需的位置,然后打開Arduino編程環(huán)境,然后打開在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);
}
}
}
-
C#
+關(guān)注
關(guān)注
0文章
6瀏覽量
24010 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
197001
發(fā)布評(píng)論請(qǐng)先 登錄
USBISP/USBasp編程器給Atmega32U4下載Arduino bootloader引導(dǎo)程序
C#上位機(jī)實(shí)戰(zhàn)開發(fā)指南
AI智能體開發(fā)C#軟件的臨時(shí)方案
WEMOS D1 R32 用Arduino IDE 點(diǎn)燈程序 及搭建
使用 LinkBoy 將程序導(dǎo)出為 C 語(yǔ)言代碼并燒錄至 Arduino ESP32 開發(fā)板
如何用Arduino Nano/UNO R3開發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開發(fā)板重新燒錄引導(dǎo)程序bootlaoder
CSA C22.2 NO .42通用插座、連接插頭和類似的接線裝置資料
求助,關(guān)于CYW43455 BLE Windows斷開連接問(wèn)題求解
C#上位機(jī)與運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的周期上報(bào)
怎樣用C#程序連接Arduino
評(píng)論