• ベストアンサー

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

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

  • zzaqq
  • お礼率83% (15/18)

質問者が選んだベストアンサー

  • ベストアンサー
  • tabaxyz
  • ベストアンサー率64% (11/17)
回答No.2

マイコンの種類が明記されていないのでなんともですが、 C++でのプログラムが可能との事でSH4などPICほどプアじゃないと前提にて、 I/OポートのPIOに No1さんのようにLOWにすることで点灯するようには、 #define PIO_ADDR (0x00000000) // ここにはPIOがマップされているIOアドレスを定義 int main( void ){ volatile unsigned char *io = (volatile unsigned char *)PIO_ADDR; for(;;){ *io = 0x00; // 点灯 sleep( 1 ); // 1秒待つ(ライブラリ等をリンクする事) *io = 0xff; // 消灯 sleep( 1 ); // 1秒待つ } return (0); } のようにすればとりあえずは点滅します。 マイコンのマニュアルを良く読んでI/Oアドレスなどを確認してください。 また、I/OポートもPowerOnResetでは入力・出力のどちらがデフォルトか色々ありますから、そちらへの初期化も必要になるでしょう。

zzaqq
質問者

お礼

ご丁寧にどうもありがとうございます。 ちなみにマイコンはMB-H8Aです。

その他の回答 (1)

  • LHS07
  • ベストアンサー率22% (510/2221)
回答No.1

出力のポート番号につながっているLEDが何ビットめなのかを調べてLOWにすれば電気が流れます。8ビットの出力ポートの1ビットにLEDをつなぐ場合、1ビット目をLOWにすればすなわち0Vにすれば電源は5Vなので電流は流れてLEDが点灯します。 まず、2進数と16進数を勉強してください。

zzaqq
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • CCSコンパイラにてLED点灯プログラムが作成したい

    タイトルにもあるようにCCSコンパイラにてLED点灯プログラムを作成したいのですが、プログラムが上手く組めません。 ハードウェアとしては、PORT_A0にスイッチを接続。 PORT_B0にLEDを接続。 PICは16F873を使用。 動作は、電源を入れた状態でLEDは消灯している状態。 スイッチを1度押すとLEDは点灯(スイッチはモメンタリーを使用) スイッチを離してもLEDは点灯したまま。 もう一度スイッチを押すとLEDは消灯。 これらの動作を繰り返すプログラムを割り込みを使用せずに作成したいのですが、上手くできません。 void main() 以降の{}の中がわかりませんので、 もし宜しければ、教えてください。 #include <16f873.h> #ZERO_RAM #define setup_adc_ports(NO_ANALOG) #use delay(clock = 20000000) void main() { }

  • PNPトランジスタを用いてのLED点灯について

    添付の回路でLED点灯、消灯をさせてたいのですが、マイコンからのHigh信号2.5Vが入力されても点灯しています。lowでも点灯しています。 3.3Vでトランジスタをつっている事が原因なのでしょうか?

  • PNPトランジスタを用いたLEDに点灯

    前にも質問させて頂きましたが、再度同じ質問をさせて頂きます。 添付の回路でLED点灯、消灯をさせてたいのですが、マイコンからのHigh信号2.5Vが入力されても点灯しています。lowでも点灯しています。 0Ωのところを22kΩを入れれば改善されましたが電源投入時に一瞬光ってしまいます。それを抑えたいのですが、どのようにすれば良いのでしょうか。

  • PNPトランジスタを用いてのLED点灯について 再

    一度、質問させて頂きましたが、再度同じ質問をさせて頂きます。 添付の回路でLED点灯、消灯をさせてたいのですが、マイコンからのHigh信号2.5Vが入力されても点灯しています。lowでも点灯しています。 3.3Vでトランジスタをつっている事が原因なのでしょうか?

  • LEDの点灯について教えて下さい。

    外部からDC100Vが供給されます。その電圧にて抵抗だけでLEDを直列に16個ほど接続して点灯した場合、DC100Vの電圧変動にて明るさが変わると思われます。(DC70~110Vまで変動する仕様です) 明るさを一定にするためにDC-DCコンバーターの使用を考えたのですが、DC100Vから降圧しなければなりません。 熱的にも心配です。 何か良い回路はありませんでしょうか?ご教示願います。

  • C言語のプログラムについて(LEDの点灯)

    C言語初心者です. LEDを以下のように点灯させるプログラムをC言語でつくりたいのですが,わからなくて困っており,質問させていただきました. 「LEDを1秒間点灯させ,0.5秒間消灯させ,また1秒間点灯させ,次は0.6秒間消灯させるというように消灯時間を0.1秒おきに増やしていき,消灯時間を1.5秒間まで増やした後,今度は0.1秒おきに消灯時間を減らしていき,消灯時間を0.5秒間まで減らし,これを繰り返す.」(分かりづらくてすみません…) というようなプログラムはどのようにつくればいいでしょうか? ちなみに1秒おきに点灯,消灯を繰り返すプログラムは,メイン関数を void main() { while(1){ LED1_ON(); delay_us(1000); LED1_OFF(); delay_us(1000); } } とすることで出来ました.

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

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

  • LEDの複数点灯について教えて下さい

    1.5vの乾電池1本で赤・白のLEDそれぞれ1本づつ点灯させたいのですがLEDの電圧が違うので同時に点灯するのは難しいと聞きました、何か回路的な物を作成すれば点灯するとも聞きましたが私には理解できず知識も無いので詳しく教えていただけると有難いです よろしくお願いします

  • 電源をOFF後、即、発光LEDを消灯する方法

    発光LEDを点灯後、スイッチング電源(DC24V)をOFFとしたら、 だんだんと照度が落ちた後、発光LEDが消灯します。 電源とフォトカプラーの間にスイッチを入れなくても、このタイムラグを無くし、スイッチング電源をOFFにしたら、即、発光LEDが消灯する仕掛けをご教授願います。 皆様方、宜しくお願いします <(_ _)>

  • 再質問電源をOFF後、即、発光LEDを消灯する方法

    発光LEDを点灯後、スイッチング電源(DC24V)をOFFとしたら、 だんだんと照度が落ちた後、発光LEDが消灯します。 電源とフォトカプラーの間にスイッチを入れなくても、このタイムラグを無くし、スイッチング電源をOFFにしたら、即、発光LEDが消灯する仕掛けをご教授願います。 皆様方、宜しくお願いします <(_ _)>

専門家に質問してみよう