Social Icons

twitterfacebookgoogle plusrss feedemail

12/25/2012

[Arduino] C# 控制 Arduino LED

最近在玩Arduino這塊開發版,這塊開發版能做的事情實在太多了,順便我也想練習一下C#的程式,於是我就利用C#寫了一個簡單的控制介面來控制Arduino
展示影片如下:



專案程式載點: 下載點1(如發生錯誤請回報)

在開始看程式之前,我們先將硬體的接線接好


接著 這邊我是利用Serial Port使得Arduino與電腦做資料交換
所以記得把USB線接上電腦,然後將下方程式碼先燒入Arduino中

Arduino:
int ledPin = 13; // 第13隻接腳請連接到 LED,以便控制 LED 明滅。
int c;
// setup() 函數只會於電源啟動時執行1次
void setup() 
{
  Serial.begin(9600);  
  pinMode(ledPin, OUTPUT);// 設定第 13 支腳為輸出模式 
}

// loop() 函數會不斷的被重複執行
void loop()
{
  // Serial.println("wait data...");
  if(Serial.available()>0)
    c=Serial.read(); 
  light(c);
}
void light(int c)
{
    if(c==49)//接收到'1'也就是ASCII為49時
      digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 0V ,LED 處於發亮狀態!!
    else if(c==50)
     digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 處於熄滅狀態!!
    else 
    {
      digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 0V ,LED 處於發亮狀態!!
      delay(500); // 等待100 毫秒 (也就是發亮 0.1 秒)
      digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 處於熄滅狀態!!
      delay(500); // 等待100 毫秒 (也就是熄滅 0.1 秒)
    }
}
接著執行程式後(C#\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe )
記得重新設定Serial Port(因為每個人的COM port都不同)
就會如同影片般的效果!!


有關C#程式上的問題,歡迎直接提出來詢問,在這邊我就不講解了

3 則留言:

  1. 可以講解一下在.c#顯示arduino sensor數據方法嗎

    回覆刪除
  2. 可以教授一下在c# display
    Arduino sensor data嗎

    回覆刪除
    回覆
    1. 恩恩c# 顯示Arduino sensor的資料其實跟這篇很類似
      或者你可以再參考一下我另一篇
      WIFI無線小車: http://ff320232.blogspot.tw/2012/12/arduinofcuce.html
      在這篇文章中我有使用到一個 超音波測距的sensor他會將距離回傳到C#中

      在這邊我也稍微提一下怎麼使用,如果還是看不懂再跟我說黑~
      首先程式分成兩個部分來做比較淺顯易懂
      1.Arduino的部分

      (1)寄送
      這邊裝置上面會裝有sensor,通常會讓它一直傳送資料給電腦
      那麼把資料傳給電腦只要使用Serial.println("內容"),就可以把資料藉由USB線傳遞到電腦。

      (2)讀取
      相對的如果電腦要傳送資料給Arduino接收,就可以使用Serial.read()來接收。

      2.電腦C#的部分
      這邊比較麻煩一點
      首先 一開始一定要先與COMPort做連線(這邊你可以參考現在這篇文章的C#部分)。
      接下來分成兩塊

      (1)接收
      接收資料的部分只要使用comport.ReadLine()就可以收到Arduino傳來的訊息
      不過這邊最好使用thread或者Timer來輔助,否則你程式就不能做其它事情了。

      (2)寄送
      寄送資料的部分只要使用comport.Write()就可以傳遞訊息到Arduino上

      這邊寫得比較簡單一點
      改天有時間我在PO個詳細文章上來

      刪除

俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!

 
 
无觅相关文章插件,迅速提升网站流量