初めてのArduino ② UNOボードに表示器をつなぐ(その1 ドット・マトリクス表示器の接続)

 プログラム言語を学ぶとき、テュートリアル的な入門書を読むのが一般的だと思います。Arduinoは、Arduino用に用意された関数などをプリコンパイルした後、普通にGCCなどのコンパイラを通し、その後必要なライブラリがリンクされ、実行形式の機械語が作成されて、マイコンにアップロードされます。なので、C++の文法がそのまま使えたりする場面もあります。

  Arduino 日本語リファレンス

を常に参照するような形でプログラムを作っていくと効率が良いでしょう。書籍のほうが都合がよいのであれば、購入できます。

  Arduinoをはじめよう 第3版

 

 実は、この内容以外に、いろいろ文字列処理などでは拡張されていますが、本家でも、すっきりとした形のページがないです。ある関数の解説のリンクの先に、突然新しい関数が出てきたりします。

 なので、テュートリアルは抜きにして、本番をこなしながら、必要な関数の使い方を覚えていきましょう。

 C言語にあるprintf()はないです。一説によると、フォーマット文のコードが大きくて、8ビット・マイコンのメモリに入らないのが原因だということを聞いたことがあります。ArduinoではSerial.print()文を使います。printfデバッグという言葉があります。プログラムが思ったように動かないとき、変数などを印刷して動作がおかしい場所を見つけます。

 Arduino IDE 2.0にはブレークポイントを設定するようなデバッガが用意されていますが、UNOでは動きません。マイコンがSAMD(Cortex-M0やM4)が搭載したボードが対象です。MKR Zeroや MKR WiFi 1010、MKR WAN 1310などが日本で入手しやすいです。MKR Zeroだけは外付けデバッガが不要です。

出力はドット・マトリクス

 筆者が老眼なのもありますが、LCD表示器は見ずらいです。LEDを利用した表示器を扱います。温度や湿度では、4桁の数値が表現できると十分です。

  GeeekPi 2パックMAX7219 8x32ドットマトリックスMCU 4 in 1 LEDディスプレイモジュール(Arduino/Raspberry Pi用)(赤)

 MAX7219というコントローラが、マイコンからSPIバスを通して命令やデータを受け取り、アルファベットや数字の表示をします。上記のようにLEDドット・マトリクス以外に7セグメントLEDの制御と表示もできます。

接続

 MAX7219のライブラリがSPIバスを使うのであれば、次の3本を接続します。ピン配置図はarduino.ccの画像です。一昨年あたりから、スレーブ、マスタという用語は使わない方針になっているのでMOSIとMISOが存在しません。

  • D13 SCK
  • D11 MOSI
  • D10 CS

  • MISO;マスター・イン・スレーブ・アウト->CIPO;コントローラー・イン・ペリフェラル・アウト
  • MOSI;マスター・アウト・スレーブ・イン->COPI;コントローラー・アウト・ペリフェラル・イン
  • SS;スレーブ・セレクト<-なぜか残っている

コラム エディタの機能

 関数の上にマウスを載せると、いままで、ソースを読まないとわからなかった引数の情報などが表示されます。

 メニューのFileからPreferencesを選びます。Edit Quick Suggestionsにチェックを入れます。

  例えば、intと入力したら、それに続く選択肢が表示されます。

前へ

初めてのArduino ① UNOボードとIDE2.0

次へ

初めてのArduino ③ UNOボードに表示器をつなぐ(その2 ドット・マトリクス表示器のスケッチ)