Arduinoでの16x2 LCDディスプレイのデバッグ


9

標準の16x2 LCDディスプレイ(日立HD44780と互換性があると思います。以下の概要と仕様を参照してください)は、ここで説明するように、4つのデータピンを使用してArduino Unoに接続しますが、2x 220オームの抵抗を並列に追加しました(つまり、 110オーム抵抗)をピン16(バックライトグランド)に接続し、ポットを静的抵抗に置き換えて、Voで4Vを作成します

つまり、RWはグランドに配線され、RS、Enable、Data4-7はArduinoピンに接続され、Data 0-3はフローティングです。

Arduinoの別のピンに接続されている他のもの(センサー、光絶縁されたSSRを備えたトランジスター、主電源リレー、いくつかのボタン)があります。私が使用するコードは、1秒間に数回テキストをディスプレイに書き込み、通常、ディスプレイは完全に機能します。

ただし、リレーが閉じると(約10mAかかり、Arduinoピンの1つから順に制御されるトランジスタによって制御されます)、LCDが文字化けすることがあります。通常は次にリレーが閉じるまで文字化けしますが、リレーが開いたとき、またはリセットのために開閉がさらに数回繰り返された後も時々発生します。リレーが開くか閉じると、常にガーブリングが開始および停止します。

「文字化け」とは、文字化けした後にそれに書き込むたびに、英語の文字を書くのではなく、通常はデータシートで識別できない文字列を取得することを意味します(一部は可能です)。この文字化けした文字列は、新しいテキストをLCDに書き込むと、画面に沿って左に移動する傾向があります。

Arduino自体が混乱しているのではなく、同じテキストを同時にシリアルモニターに書き込んでいるため、文字化けしていません。

それ以来、RWピンをArduino出力に接続し、Data0-3をグラウンドに接続する実験をしましたが、これは役に立ちません。9VバッテリーまたはUSBでデバイス全体に電力を供給しましたが、役に立ちません。電池を交換しました…変化はありません。

動作しているように見える唯一のことは、リレーに接続された負荷がないことですが、それは目的を無効にします:-)

シグナルアナライザーや、マルチメーター、ラップトップ、Arduinoよりも高度なものはありません...これをデバッグするのに役立つヒントはありますか?

LCDサマリーシート:http : //oomlout.com/LCDD/LCDD-SUMM-BC1602A.pdf

LCD仕様:http : //oomlout.com/LCDD/LCDD-DATA-BC1602A.pdf

文字化けしたテキストの例: 文字化け


1
少なくとも1 uFのコンデンサを電源レールに追加してみてください。つまり、コンデンサの一方の端がVccに接続され、もう一方の端がGNDに接続されます。電解液の場合、コンデンサの向きに注意してください:)
abdullah kahraman

1
これは本当に奇妙です。大きなリレーを直接駆動しているのではなく、購入したリレーボックスには、小さなリレーに電力を切り替える小さなDIP SSRがあり、大きなリレーはACラインから切り離されています。そのため、リレーの作動によって生成される逆起電力が回路に入る方法はありません。
コナーウルフ

これは、接地/デカップリングの問題のようなにおいがします。ブレッドボードの電源レール全体に大きな静電容量がありますか?
コナーウルフ2012年

また、リレーボックスはブレッドボード回路にどのくらい近いですか?リレーボックスと残りの回路の間に数フィートのワイヤーを配置できますか?それは磁気結合の可能性を取り除くでしょう。
コナーウルフ

回答ありがとうございます。リレーがSSRおよび他のさまざまなコンポーネントと分離されていることは正しいです。私はダイオードを試しましたが、後でLCD近くの電源レールの5VとGNDの間に220uFの電解コンデンサを試しました。これらはどちらも効果がないようでした。私は(まだ)2つを一緒に試しませんでした。
Richard Russell

回答:


5

リレーの両端にダイオードがありますか?そうでない場合、開閉時の誘導スパイクが問題を引き起こす可能性があります。

たとえば、リレーを流れる電流を停止すると、リレーは電流を流し続けようとします。放電の経路がない場合、大きな電圧が発生します(経路が見つかるまで本質的に上昇し続けます)。
具体的には、式はV = L(dI / dT)です。これは、インダクタが電流の変化率に比例してインダクタの両端に電圧を発生させることにより、インダクタを流れる電流の変化に対抗することを意味します。

リレーの両端にダイオードを配置して、通常の電流の流れに対抗するようにしてください。

編集-製品ページをチェックすると、周辺部品が追加された「準備完了」リレーのボックスのようです。そのため、上記のようになることはほとんどありません。それでも、リレーの電源の両端にダイオードを配置してみます。
また、コメントに記載されているように、供給が適切にフィルター処理されていることを確認してください。ICとLCDの隣に少なくとも1uFのコンデンサをいくつか配置し、100uFを超えるバルクキャップをどこかに配置します(すべて電源からグランドまで)。


「リレー」のデータシートをご覧ください。リレーへの入力は実際には小さなSSRを駆動しており、実際の電力をリレー自体に切り替えます。リレーThingへの入力はSSR入力であるため、ダイオードが実際に何かを実行していることはありません。
コナーウルフ

私はそれを見て(以前は見つけられませんでした)、同意しました。これは、「傷つけない」タイプの提案であり、詳細情報はありませんでした。うまくいけば、デカップリングが追加された状態ですぐにアップデートが届きます。
Oli Glaser

ご回答ありがとうございます。リレーがSSRおよび他のさまざまなコンポーネントと分離されていることは正しいです。私はダイオードを試しましたが、LCDの近くの電源レールの5VとGNDの間に220uFの電解コンデンサを試しました。私は(まだ)2つを一緒に試しませんでした。
Richard Russell

また、AC回路を5V回路から約1フィート離れたところに意識的に移動し、それらを接続する5Vリレー信号線のみを残してみましたが、これは役に立ちませんでした。私の実験では、リレーへの小さな負荷(85Wハロゲンランプ)はディスプレイに大きな影響を与えないように見えましたが、大きな負荷(2000Wケトル)があると、エラーが発生する可能性が高くなります。まれではありますが、ランプにこの問題が見られました。
Richard Russell

トランジェントには1uF程度のセラミックキャップの方が適しています。220uFと並列に1つ追加します。リレーワイヤの近くの+ 5VとGNDにまたがって、1つまたは2つの> 100uFのキャップも追加してみてください。あなたのセットアップのより良い写真を見せてくれますか?
Oli Glaser

1

ArduinoがSainSmartの光絶縁リレーボードも制御しているときに、16x4 LCDディスプレイで同じ問題が発生しました。リレー接点が接続されていない状態で、すべてが正常に機能しました。しかし、リレーが誘導性負荷(24 VAC電源リレー)を切り替えると、ディスプレイが文字化けします。電源絶縁とフィルターコンデンサーの量は役に立ちませんでした。

この問題を解決したのは、SainSmartリレーの接点に接続されたスナバ(コンデンサと抵抗が直列)でした。私はパッケージ済みのCornell Dubilier EMI / RFI フィルターをきちんと使用しましたが、47Ωの抵抗器と直列にある園芸品種の0.1 ufdコンデンサーもおそらく同様に機能します。


コンデンサと抵抗をリレーに直列に接続する方法の回路図を見てください。THanks
Jam Ville

0

LCDが「文字化け」している理由を頭を叩いていたところ、ArduinoのGNDをブレッドボードに接続していないことがわかりました(これが誰かの助けになる場合)。よろしく


これは既存のコメントに多くを追加しません。
デビッド

-1

出力にシールドケーブルを使用し、接地します。それは私のために問題を解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.