AtomLITEでSDカードからJPEGファイルを読んで液晶ディスプレイに表示してみた
AtomLiteを使って、SDカードからJPEGファイルを読みだし、液晶ディスプレーに表示してみました。AtomLITE : スイッチサイエンス / 秋月電子 / Amazon
microSDカードスロット レベルシフター付きブレークアウト基板キット: 秋月電子
OLED SSD1331 : 秋月電子 / Amazon
AtomLITEとの接続ピン対応は▼ SSD1331のCSは論理反転して接続
AtomLITE | SSD1331 | SD CARD | SPI |
---|---|---|---|
22 | DC | ||
19 | RES | ||
23 | SDA | CMD | MOSI |
33 | SCL | CLK | CLK |
21 | DAT | MISO | |
25 | CS | CS | CS |
論理反転IC(インバータ)を使えば簡単ですが、今回はトランジスタで論理反転回路を組んでみました。
スケッチの注意点
SPIClassのディフォルトインスタンス SPI は使用しない。SD用、OLED用に各々SPIClassのインスタンスを定義して初期化を行う。
以後は、各々のSPIClassインスタンスを使用する。
SPIClass SPI_OLED ;
// ----- ST3375 INITIAL -----
pinMode(PIN_DC, OUTPUT);
pinMode(PIN_RESET, OUTPUT);
pinMode(PIN_CS, OUTPUT);
SPI_OLED.begin(PIN_CLK,PIN_MISO,PIN_MOSI,-1);
SPIClass SPI_SD ;
pinMode(PIN_CS, OUTPUT);
digitalWrite(PIN_CS, LOW);
SPI_SD.begin(PIN_CLK,PIN_MISO,PIN_MOSI);
if (!SD.begin(PIN_CS,SPI_SD,4000000)) {
メモリー使用量に注意
AtomLITEでは JPEGをBITMAPに展開するためのフレームバッファを充分に確保できませんでした。160x120ドットくらいが精いっぱい(もうちょっと大きくても行けるが、QVGA(320x240)は無理でした)
(VGAサイズのTFTとかを使う場合)フレームバッファを取らずに液晶ディスプレーに直接書き込めば行けるかも。
スケッチ
Atom-SSD1331-SD.zipSD-CARD : デモ用画像データ ・ フォルダの中身をSDカードにコピーしてください。