チョコです。
やっと、RL78/G23-64PFPBのArduinoIDE環境を使ってみました。
RL78/G14FPBのサンプル・コードをRL78/G23-64PFPBのArduinoIDE環境に移植したり、MultiFuncシールドを接続して動かしてみました。
本体は、サンプルプログラム等に投稿してあります。アップしたのは、以下の3つです。
LCD表示器の制御方法.pdf
レス有難うございます。
元が、RL78/G10で作成したライブラリをRL78G14-FPBに移植したものをRL78G23-64PFPBに移植したものなので、最後は力任せでした。
RL78G14-FPBの方が見やすいかと思います。また、以前検討したときにまとめた資料(PDF)を添付しておきます。
CS+環境では、ArduinoのAPIのような使い方が難しいので、そこらは対応出来ていません(RL78G14-FPBでは、"."を
構造体で対応しているようですが、今回はそこまではやっていません)。
必要なら、16文字2行のLCDのボードを提供可能です。
以上
LCD_LIBの部分を本来のスケッチとは分けて使いやすくしました。
具体的には、下の画面イメージに示すように、LCD_LIBタブにLCDのライブラリを独立させました。
このように分離した状態でコンパイルして動作させたのが下の写真です。
これまでの写真のボードと異なり、8ビットI/Fでも使えるようになっていますが、
これまでと同様、今回は4ビットI/Fで使っています。
チョコさん
シェルティです、こんにちは。
>>必要なら、16文字2行のLCDのボードを提供可能です。
ご配慮感謝いたします。こちら、弊社でも調達しましたので提供は今のところ不要ですね。
またいろいろ実装面について情報共有、相談などさせてください。
以上です
最後に、手持ちの8文字×2行のLCDを動かしてみることにしました。
上側がRL78G23-64PFPBで、右がHDC1080センサー、左下が8文字×2行のLCDです。これは、バックライトが点灯していますが、バックライトなしのものもありますが、非常に見難いです。
8文字に収めるために、表示を簡素化してあります。
LCD実装するボードを下に示します。
左側がLCDを指すためのソケットです(右は高さを合わせるためのダミーです)。
左のソケットの下あたりにあるのが、コントラスト調整用の半固定抵抗です。ほぼグランドに近いところに設定されています。出来れば、ライトアングルのものがよかったのですが、適当なものがなかったので、LCDを付けたり外したりして、適当に調整しています。
上側が信号の引き出しを行っているピンヘッダ(ライトアングル)です。
これは配線面です。ここで、注意するのは、GNDとVDDの関係です。使用した8文字×2行のLCDは16文字のLCDとは、逆になっています。この写真では、黒いGND線は分かりやすいのですが、VDDは赤いケーブルがなくなってしまっていたので青い線を使ったので、かすかにしか見えないですね。もっと分かりにくいグリーンの配線が制御信号、白い線がデータ配線です。今回はE信号の抵抗でのプルダウンは省略しました。また、このLCDでは、バックライトはジャンパと抵抗をLCDボードに実装することで、電源をオンすれば、バックライトが点灯するようになっています。
ここまでで使用したLCDは5V動作です。3.3Vでは動作しないので、3.3Vで動作させたい場合には、3.3V動作のLCDを準備してください。なお、3.3VのLCDは4.5Vまでしか動作範囲にはないので注意してください。
これで、HD44780 I/FでのLCDの制御はおしまいにします。
RL78G23-64PFPBで何をやろうか迷ったのですが、結局MultiFunctionシールドで残っていた半固定抵抗器を使ってみます。
半固定抵抗器を単純に使うだけでは、あまり面白くないので、A/D変換して得られた値の4回分の移動平均を7セグLEDに表示します。
表示は頭に0を追加する(0パディング)か0を表示しない(0サプレス)かを切り替えられるようになっています。
別のスケッチに手を加えて名前を変えて保存して、コンパイルしたところ、以下のエラーが出てしまいました。
この状態で、Arduino IDEを一旦閉じて、再度起動すると、なにも変更しないでもコンパイルが通ってしまいます。
なぜかはわかりませんが、他から持ってきた場合には、Arduino IDEを一度閉じれば何とかなるようです。
RL78G23-64PFPBで使用したMultiFunctionシールドをRL78G14-FPBに接続してみました。
RL78G14-FPBのAN6115(アナログ入出力(Arduino API))に手を加えて作成しました。
その中でArduinoAPI部分にも手を加える必要があったので、コード生成からやり直したのですが、
KatoNaganoさんの以下のスレッドと同じと思われる現象が確認できました。
このプロジェクトでは、コード生成を行うと、確実に発生するようです。
実行結果をいかに示します。
こんにちは、シェルティです。
本件Arduinoライブラリの開発チームに現象を診てもらうよう依頼しました。進展がありましたらまた書き込みます。