發表文章

目前顯示的是 4月, 2014的文章

震動開關推動LED

圖片
當一端低於水準位置傾斜,開關尋通,類比口電壓值為 5V 左右(數位二進位表示為 1023 ),點亮 led 燈。將A0所讀到數值由0~1023轉為0~255,用意是為了提供給LED推動實縮需要的PWM,另外這不只可以使用在震動開關上面,只要是有類比變化的接可接在Arduino類比端輸入,一樣能推動。 const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to const int analogOutPin = 9; // Analog output pin that the LED is attached to int sensorValue = 0;        // value read from the pot int outputValue = 0;        // value output to the PWM (analog out) void setup() {   Serial.begin(9600); } void loop() {   sensorValue = analogRead(analogInPin);             outputValue = map(sensorValue, 0, 1023, 0, 255);   analogWrite(analogOutPin, outputValue);           Serial.print("sensor = " );                       Serial.print(sensorValue);       Serial.print("\t output = ");       Ser...

Arduino 整串封包接收處理

圖片
由於Serial所Read 的值都只有一個byte, 要讀取整筆封包還要再自己寫, 所以稍微寫了一下,將"#"當作起始字,"$"當作結尾字, 並且將之間的資料存於Databuf中, 有需要的時候再Send "!" 會將資料丟出來。 以下是code: 1: char Databuf[100]; // 用來儲存收進來的 data byte 2: int addr=1; 3: char buf; 4: int RW=0; 5: void setup() { 6: // 開啟 Serial port, 通訊速率為 9600 bps 7: Serial.begin(9600); 8: Serial.println("Hello Oliver"); Serial.println("http://arduino-oliver.blogspot.com/"); 9: } 10: void loop() { 11: // 檢查是否有資料可供讀取#@ 12: if (Serial.available() > 0) { 13: buf = Serial.read(); 14: switch (buf) 15: { 16: case '#': 17: Serial.println("#"); 18: RW=1; 19: break; 20: case '!': 21: Serial.println("!"); 22: while(addr>0) 23: { 24: addr--; 25: Serial.print(Databuf[addr],HEX); 26: } 27: break; 28: case '$': 29: Serial.println("$...

ReadAnalogVoltage 類比輸入 example

圖片
簡單的範例,做輸入電壓的偵測 void setup() {  //設定serial   Serial.begin(9600); } void loop()  {  // 讀取A0的電壓   int sensorValue = analogRead(A0);   float voltage = sensorValue * (5.0 / 1023.0);  //透過監看COM數值傳出   Serial.print("voltage : ");   Serial.println(voltage);  //一秒執行一次   delay(1000); }   voltage將會收到0~1023的數值,A0接口可以接上VR,就可以測試這項功能正不正常了。   int sensorValue = analogRead(AX)   將取到的值先丟到 Value 執行畫面如下:

第一次如何使用Arduino

圖片
Arduino在台灣已經有一陣子了,對於有再接觸程式設計的人應該都不陌生,然而對於不是程式設計,或者是不是電子電機相關科目的,也不會太難以上手。 由於Arduino本身官方由提供許多librarie,與網路上有豐富的資源,使其上手的門檻相對的降低許多,新手要取得硬體設備也不是什麼難事,在各大網拍、較大的電子零件通路都能看到它的身影。至於出版物台灣也有相當多的譯本,但是小弟覺得是不用買那些書,在網路上也能找到相當多的sample code。 現在就開始進入本篇主題: 1.下載Arduino IDE Arduino官方網站下載點 http://arduino.cc/en/Main/Software 可以看到上圖有兩個方框,如果你手上的開發板是屬於Yun或者是Due請下載1.5.6版本,才有支援這兩款板子的燒錄喔,而其中差別在往後再跟大家介紹。 選擇Windows Installer就可以了ZIP file是屬於免安裝版本,但使用上可能會較為不方便,所以這邊建議Windows Installer安裝就好了。 下載好後執行,也沒有太多需要注意的,Next...Next...Next就好了。 2.安裝Arduino驅動程式 如果是照著上一步,安裝Arduino,在開發板接上時,於電腦設備管理中會看到無法辨識的裝置,選擇它 點選瀏覽電腦上的驅動程式軟體 如果Arduino使用預設安裝可以在安裝路進下的Drivers中找到驅動程式 C:\Program Files (x86)\Arduino\drivers 安裝好了,本文是使用Mega 2560。 3.開啟桌面上Arduino 就可以看到下圖這個畫面了,工作列因為我使用1.5.4它有支援繁體中文。 而工作列底下的圖案分別為驗證、下載、開新檔案、開啟、存檔與最左邊的監看。    4.如何燒錄程式 我們先來點一個簡單的範例,選取 檔案>範例>Basics>Blink   會出現以下的Code /*   Blink   Turns on an LED on for one second, then off for one second, repe...

Arduino 介紹 [Wiki]

圖片
關於 Arduino Arduino可以使用 Arduino 語言與 Macromedia Flash、Processing、Max/MSP、Pure Data和SuperCollider等軟體,結合電子元件,例如開關或感測器或其他控制器件、LED、步進馬達或其他輸出裝置,作出互動作品。 Arduino也可以獨立運作成為一個可以跟軟體溝通的介面。 特色 基於 創用CC 開放原始碼的電路圖設計。 免費下載,也可依需求自己修改,但需遵照姓名標示。您必須按照作者或授權人所指定的方式,表彰其姓名。 依相同方式分享,若您改變或轉變著作,當散布該衍生著作時,您需採用與本著作相同或類似的授權條款。 Arduino 可使用 ICSP 線上燒入器,將 Bootloader 燒入新的 IC 晶片。 可依據Arduino官方網站,取得硬體的設計檔,加以調整電路板及元件,以符合自己實際設計的需求。 可簡單地與感測器,各式各樣的電子元件連接,如 紅外線 、 超音波 、 熱敏電阻 、 光敏電阻 、 伺服馬達 …等。 支援多樣的互動程式,如 Adobe Flash, Max/MSP, VVVV, Pure Data, C , Processing… 等。 使用低價格的微處理控制器 ( Atmel AVR ) (ATMEGA 8,168,328等)。 USB 介面,不需外接電源。另外有提供 直流 (DC)電源輸入。 核心開發團隊 Arduino的核心開發團隊成員包括: Massimo Banzi , David Cuartielles , Tom Igoe , Gianluca Martino , David Mellis 和 Nicholas Zambetti 。 據說 Massimo Banzi 之前是義大利 Ivrea 一家高科技設計學校的老師。他的學生們經常抱怨找不到便宜好用的微控制器。2005年冬天, Massimo Banzi 跟David Cuartielles 討論了這個問題。David Cuartielles 是一個西班牙籍晶片工程師,當時在這所學校做訪問學者。兩人決定設計自己的電路板,並引入了Banzi 的學生 David Mellis 為電路板設計編程語言。兩天以後,David Mellis 就寫出...

test

test