DFROBOT DFR0090、なかなか思うように動作してくれません。
先々、秋月電子通商の1桁毎に74HC595が付いてる7セグを並べて使いたいと考えています。
DFR0090は既に購入しちゃったので^^;、
上記を購入する前にどうにか使えるようにしてみようとしているのですが、
思うように表示出来ていません。
SPIで使えると説明にあるので、先々PICマイコンでも使えるようにArduinoで
どうにか動かしてみようと思っています。
DIP化キットのほうにサンプルプログラムがあったので、ビット反転して試しに書き込んでみました。(DFROBOTのほうはアノードコモンの7セグのため)
なんか惜しい表示しています。
もうなんか、、、アノードコモンに呪われています。
購入前に情報が無かったので仕方がなかったのですけど。
サンプルプログラム内のSPI設定が見慣れなかったので検索したところ、
今後使わないでくれとか、新しいほう使ってねとArduino公式サイトでちらっと見えました。
さらに調べていて行き着いたのが下記のサイトです。
いつもこれぐらい優しく教えて欲しい・・・。
10の桁表示が化けていたので、SPI.beginTransaction()に置き換えて、
プログラムをシンプルに1桁しました。
結果、文字化け無く表示出来るようになりました。
以前の検証で、クロック立ち上がり時にデータを読んでいることが判っているので、先のサイトの説明からSPI_MODE0を選択しています。
■今後の課題
一番左の桁から1つずつカウントアップすると、1つずつ右の桁に元の数字が押し出されているのですけど、
表示したい値(例えば"5.014"とか)を表示させるには、
一度真っ暗にして、データを右詰めでセットしておいて、ラッチするというプログラムが必要そうです。
今は8ビット(一桁分)ずつ転送してラッチしていますが、
今後は順番を入れ替えて、お尻から一気に8x8の64ビット(8桁)転送できるようになりたいです。