ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

arduinoコミュのLCDについて困っています

  • mixiチェック
  • このエントリーをはてなブックマークに追加
最近Arduinoをかっていろいろと試していたのですが、
LCDの表示について困っています。

LCDで何か表示してみようと思いまして、
「abcdefghij」と表示するスケッチを実行しようとしたのですが、
表示がうまくいかず、なぜか変な文字がダーっと延々と流れています。
ライブラリはLiquidCrystalを使いました。
I/Oポートのデジタルピン5〜11を使いました。

スケッチはこれです
#include <LiquidCrystal.h>
LiquidCrystal lcd(5,6,7,8,9,10,11);

void setup()
{
lcd.begin(2,16);
}
void loop()
{
lcd.clear();
lcd.print("abcdefghij");
delay(500);
}

<video src="8384330:72f2346e1a5b991fc72f0f975df28b16">


あと、サンプル?のHello Worldもやりましたが結果は変わらずです。
何回もやっているのですがなぜか出来ないです。
LCDは秋月で買ったこれです
http://akizukidenshi.com/catalog/g/gP-01797/
ほかにもなぜか手元にあったLCDたちでも試しましたが同じでした・・・
ほかのLCDさん
http://akizukidenshi.com/catalog/g/gP-01704/
http://akizukidenshi.com/catalog/g/gP-00040/

コメント(30)

ピン番号の指定が違うとかですかね・・・。
見当違いかもしれませんが。
すいません、直接関係ないんですが

>>http://akizukidenshi.com/catalog/g/gP-00040/

このLCDのはんだつけって難しくなかったですか?
勢いで買ったものの、コネクタ部分の細かさにはんだつけの自身がありません。
lcd.clear(); の前に delay(500); を入れても変わりませんか?
いけちょ@愛の奴隷さん
ありがとうございます!
それはたぶんですがあり得ないです。
もうこれだけに1週間近くやっていて、ピンの確認はいやになるくらい
やってるんですよ・・・・

k@R-GLAY1さん
大丈夫ですよ〜
ランドをしっかり暖めれば勝手にその場所にはんだ乗ってくれますし、
ブリッジしちゃっても吸い取り線とかで修正可能です!
(これは大丈夫だろうけど 暖め過ぎ注意です!)

いけちょ@愛の奴隷さんその2
相変わらずです・・・・・・・・・
どうしたのかな・・・・
>LiquidCrystal lcd(5,6,7,8,9,10,11);
このパラメータだと
Arduino→LCD
Digital5→4(RS)
Digital6→5(RW)
Digital7→6(E)
Digital8→11(DB4)
Digital9→12(DB5)
Digital10→13(DB6)
Digital11→14(DB7)
と接続しているはずですが、
そのようになっていますか?

また
http://akizukidenshi.com/catalog/g/gP-01797/
↑この液晶のピンは
14 13 12 11 10 9 8 7 6 5 4 3 2 1 15 16
と少々分かりにくい並びになっていますが、読み間違っていませんか?

ちなみにArduinoIDE0017のサンプルHelloWorldでは
LiquidCrystal lcd(12,11,5,4,3,2);
のパラメータで
Arduino→LCD
Digital12→4(RS)
GND→5(RW)
Digital11→6(E)
Digital5→11(DB4)
Digital4→12(DB5)
Digital3→13(DB6)
Digital2→14(DB7)
に接続ですね。
>もうこれだけに1週間近くやっていて、ピンの確認はいやになるくらい
思い込んじゃっていると、どうやっても抜け出せないので、
写真とかをアップして他人の目に見てもらうのも手ですよ(^^)
まりすさん
ありがとうございます!
ピンの確認ですが、確認というか接続のやり直し(一から接続しなおす)って感じでやってるんですけどね・・・だから配線間違いは無いのかなと・・・

サンプルデータは一度スケッチのコメント見ながら配線してやって
その後↑のような自分でわかりやすいような配線にした後、実際に配線見ながら
スケッチ書き換えてやりました・・・・

もう5回ほどやり直してみます。
↑追記ですが コントラストに可変抵抗5Kオームなんですけどこのせいって言うのはないですよね
半固定買い忘れてすいません
http://akizukidenshi.com/catalog/g/gP-00040/
これでやってもだめですか?
互換品でも挙動が異なります。
(白抜きバックライトなど色違いでも挙動が異なります。)
ライブラリのバグもあるのですべてを疑いつぶしていくしかないです。
あとは、配線材が断線していないかとか、
ポートが壊れていることを想定して、
別のポートで試してみるとか。
一度それぞれのポートでLEDを光らせるテストとかしてみるといいかも。

