発光ダイオードを光らせる

このエントリーをはてなブックマークに追加

 

 それでは電子工作の基本、発光ダイオードを光らせましょう。

 

1.今回使用するPICについて

 今回使用するPICは「PIC12F1822」です。

 

2.回路図

 回路図は以下の通りです。右下のLED部分が今回のターゲットです。RA2へHigh(1)を出力すると点灯Low(0)を出力すると消灯する構造になります。

 

 

 

 

3.ブレッドボードと電子回路パーツ

 電子工作をする際、簡単に配線するために使用するのが「ブレッドボード(ウィキペディア)」です。ブレッドボードを使用すると、はんだ付けをしないで回路を組むことができます。ブレッドボードを利用して、発光ダイオードを光らせるための回路を組みます。

 ブレッドボード   

 電子回路のパーツを一つ一つ集めると大変なので、以下のような商品を利用すると便利だと思います。

   

 

3.プログラム

 回路が完成したので、発光ダイオードを光らせるプログラムを作成します。初めにコンフィグレーションビットの設定を行います。(詳しくはこちらを参照してください)
コンフィグレーションビットの設定を以下のようにしてください。
FOSC = INTOSC
PLLEN = ON

続いてプログラムです。

PICのクロック周波数を32[MHz]にする

 PICのクロック周波数を32[MHz]に設定します。コンフィグレーションビットで4逓倍設定を行ったので、OSCCONレジスタを8[MHz]にします。

OSCCON = 0b01110000 ;    // 内部クロック8MHz

3bit~6bit目が内臓クロックの設定になります。

ポートの設定

ANSELA = 0b00000000 ;    // すべてデジタルI/Oに割当てる
TRISA  = 0b00001000 ;    // ピンは全て出力に割当てる(RA3は入力のみとな
PORTA  = 0b00000000 ;    // 出力ピンの初期化(全てLOWにする)

とします。詳しくはこちらを参照してください。

発光ダイオードへの信号

 発光ダイオードはRA2に接続しています。この回路の場合、RA2に対して1を設定すると点灯し、0を設定すると消灯します。プログラムが動いていることを確認するために、1と0を繰り返すようにしています。
 メインの処理では、動作し続けるようにするため永久ループにします。RA2をすぐに切り替えると動いているか確認できないため、forループによって待ち時間を作成しています。

for(;;)
{
    for(i=0; i<1000000; i++)
    {
        // 処理無し(一定時間待ち)
    }

    RA2 = 1;

    for(i=0; i<1000000; i++)
    {
        // 処理無し(一定時間待ち)
    }

    RA2 = 0;
}

 

ソースコード

 プログラムの全文を掲載します。

  プログラム

<注意>
本サイトの注意事項を確認してください。
ソースコードや回路図などを使用する場合、上記注意とともに、自己責任でお願いします。

 

 

4.動作確認

 プログラムをPICに書き込んで動作させてみましょう。プログラムをPICに書き込むと自動で再起動します。プログラムが正しく動作していれば、約1秒点灯、約1秒消灯を繰り返します。

 

<更新履歴>

新規作成:2015年4月4日
第2版:2016年9月30日:フォーマット変更(内容の変更はなし)

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)