• 締切済み

8×8LEDマトリクス(制御)プログラム

最近C言語の勉強を始めたばかりなのですが、 学校で H8-3048マイコンで8×8のマトリクスLEDを光らせることになりました… それも、目の形で光らせるのだとか。。。 しかし、プログラムの作り方がわかりません。。。 もし参考にできるものがあれば教えていただけるとうれしいです。 ちなみにまだ回路も出来上がっていないのでそちらもアドバイスかなにかあれば教えてください・・・。 よろしくお願いします。

みんなの回答

  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

「あなたの学校で使っているテキスト」が一番お勧めです。いや、冗談でなくて。それ以上にわかりやすい資料はないと思います。わからなかったら先生なり友だちなりに聞けばいいですし。

colorfulunicorn
質問者

補足

説明不足ですみません・・・。 それが、 クラブ活動で使うのです・・・ 数日前に頼まれて、やることになってしまいました… なので学校のテキストとかはないです。 今春休みなので先生もいないです。 友達は自分と同じくわからないみたいなので・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 8×8マトリクスLED回路・制御

    このたび、部活動で8×8のマトリクスLEDをつかって表示させることになりました。 回路は自分でつくってはんだづけしないといけないのですが、 AVRマイコンのATTINY2313-20PUを使おうと思うのですが、配線の仕方がわかりません・・・ アドバイス、下さると助かります。 基本的な制御はAVRで行い、 H8から簡単な信号をだし、、それをAVRでどのLEDを光らすか制御したいと思っています。 どのようにすればよいでしょうか・・・

  • LEDマトリクス回路

    LEDマトリクスの回路(16×16)をマイコンを使用し、自分で回路を作成するためには、何を参考にすればよいでしょうか。 WEB、本、何かあれば教えてください。

  • LEDマトリクスの回路

    LEDマトリクスの回路(16×16)を作成使用と思っているのですが、マイコンの他に、トランジスタアレイ、シフトレジスタ、定電流ドライバ、は必ずしも必要なのでしょうか。 教えてください。

  • Arduinoで複数のLEDマトリクスに映像出力

    私はこのページを参考に( http://kousaku-kousaku.blogspot.jp/2008/08/arduinoprocessingledweb.html )ArduinoMegaの互換機ChipKitMax32を使用して、12×32のLEDマトリクスを制御し映像を表示させています。 が、映像を表示させるには速度的に問題があり、参考先のプログラムではdelayMicrosecondsで各ドットの明るさを制御していますがそれも怪しく、映像自体のフレームレートを下げるなどしても改善せず、マイコン1台で映像表示するのは厳しいか…と思い、 8×8のLEDマトリクスにつき1台のArduino unoを使用し、それを何個も連結させ大きなLEDマトリクスにしようと考えました。 複数のArduinoを接続する方法として、I2CやSPI通信等がありますが、SPIでは後々Arduino unoのピン数が足りなくなるかもという不安もあり、複雑そうですがI2CでArduino同士を通信させようと思いました。 回路のイメージは添付画像の通り、 プログラムの内容は、 1 Processingから映像の各ドットの明るさの数値を受け取る 2 Arduinoマスタからスレーブ1へ最初の8つの数値を送る 3 スレーブ1がマスタから受け取った8つの数値をLEDマトリクス1の一行目の各ドットの明るさに割り振り点灯 4 Arduinoマスタからスレーブ2へ次の8つの数値を送る 5 スレーブ2がマスタから受け取った8つの数値をLEDマトリクス2の一行目の各ドットの明るさに割り振り点灯(LEDマトリクス1・2の一行目が点灯完了) これをあと7回くりかえし、LEDマトリクスの全画面の点灯完了 最終的には8×8のLEDマトリクスを10台程使用して、16×40のLEDマトリクスに映像を表示させたいです。 Arduinoで複数のLEDマトリクスを扱う場合、「映像表示の速度に耐えられるようにするために、Arduino自体の数を増やす、その通信をI2Cで行い、上記のようなプログラムで制御する」という方法で正しいか、可能かどうかの判断をお願いしたいです。 また、これより良い方法や、その他アドバイス等ありましたらお願い致します。

  • ドットマトリクスLED制御回路についての質問です。

    ドットマトリクスLED制御回路についての質問です。 この前ドットマトリクスLEDを購入しマイコンで点灯させようと思っているのですが、 詳しい接続方法があまり理解できません。 一応回路図を書いたのですが、これが正しいのか自信がなく質問に至りました。 回路図の説明(間違っているかも・・・) 1.電源から[tr1] のコレクタに6Vを供給、抵抗器で2V 20mA にする。 2.I/Oポートからの出力(5V?)を抵抗器で2V 0.1mA にして[tr1]のベースに流す。 3. 1.2.によってエミッタから2V 20mA が流れる。 4.[tr2][tr3]のベース電流も2.と同様に設定。 5.[tr1]と[tr2]か[tr3]が両方ONの場合それに対応するLEDが点灯。 間違いがあったらご指摘のこと宜しくお願いします。

  • LEDを点灯するだけのプログラムなのに点滅する

    マイコン勉強中なのですが。 まず手始めにブレッドボード上で、AVR atmega88 を使ってとりあえずLEDを点灯させるプログラムを書き込んだのですが約1秒ごとに一瞬LEDが点滅するのですが、原因として考えられるもあるでしょうか? PORTB0に抵抗とLEDつけただけの単純な回路です。

  • LEDマトリクス32×32の回路ってどうやって組めばいいんですか?

    秋月で市販されている16×16のLEDマトリクス http://akizukidenshi.com/catalog/items2.php?q=%22I-00260%22&s=popularity&p=1&r=1&page= もしくは http://akizukidenshi.com/catalog/items2.php?q=%22I-00789%22&s=popularity&p=1&r=1&page= を四つ組み合わせて、 LEDマトリクス32×32を制御も含めて作成しようと思っています。 どのような回路を組めばよいのか全く分からないので、何か参考になるWEB等あれば教えてください。

  • C++でLEDを点灯させるプログラム

    最近、マイコンを購入しLEDを光らせる簡単な回路を作成したのですが、そのためのプログラムが作れず困っています。 タイトルの通りC++でスイッチを入れると電源(DC5v)が一定時間ごとに入ったり、切れたりしてLEDが点灯したり消灯したりするプログラムを作ろうと思っているのですが、如何せんそのような知識がなくどう作ればよいのかわからず困っております。どなたかご教授くださいませんか。

  • pi18でLEDを点灯するプログラム教えてください

    プログラムはC言語 ソフトはMPLAB IDEv8.60 コンパイラはMPLAB ICD2です。 picはpic18f2550です。 回路は OSCにセラロック RB7とRB6に抵抗とLED が接続されています。 この条件でLEDを点滅させる簡単なプログラムを教えてください。 本やネットで調べ、取り上げられているプログラムを見ていろいろ試したのですがLEDが光りません。 私ではどうしようもないので、よろしくお願いします。 #include <p18f2550.h> void main (void) { }

  • AVRによるマトリクスLED制御

    AVRによるマトリクスLED制御 この度大学でAVRによるマトリクスLED制御を行う事になったのですが、プログラム面で今行き詰っています. void PointDisplay(int* pointlist[8][8],int time)//指定した座標のLEDを点灯させる { PORTB=init_PORTB; PORTD=init_PORTD; for(int loop=0;loop<=time;loop++) { for(int k=0;k<=7;k++){ switch(k){ case 0: ROW1_on; break; case 1: ROW2_on; break; case 2: ROW3_on; break; case 3: ROW4_on; break; case 4: ROW5_on; break; case 5: ROW6_on; break; case 6: ROW7_on; break; case 7: ROW8_on; break; } for(int j=0;j<=7;j++){ if(pointlist[k][j]==1){ switch(j){ case 0: COL1_ready; break; case 1: COL2_ready; break; case 2: COL3_ready; break; case 3: COL4_ready; break; case 4: COL5_ready; break; case 5: COL6_ready; break; case 6: COL7_ready; break; case 7: COL8_ready; break; } } } PORTB=init_PORTB; PORTD=init_PORTD; } } } 以上が使用する関数で,実行内容としては2次配列pointlistを関数PointDisplayに渡し,time分だけループするという関数になります. マトリクスLEDは8×8のTOM-1588BHです.(データシートも添付しております 引用) 使用しているAVRはATmega168Pで,PORTD0~7をLEDの1~8pinにPORTB0~7をLEDの9~16pinに接続しています.(回路がわかりやすくなるように)そしてそれを#defineで定義しそれぞれをビット制御しています. 行き詰っている理由はintの配列を4つまで定義してコンパイル>実行すると思ったとおりにLEDに表示されるのですが,5つ以上定義してコンパイル>実行すると3,4つめの配列が乱れてしまいます.(ひとつ右にずれたりひとつ上にずれたり) 4つまでは正常に動作しているのでハード面は問題ないと考えて,ソフト面を見直しているのですが,なぜ悪いのかが理解できません.(オーバーフローとかそんなんですかね?) こういったマイコンを扱うプログラムは経験が少なく,データシートも英文なので困っています.どなたか詳しい方,知恵を貸していただけないでしょうか?お願い致します.