7/18/2014

使用Arduino的IDE開發程式

Arduino的IDE做的很好用,基本上就是AVR函式庫+編輯器+編譯器。你可以用它來寫任何不超過其內建EEPROM的程式。

Arduino的程式碼稱為Sketch(速描),其實就是把C/C++的語法包裝在函式庫內,只留下兩個入口,一個是void setup(void),一個是void loop(void)。主機板過電後,會先執行setup。所以設定腳位什麼的事,可以在setup內執行。其它需要反覆執行的程式碼,則放在loop函式裡。

以下是我的第一支程式:

const int ledPin=3;
const int switchPin=2;
int pushed=0, action=0;

void blinkAccordingAction(void) {
    switch(action) {
        case 1:    //Turn on LED
        digitalWrite(ledPin, HIGH);
        break;
      
        case 2:    //Blink, period is 200 ms
        digitalWrite(ledPin, HIGH);
        delay(200);
        digitalWrite(ledPin, LOW);
        delay(200);
        break;
      
        case 3:    //Blink, period is 100 ms
        digitalWrite(ledPin, HIGH);
        delay(100);
        digitalWrite(ledPin, LOW);
        delay(100);
        break;
      
        default:    //Turn off LED
        digitalWrite(ledPin, LOW);
    }
}

void setup(void ) {
    Serial.begin(115200);         //We need serial output to show debug message
    pinMode(ledPin, OUTPUT);
    pinMode(switchPin, INPUT);
}

void loop(void) {
    int level=digitalRead(switchPin);    //Read the level of switch pin
  
    if(!pushed && level==HIGH) {
        pushed=1;
        Serial.println("Button pressed.");
        goto run;
    }
  
    if(pushed==1 && level==LOW) {
        pushed=0;
        action=(action+1)%4;
        Serial.println("Button released.");
    }
  
    run:
    blinkAccordingAction();
}


須要搭配如此電路:

7/17/2014

Arduino UNO山寨板開箱文

本日在露天訂的Arduino UNO相容山寨板到貨,一片才賣220塊,還送十顆LED+220omh電阻。俗又大碗。



詳細規格可看這裡。

這片版子跟正品一樣有USB-TTL晶片,卻不是用ATmega8U2而是改用一顆叫做CH340的晶片。所以不能用官網提供的驅動程式,而是要去抓CH340的驅動程式才能使用。也由於晶片不同,官方的USB HID鍵盤滑鼠模擬範例應該不能使用。

其它比較顯眼的改動有以下兩點:
  1. 原本DIP封裝的ATmega328被改成SMD封裝。
  2. Reset鍵改變位置。