あ・・・・・・・・
いまLEDピカピカやったんですけど・・・・・・・・・
つかない・・・・
ひとつも・・・・
↑ 横着な考えしてたらミスでした。
いまひとつずつ確認中です
それはそれで、何かが違っていそうな(^^;
LEDの向きが違っているとか、電流制限の抵抗値が大きすぎるとか、
スケッチでpinModeを設定し忘れてるとか、
大丈夫でしょうか?

やっぱり上手く行かなかったら、
その写真をアップしたいただいた方が検証しやすいかと。
テスト中・・・でーす
テストのスケッチ〜
int LED=2;

void setup()
{
Serial.begin(9600);
}
void loop()
{
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(1000);
if(LED==13)
{
LED=2;
}
else
{
LED++;
}
Serial.println(LED);
}
もうひとつ質問なんですけど
なぜか0と1番ピン反応無いんですけどこれは仕様?
使い方がおかしいのかな

setupの中で各ピンをOUTPUTしたほうがいいですかね?
>setupの中で各ピンをOUTPUTしたほうがいいですかね?
お作法ですから、しておきましょう。
void setup()
{
Serial.begin(9600);
pinMode(LED,OUTPUT); //←ここ
}

>なぜか0と1番ピン反応無いんですけどこれは仕様?
パソコンとの通信(Serial)で使っているからでは?
ありがとうございます!
その書き方でいいんですかね
LEDは変化させてるんでsetupに書くなら0〜13までいちいち書いたほうがいいのかなって思ったんですけど、loopに書いてもおkですかね?


今テストしてるんですが
10〜12ピンが動作していない模様です

若干横着してテストしてるんで10ピンからを重点的にテストしてみます・・・・orz

なぜに13ピンは元気なんだ・・・抵抗おんなじなのに・・・

テストの回路は2〜5、6〜9、10〜13をまとめてLEDにつないでます。
ぴかぴかのタイミングでどのピンがオワタか見てます・・・

<video src="8385388:a24b529afc71d4f367f554f624ce64e4">
そのやり方は横着すぎです。
というか、逆にピンを壊す可能性がありますよ。
例えば、Digital2,Digital3がともにOUTPUTで
Digital2がHIGHでDigital3がLOWにした場合、
Digital2からDigital3へ過大な電流が流れて、ポートを壊してしまいます。

どうしても、この回路でやるなら
同じLEDに繋いでいるデジタルポートでOUTPUTにするのは常に1つだけになるように気をつけなければいけません。

void setup()
{
Serial.begin(9600);
}
void loop()
{
pinMode(LED,OUTPUT); //←追加
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(1000);
pinMode(LED,INPUT); //←追加
if(LED==13)
{
LED=2;
}
else
{
LED++;
}
Serial.println(LED);
}
こんな感じでしょうか。
もしかして、これ出力に設定したピンを並列につないでませんか?
出力がショートして壊れてしまいますよ
>その書き方でいいんですかね
17のプログラムは間違いですね。
15のLoop中のLED++を見落としてました。
すみません。
pinMode追加したらみんな元気よく点灯しました。
どうやら13ピンさんはOUTPUTの設定になっていたようで
13ピンさんだけ元気だったみたいです

ちなみに全部検査したところ10〜13までも問題ないです
あれ・・・ということは・・・ピン、線元気・・・・・・
全部無事だったのに・・なにこの残念感・・・

あ、でもpinModeはいつ書いてもおkというのがわかりました。
ありがとうです

LCDさんに嫌われちゃったのかな・・・・
同じ設定して試してみたけど、こちらでは問題なく表示されました。
で、ピンを差し替えたり抜いたりして見た所、
ピン番号を間違えた場合は、何も表示されず、
接触不良状態を作ったところ、動画と似たような症状が出ました。
なので、オタワ\(^o^)/さんの使っている配線の根元が太めで、
Arduinoのピンにしっかり接続されていない為の現象かも。

ケーブルを換えてみてはいかがでしょう?
http://akizukidenshi.com/catalog/c/cbreadj
とか
http://www.comon.co.jp/H-UL.htm
+ピンヘッダの両側が長い奴
とか
とりあえず…
lcd.begin(2,16); のパラメータの順番が逆です。
lcd.begin(16,2); です。
まりすさん
それが原因みたいです
ためしにオス-オスからオス-メスに変えたらうまくいきました!
(数足りなくてAVRのISPに使うケーブル使いました><)
よかったー 本当にありがとうございます!

今日一晩の惨劇により机の上ぐっちゃになりました・・・w
ケーブルいっぱい買っときます・・・・


lcd.begin(16,2);気づかなかったです。 ありがとうございます
なぜか逆でも表示できたんですけど何でですかね・・・・
2行目使う場合に問題が出るんですかね・・・・

いろいろ聞いて申し訳ないのですがカタカナとかはどうやって表示させるんですか?


オタワ\(^o^)/さん ->
LCDのカタカナ表示は下記のサイトが参考になりますよ。

http://www2.media.t-kougei.ac.jp/fabo/2008/12/lcd8bit_1.html

http://isi.kicks-ass.net:8080/isi/bakilog-2.0/arduino-lcd
出来ました!
ありがとうございます!

なぜかツが表示されてるけど・・・
おめでとうございます(^^)
苦労した分勉強になったと思いますよ。

オタワ\(^o^)/さん ->
カタカナ表示ができたようでなによりです。
マイコンだとLCDに文字が表示できただけでも感動ですよね。
ありがとうございます!
表示できて本当にうれしいです

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

arduino 更新情報

arduinoのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。