Arduino Due SD Card 讀取失敗
從淘寶買了一塊 Arduino Shield ,上面有一塊 3.5 吋的液晶面板,解析度是 480x320,板子上還有 SD Card 插槽,據賣家說是可以支援 Arduino Due 的。
因為是初學者,所以從範例中找一個來執行,增強自己的信心。所以我挑了一個 Example07-ShowBMP_320X480
,執行成功的話,可以從 SD Card 中讀取 BMP 檔案,然後秀在 LCD 上面。
當然,事情總是不會這麼順利的。 😦
雖然程式編譯的過,也可以 upload 到 Arduino Due 裡,但在讀取 SD Card 的時候總是出錯。一開始我以為是 SD Card 相容的問題,所以換了好幾片,也都有 format 成 FAT32 格式,但就是不行。
再換過 CardInfo
這個範例,這個範例用來讀取 SD Card 的資訊,也是出現找不到 SD Card 的情況。
仔細的對了一下腳位,不對阿,LCD 的腳位是對的,但是 SD Card 的腳位不對阿。看樣子要跳線了,還好 SD Card 插槽的線只要接幾條就可以了。
簡單來說,我手上的這塊 Shield 板是給 Uno 用的,直接插上去就好了。但 Due 的腳位不太一樣,所以要改一下。
根據 graynomad
的 Arduino Due pinout 圖 (彩色的比較好看),SD-CS (Chip Select) 腳位是第 4 腳。
並將 CardInfo
內程式碼改為:
...
const int chipSelect = 4;
...
...
pinMode(chipSelect, OUTPUT);
digitalWrite(chipSelect, HIGH);
...
其他三隻腳可以參看下圖對接就好了。
Shield | Arduino Due SPI |
---|---|
SD_DI | MOSI |
SD_DO | MISO |
SD_SCK | SCK |
當然也要把 Arduino Due 上的 3.3v 跟 5v 接到 Shield 上。
一切就緒,應該就成功了。