背景
Teensy3.6とは、Ardinoというマイコンボードより計算能力があり、Arduinoを開発できる環境でプログラムの開発・書き込みが出来るマイコンボードです。ILI9341とはLCDのドライバです。
M5StackというLCDなどが付いたマイコンボードでもILI9341で動くLCDが利用されています。
利用には成功しましたが、ライブラリの選択やピンの接続方法に時間を要したので、備忘録を兼ねてやったことを共有します。
使ったもの
- Teensy3.6 1つ
スイッチサイエンスか製造元で買えます。 - Teensy3.6を開発出来るようにしたPC 1台
Ubuntu18.04でPlatformIOを利用して動作を確認しました。 - 320x240 LCD 1つ
amazonやaliexpressで買えます。 - ブレッドボード 2枚
- ジャンパワイヤ 1セット
- 抵抗 1k 2つ
配線
このように配線します。| Teensy | LCD |
|---|---|
| 9 | CS |
| 10 | DC |
| 11 | MOSI |
| 12 | MISO |
| 3V3 | VCC |
| 3V3に1kを通して接続 | LED, RESET |
LCDのDCとCSはプログラムで利用するピンを変えられますが、その用途で利用可能なピンは限られています。
他のピンを利用する場合は、Teensy3.5, 3.6のkickstarterのページで示されているピンの役割でCS0と書かれているピンを利用してください。
(もしかしたらDSはどのピンでも良いのかもしれませんが、未検証です。)
実際に配線するとこうなりました。
ライブラリをインストール
ILI9341_3tというライブラリの使い勝手が良さそうだったので、自分はそれを利用しました。Arduino IDEならライブラリマネージャーからILI9341_t3をインストール、PlatformIOならplatformio.iniのlib_depsにILI9341_t3を記述すれば利用できます。
プログラム
先ほどインストールしたライブラリILI9341_3tを利用して「Hello on LCD at (経過したミリ秒)」という文字を1秒ごとに更新しながらLCDに表示するプログラムを紹介します。#include <Arduino.h>
#include <SPI.h>
#include <ILI9341_t3.h>
#include <font_Arial.h>
const uint8_t TFT_CS = 9;
const uint8_t TFT_DC = 10;
ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC);
void setup() {
tft.begin();
tft.setTextColor(ILI9341_WHITE);
tft.setFont(Arial_18);
tft.setRotation(3);
}
void loop() {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(0, 0);
tft.println("Hello");
tft.println("on LCD");
tft.println("at " + String(millis()));
delay(1000);
}
書き込んで動かすと、期待通りの情報が表示されました。
まとめ
Teensy3.6でILI9341が使われているLCDを利用できました。これにより、M5StackでLCDを利用しつつもピンが足りない用途に対してTeensy3.6を適用できそうです。
参考
Color 320x240 TFT Touchscreen, ILI9341 Controller ChipILI9341_t3/examples/DemoSauce/DemoSauce.ino
Teensy 3.5 & 3.6
変更履歴
2019.10.023.3Vの接続先がRESETになっていたのでVCCに修正しました。
2019.11.29
platformioの設定ファイルを「platformio.ino」と間違えていたので、「platformio.ini」 に修正しました。




0 件のコメント :
コメントを投稿