MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Arduinoの基礎 - ST7735のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Arduinoの基礎 - ST7735
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == 接続 == ArduinoとST7735の一般的な接続方法を以下に示す。<br> <br> SCLとSDAはハードウェアSPIを使用するため、指定のピンを使用する必要がある。<br> RESET、D/C、CSは任意のデジタルピンに接続可能であるが、下表上に示すような組み合わせが一般的である。<br> <br> もし、ST7735に背景光用のLEDピンがある場合、適切な抵抗を介して任意のデジタルピンに接続できる。<br> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |+ ST7735とArduino R3 / R4の接続 |- ! style="background-color:#66CCFF;" | ST7735 ! style="background-color:#66CCFF;" | Arduino R3 / R4 ! style="background-color:#66CCFF;" | 補足 |- | style="text-align:center;" | SCL (SCLK) || style="text-align:center;" | Pin 13 || SPI SCK |- | style="text-align:center;" | SDA (MOSI) || style="text-align:center;" | Pin 11 || SPI MOSI |- | style="text-align:center;" | RESET || style="text-align:center;" | Pin 9 || 任意のデジタルピン |- | style="text-align:center;" | D/C || style="text-align:center;" | Pin 8 || データ / コマンド、任意のデジタルピン |- | style="text-align:center;" | CS || style="text-align:center;" | Pin 10 || SS、任意のデジタルピン |} </center> <br><br> == 回路図 == <br><br> == 必要なライブラリ == ST7735を動作させるのに必要なライブラリを以下に示す。<br> * Adafruit ST7735 and ST7789 Library * Adafruit GFX Library * Adafruit BusIO <br> 上記のライブラリのインストール手順を以下に示す。<br> # Arduino IDEのメインメニューから[ツール] - [ライブラリを管理...]を選択する。 # ライブラリマネージャーの検索欄にそれぞれ、"Adafruit ST7735"、"Adafruit GFX"、"Adafruit BusIO"と入力する。 # 各ライブラリの[インストール]ボタンを押下する。 # 依存ライブラリのインストールが求められる場合は、[すべてインストール]を選択する。 <br><br> == 使用例 == ==== ピンの定義 ==== <syntaxhighlight lang="c++"> // ライブラリのインクルード #include <Adafruit_GFX.h> // グラフィックス描画用ライブラリ #include <Adafruit_ST7735.h> // ST7735専用のドライバライブラリ #include <SPI.h> // SPI通信用ライブラリ // ピンの定義 #define TFT_CS 10 // チップセレクト用ピン (任意のGPIOピン) #define TFT_RST 9 // リセット用ピン (任意のGPIOピン) #define TFT_DC 8 // データ / コマンド切り替え用ピン (任意のGPIOピン) </syntaxhighlight> <br> ==== ディスプレイオブジェクトの初期化 ==== <syntaxhighlight lang="c++"> // ディスプレイオブジェクトの初期化 // 引数 : CS, DC, RSTの各ピン番号 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); // カラー定義 (一般的に使用される色) #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF </syntaxhighlight> <br> ==== ディスプレイの初期化 ==== 下表に、<code>Adafruit_ST7735::initR</code>メソッドで使用できる引数を示す。<br> もし、不確かな場合は、各引数を試して正しい表示になるものを選択することもできる。<br> <br> 誤った引数を使用する場合、色の反転、あるいは、表示位置がずれる可能性がある。<br> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |+ Adafruit_ST7735::initRメソッドの引数 |- ! style="background-color:#66CCFF;" | 引数 ! style="background-color:#66CCFF;" | ディスプレイタイプ ! style="background-color:#66CCFF;" | 補足 |- | style="text-align:center;" | INITR_BLACKTAB || style="text-align:center;" | 1.8インチ (黒タブ) || 一般的な1.8インチディスプレイ |- | style="text-align:center;" | INITR_GREENTAB || style="text-align:center;" | 1.8インチ (緑タブ) || 色の初期化が異なる1.8インチディスプレイ |- | style="text-align:center;" | INITR_REDTAB || style="text-align:center;" | 1.8インチ (赤タブ) || オフセット設定が異なる1.8インチディスプレイ |- | style="text-align:center;" | INITR_MINI160x80 || style="text-align:center;" | 0.96インチ || 160x80ピクセルの小型ディスプレイ |- | style="text-align:center;" | INITR_MINI160x80_PLUGIN || style="text-align:center;" | 0.96インチ || プラグイン基板用の160x80ピクセル |} </center> <br> 識別方法 1<br> * ディスプレイの背面やフレキケーブルの色 (タブの色) を確認 * ディスプレイサイズを測定 (0.96インチ、1.8インチ等) * 解像度を確認 (160x80、160x128等) <br> <syntaxhighlight lang="c++"> // シリアル通信の開始 (デバッグ用) Serial.begin(9600); // ディスプレイの初期化 // 1.8インチ黒タブの場合 tft.initR(INITR_BLACKTAB); // ディスプレイタイプの設定 // 0.96インチの場合 // tft.initR(INITR_MINI160x80); // 画面の向きを設定 (必要に応じて) tft.setRotation(1); // 0〜3の値で90度ずつ回転 // 画面クリアと背景色の設定 tft.fillScreen(BLACK); // 初期テキスト設定 tft.setTextColor(WHITE); tft.setTextSize(1); </syntaxhighlight> <br> ==== テキストの表示 ==== <syntaxhighlight lang="c++"> // テキストの表示 tft.setCursor(0, 0); tft.println("Hello World!"); </syntaxhighlight> <br> ==== 図形の描画 ==== <syntaxhighlight lang="c++"> // 四角形の描画 tft.drawRect(10, 30, 50, 30, WHITE); // 空の四角形 tft.fillRect(70, 30, 50, 30, RED); // 塗りつぶされた四角形 // 円の描画 tft.drawCircle(35, 90, 20, BLUE); // 空の円 tft.fillCircle(95, 90, 20, GREEN); // 塗りつぶされた円 // 線の描画 tft.drawLine(10, 120, 110, 120, YELLOW); // 直線 // 1秒待機 delay(1000); </syntaxhighlight> <br><br> == ヘルパー関数の定義 == ST7735を使用する上で、ヘルパー関数を定義すると便利である。<br> <br> <syntaxhighlight lang="c++"> // テキストの表示 void displayText(const char* text, uint16_t x, uint16_t y, uint16_t color) { tft.setCursor(x, y); tft.setTextColor(color); tft.println(text); } </syntaxhighlight> <br> <syntaxhighlight lang="c++"> // 画面の消去 (背景色を黒色で消去する場合) void clearScreen() { tft.fillScreen(BLACK); } </syntaxhighlight> <br> <syntaxhighlight lang="c++"> // 四角形内にテキストを中央揃えで表示 void drawCenteredText(const char *text, int x, int y, int w, int h, uint16_t color) { int16_t x1, y1; uint16_t w1, h1; tft.getTextBounds(text, 0, 0, &x1, &y1, &w1, &h1); tft.setCursor(x + (w - w1) / 2, y + (h - h1) / 2); tft.setTextColor(color); tft.print(text); } </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Arduino]]
Arduinoの基礎 - ST7735
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse