網頁 貼吧 文章 作者 工作  
網頁搜尋
 
 愛PO吧 >> 益智小遊戲 >> 瀏覽文章
回覆 加入我的最愛 與好友分享

Arduino + 微動開關 To Falsh (AS2.0)

本被文章 0 次, 共有回覆 3  
0
 
0
今天搞這東西搞了一陣子,明明就是很簡單的程式卻一直卡在奇怪的地方沒有辦法突破
最後終於搞好了,記錄一下順便給當我在異鄉的時候還要繼續拼的夥伴的有個可以查詢資料的地方
以下分為三部分 (1) Arduino程式部分 (2) Flash程式部分 (3) 硬體部分
----------------------------------------------------------------------------------------------------------
此程式用意很間單,透過Arduino,當按下微動開關或者按鈕時,傳送0 & 1的值給Flash進一步進行
接下來的步驟,開關可為微動,磁簧,或者是Switch皆可
----------------------------------------------------------------------------------------------------------
Part(1) Arduino程式部分
int sw = 3; //定義腳位,digital腳位#3
int val = -1; //這個變數要用來接讀到的訊號,初值-1是因為接的值為0 1 ,避免出錯

void setup() //Arduino程式起始設定

{
Serial.begin(9600); //Serial Port傳輸速率定義,一律設成9600
pinMode(sw , INPUT); //將sw所指定的腳位設定為INPUT,因為我們是要抓裡面傳來的訊號
}


void loop ()        //Arduino啟動後會一直執行的程式部分,主要程式碼都寫在這裡面
{
val = digitalRead(sw);  //讀取sw腳位中的數值並asign給val

if(val==1) //開關按下狀態
Serial.print(1,BIN); //將數值1傳給Serial Port , 型態為BIN(binary)
else if(val==0) //開關放開狀態
Serial.print(0,BIN); //將數值0傳給Serial Port , 型態為BIN(binary)
else //為了避免接到某些奇奇怪怪的值而出錯,多設一個else作為預防
Serial.print(3,BIN);
Serial.print(0,BYTE); //傳送完值以後一定要丟一個0過去,定義為BYTE,讓程式知道值傳完了
             //否則會一直等待直到下一個值進來,然後程式就會出錯!
delay(1000);     //設定延遲時間
}
xyz軟體補給站
----------------------------------------------------------------------------------------------------------
Part (2) Flash 程式部分
import Arduino; //載入Arduino設定檔
var port:Number = 5334;
//設定Serial Port連接位置 , com1~com4=5331~5334 , 記得對應serproxy的設定檔

var a:Arduino = new Arduino(port); //建立一個Arduino的監聽物件
aListener = new Object();

a.addEventListener("onConnect", aListener);
//要在連線一開始就做好並只做一次的工作,請將程式碼放在這裡面
a.addEventListener("onReceiveData", aListener); 
//要接收由Arduino傳送值並處理的工作,請將程式碼放在這裡面
a.addEventListener("onConnectError",aListener);
//這兩個是判斷連線狀況方便用
a.addEventListener("onDisconnect",aListener);

///////////////////////////////////////
aListener.onConnectError = function()
{
//連線失敗
trace("Failed");
}
//////////////////////////////////////
aListener.onDisconnect = function()
{
//失去連線
trace("disconnected");
xyz}
//////////////////////////////////////
aListener.onConnect = function()
{}
//////////////////////////////////////
aListener.onReceiveData = function(evtObj:Object) //主要程式由以下開始
{
var inputData = new int; //宣告一個用來接值的變數
inputData = evtObj.data; //接收Arduino傳過來的數值
trace(inputData);        //最後請註解調此行,監看數值是否正確
if(inputData>0)
white_mc._visible = false;   //將影片元件化後命名為XXX_mc,由此法控制是否撥放
else
white_mc._visible = true;
}
----------------------------------------------------------------------------------------------------------
Part (3) 硬體部分

硬體就是一個簡單的微動開關,這裡所用的微動有三隻接腳
上面分別會寫上 NC NQ C (由左至右)
其中NC為接地(GND) NQ為電源(VCC) C為訊號輸出
這種接法下當開關押下會處於導通狀態,輸出訊號為1,放開狀態則為斷路,輸出訊號為0
如果將NC NQ兩個接腳反過來接,則結果會剛好相反,看情況使用
將訊號C連接至DIGITAL腳位2~13其中的一支,由於程式中定義為2,所以這裡接到PIN2
NC/NQ則接到ANALOG側的3V3以及GND , 純粹只是因為好接以及3v就可以用作微動開關
就不要去用5v和digital端的供電了!
xyz資訊工坊
----------------------------------------------------------------------------------------------------------
至於Arduino和Flash的連結方法放在另外一篇,如果在出國前還懶得寫的話.....
夥伴們先看一下投影片好了 (逃~)

逛上一篇:   逛下一篇:

作者: vauhdxms
  (2010-04-20 04:27)
推薦文章: 將本文章推薦到【百度收藏】 將本文章推薦到【YouPush】 將本文章推薦到【udn共享書籤】 將本文章推薦到【Fiigo】書籤

 本文章共有回覆 3 篇,分 1 頁
 聲明:以上內容不代表本站立場,且內容由網友發表提供,若有爭議或違法由發表者承擔,本站將不負責連帶責任,謝謝。

 IPoBar  愛PK  愛遊戲  愛online
新手教學 客服中心 站務公告 交換連結 合作提案 關於我們
 
版權所有©ipobar Ltd., All Rights Reserved.
論壇內會員言論僅代表個人觀點,不代表本站同意其說法,本討論區不承擔由該言論所引起的法律責任