第1步:創(chuàng)建一個(gè)新應(yīng)用程序
打開(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);
}
}
}
-
C#
+關(guān)注
關(guān)注
0文章
6瀏覽量
23864 -
Arduino
+關(guān)注
關(guān)注
188文章
6474瀏覽量
187444
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論