2016年7月8日 星期五

[Arduino]Arduino Due介紹及上手使用

Arduino Due的使用是因為寶馬專案客戶的使用,我們環境建設也需要所以才從Arduino Uno跟Arduino Mega2560(5V GPIO輸出)跳到使用Arduino Due這塊(3.3V),Due 發音 ' 丟耶 '


Arduino Due的特殊應用官方介紹很多
像是  Simple Waveform Genetator with Arduino Due  訊號產生器的模擬


此外Arduino Due是ARM架構的Arduino
因此不能只單純下載arduino的開發環境


 
點選 工具 -> 板子 -> 板子管理員
 
 
在板子管理員中我們可以安裝 Arduino Due 專用的編譯器 Arduino SAM Boards 安裝
 
 
DueFlashStorage問題
接著需要解決Arduino Due存取空間配置的問題

DueFlashStorage.h 若想要應用這些空間必須導入DueFlashStorage.h 讓Arduino Due模擬FlashStorage重開機不會消失,但include後要編譯成功需要下列網址開發的套件包來編譯才能編譯的過。

 
 
 
Due的宣告跟控制範例教學
 
Due是default pull  low,如果是針對key的測試,接上去的所有pin會被按住,所以我們在編寫code的時候必須要pull high,以下例 :
 
Pin define階段範例 :  
 
const byte IO_pin     = 28;  //定義io pin為第28腳位
 
pinMode(IO_pin, OUTPUT);   //設定為output mode
digitalWrite(IO_pin, HIGH);    //將其pull high
 
 
Serial port控制階段範例 :
 
#define IO_pin_HIGH    65
#define IO_pin_LOW     66
 
不曉得是從哪下載下來的 不過 從serial port傳到Arduino Due會經過ascii的轉碼,因此需要傳A
跟B才能對應到IO_pin_HIGH跟IO_pin_LOW的驅動
 if(Serial.available())
  {
    unsigned int val = Serial.read();
    switch(val)
    {
      case IO_pin_HIGH:
        digitalWrite(IO_pin,HIGH);
        Serial.println("IO_pin HIGH");
        break;
      case IO_pin_LOW:
        digitalWrite(IO_pin,LOW);
        Serial.println("IO_pin LOW");
        break;
    }
 }
 
 

沒有留言:

張貼留言