re;34
i2cscanner3.inoを使って動作確認しました。何も表示されなかった当方のOLEDにちゃんと表示され、テスト側に接続したデバイスのアドレスも正しく検出されていることを確認しました。ありがとうございました。
以前のバージョンでOLEDの画面に表示が出なかった状態の波形をオシロで見ると、I2Cバスのハイレベルが不足しているようでした。そこで、10kΩでプルアップすると動くようになりました。
ソフトウエアI2Cを使う場合は、ライブラリの内部でプルアップを有効にしていること、およびバスの速度が実測で60kHz程度に抑えられていることでマージンが増えているのだと感じました。
以前のバージョンでOLEDの画面に表示が出なかった状態の波形をオシロで見ると、I2Cバスのハイレベルが不足しているようでした。そこで、10kΩでプルアップすると動くようになりました。
ソフトウエアI2Cを使う場合は、ライブラリの内部でプルアップを有効にしていること、およびバスの速度が実測で60kHz程度に抑えられていることでマージンが増えているのだと感じました。
Re:Re:[33]
SoftwareWire を使った i2cscanner3.ino の確認をしました。
動作に問題はありませんでしたので X でラジオペンチさんに「新版出た」と連絡を入れておきました。
(最初に、これを実現したかったのですが、無理だったものが現実になって感激です!)
動作に問題はありませんでしたので X でラジオペンチさんに「新版出た」と連絡を入れておきました。
(最初に、これを実現したかったのですが、無理だったものが現実になって感激です!)
Re:[33]
SoftwareWireを使ってセカンドI2Cを使えるようにしました。
i2cscanner3.ino
です。Arduino版はこれだけで良いのではないかと思います。
i2cscanner3.ino
です。Arduino版はこれだけで良いのではないかと思います。
Re:[27]
思い当たる対策を施してi2cscanner.zipはクローズします。
OLEDの初期化をi2cscanner2と同じにしたのと、OLEDの初期化の前に正常にコマンドを送れるようになるまで待つことです。
i2cscanner2の方はSoftware Wireを使ってセカンドI2Cを使えるようにしてもいいかなと思っています。
OLEDの初期化をi2cscanner2と同じにしたのと、OLEDの初期化の前に正常にコマンドを送れるようになるまで待つことです。
i2cscanner2の方はSoftware Wireを使ってセカンドI2Cを使えるようにしてもいいかなと思っています。
Re: I2Cスキャナの動作確認2
すみません。
i2c.cpp の
#include "arduino.h" は応急処置であって、削除して.cppを.inoに変えた方がArduino流でした。Windowsはファイル名の大文字小文字を区別しないので他のOSと違いが出てしまいます。
SH1106は似て非なるもののようでちょっと変更すれば動くという噂もあります。
i2c.cpp の
#include "arduino.h" は応急処置であって、削除して.cppを.inoに変えた方がArduino流でした。Windowsはファイル名の大文字小文字を区別しないので他のOSと違いが出てしまいます。
SH1106は似て非なるもののようでちょっと変更すれば動くという噂もあります。
I2Cスキャナの動作確認2
再度ファイルをダウンロードしましたが、やはり、Linux 版の Arduino IDE では
i2c.cpp の
#include "arduino.h"
と
delayMicroseconds(5);
でエラーとなりますが、これは当方の環境が悪いので問題ないと思います。
あれ?Google 先生に聞いてみたら
#include "Arduino.h"と頭文字を大文字にしたら治りました。
ところで、色々な OLED を試してみました。
白色や青色、形状の少し異なるものなど部品箱の中の全てを試しましたが正常表示でした。
その後に 0.96 インチの SSD1306 ではなく 1.3 インチの SH1106 をつないだら画面が真っ黒でした。
ご参考まで
i2c.cpp の
#include "arduino.h"
と
delayMicroseconds(5);
でエラーとなりますが、これは当方の環境が悪いので問題ないと思います。
あれ?Google 先生に聞いてみたら
#include "Arduino.h"と頭文字を大文字にしたら治りました。
ところで、色々な OLED を試してみました。
白色や青色、形状の少し異なるものなど部品箱の中の全てを試しましたが正常表示でした。
その後に 0.96 インチの SSD1306 ではなく 1.3 インチの SH1106 をつないだら画面が真っ黒でした。
ご参考まで
Re: I2Cスキャナの動作確認2
ラジオペンチさん、パオさんさん、ありがとうございます。
画面が出ない環境では全くダメで、出る環境ではあまり問題ないということで、少し安心しました。何か初期化に足りないものがあるのでしょう。
何も接続してない場合に全部塗りつぶしになるのはこちらでも確認しています。エラーの検出方法が不十分なようです。自分で作ったものではないのでこれ以上深入りするのはやめます。
動作にクセがあることを分かって使う分にはあまり問題がないと思います。
画面が出ない環境では全くダメで、出る環境ではあまり問題ないということで、少し安心しました。何か初期化に足りないものがあるのでしょう。
何も接続してない場合に全部塗りつぶしになるのはこちらでも確認しています。エラーの検出方法が不十分なようです。自分で作ったものではないのでこれ以上深入りするのはやめます。
動作にクセがあることを分かって使う分にはあまり問題がないと思います。
I2Cスキャナの動作確認2
Windows11 で動作確認しましたが、その前に Linux でコンパイルした物は、電源抜き差しで正常表示になりました。
画面表示の不具合は無いと訂正いたします。
初回の起動時のみ何か不具合があったようで、その後は正常動作しています。
Windows11 + Arduino IDE 2.32 で
i2cscanner.zip
i2cscanner2.ino
どちらも正常動作しています。
スケッチに何も手を加えずに正常動作しています。
Linux 上で確認した
i2cscanner.zip
の内容が異なるようなので再度確認します。
追加情報です。
i2cscanner.zip
はセカンドI2Cが正常に認識していますが、活線状態で SDA を抜くと全てが塗りつぶし状態になります。
SCL だけを抜くか、全てを抜けば問題ないので接続途中だけの一時的な表示不良ですね。
画面表示の不具合は無いと訂正いたします。
初回の起動時のみ何か不具合があったようで、その後は正常動作しています。
Windows11 + Arduino IDE 2.32 で
i2cscanner.zip
i2cscanner2.ino
どちらも正常動作しています。
スケッチに何も手を加えずに正常動作しています。
Linux 上で確認した
i2cscanner.zip
の内容が異なるようなので再度確認します。
追加情報です。
i2cscanner.zip
はセカンドI2Cが正常に認識していますが、活線状態で SDA を抜くと全てが塗りつぶし状態になります。
SCL だけを抜くか、全てを抜けば問題ないので接続途中だけの一時的な表示不良ですね。
I2Cスキャナの動作確認
ご報告が遅くなって、すみませんでした。
私のところでは、ファイルのダウンロード、解凍などは問題ありません。
当方では、Arduino IDE は、Windows、Linux 共に 2.32 です。
いつもの作業環境の Linux 版で試したところ、
#include "arduino.h"
と
delayMicroseconds(5);
でエラーになったので、動作確認を優先してコメントアウトしたら動作しました。(パスが通っていない?)
動作は、一部の表示不良以外は問題ありません。
表示不良の内容は、
画面表示が左に4ドット程度ずれるという状態です。
取り急ぎの確認で失礼します。
私のところでは、ファイルのダウンロード、解凍などは問題ありません。
当方では、Arduino IDE は、Windows、Linux 共に 2.32 です。
いつもの作業環境の Linux 版で試したところ、
#include "arduino.h"
と
delayMicroseconds(5);
でエラーになったので、動作確認を優先してコメントアウトしたら動作しました。(パスが通っていない?)
動作は、一部の表示不良以外は問題ありません。
表示不良の内容は、
画面表示が左に4ドット程度ずれるという状態です。
取り急ぎの確認で失礼します。
調査結果など
いろいろ調べましたがまだ動いていません。以下新たに分かった情報です。
oledのデバイスアドレスは0x3cになってます。ちなみにExampleのプログラムの中のアドレスは0x3dになっているので0x3cに変更して動作確認しています。
ダウンロードしようとすると、ファイル名が「未確認 478484.crdownload」などと出て来るのは、当方のブラウザ(chrome)の設定の問題のようです。ちなみにベタに置いていただいたファイルでも同じメッセージが出ました。この問題はマウスで指定してやれば解除出来るので実質的には問題無しです。
ベタに置いていただいたファイルを使ってもダメ。ファイルを展開するフォルダをいつもArduinoで使っている場所に変えてもダメ。別のOLEDに変えてもダメ。ということで万策尽きた感があります。
oledの初期化のコードなどが私のデバイスと相性が悪い気もしてきましたが良く判りません。
そんなことで、こんな報告があったということを記憶に留めて頂いて、この話は一旦クローズにしたいと思います。
念のために当方のIDEの画面はこちら。
https://blog-imgs-171.fc2.com/r/a/d/radiopench/20240721_arduinoIDE.jpg
何か判ったらこちらにコメント入れます。
oledのデバイスアドレスは0x3cになってます。ちなみにExampleのプログラムの中のアドレスは0x3dになっているので0x3cに変更して動作確認しています。
ダウンロードしようとすると、ファイル名が「未確認 478484.crdownload」などと出て来るのは、当方のブラウザ(chrome)の設定の問題のようです。ちなみにベタに置いていただいたファイルでも同じメッセージが出ました。この問題はマウスで指定してやれば解除出来るので実質的には問題無しです。
ベタに置いていただいたファイルを使ってもダメ。ファイルを展開するフォルダをいつもArduinoで使っている場所に変えてもダメ。別のOLEDに変えてもダメ。ということで万策尽きた感があります。
oledの初期化のコードなどが私のデバイスと相性が悪い気もしてきましたが良く判りません。
そんなことで、こんな報告があったということを記憶に留めて頂いて、この話は一旦クローズにしたいと思います。
念のために当方のIDEの画面はこちら。
https://blog-imgs-171.fc2.com/r/a/d/radiopench/20240721_arduinoIDE.jpg
何か判ったらこちらにコメント入れます。