PICとメカな日々

Webにも萌えにも限界を感じたオタクがPICマイコンをいじる日々。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LEDを点灯させてみる

 なにはともあれLEDと抵抗その他が届いたので、PICボードに取り付けてみる。動作電圧が単3×3本で4.5V、レギュレータなしって事でLEDの順方向電圧が秋月のサイトを見ると2V。よって20mAくらい流すとするとLEDにつなぐ抵抗は150Ωくらいになる。

 しかしPICからの流出電流と言うことで8つ全部点灯しても50mAくらいに押さえる必要もあって、もっと大きな抵抗と言うことで1kΩを使った。これだと電流は2.5mAなので8つ全部点灯でも20mAで済む。

 接続先だが、16F84AにはPORTA、PORTBのふたつのI/OポートがあってPORTAのほうはRA0~4の5ビット、PORTBのほうはRB0~8の8ビットが使える。本当はPORTBが内部プルアップされてて入力に使うのが本筋らしいが、char型変数をまるごと出力できてわかりやすいPORTBの方を出力に使ってみる。

 プログラムの方は、さしあたって一番簡単に作ると言うことで「0.2秒ごとにPORTBに1ずつ増えた数字を出力する」というものに。0.2秒をカウントするためにはPICC-Liteのsampleディレクトリに入ってるDelayMs関数を使う。この場合MPLABのプロジェクト設定でdelay.cとdelay.hを追加しないといかんが、よく使う関数なんだから最初から#includeだけで使えるようになってた方がいいと思うんだがなあ。

 ソースコードは以下の通り。例によってこれをMPLAB上でコンパイルして.hexファイルをICPROGでチップに転送。

 んで電源を入れてみる。チカチカとLEDがカウントアップしていって成功。電流を抑えめにしたがLEDの明るさもそこそこ。

 基板用のタクトスイッチも取り付けてあるが、まだ配線はなし。PORTAを使っての入力は次回の宿題とするか。

LEDを付けてみた



#include < pic.h >
#include " delay.h "
__CONFIG(0x3FF2); //CONFIG:CP=OFF,PWRT=ON,WDT=OFF,OSC=HS
unsigned char led_outdata=0; //出力データを初期化
void main(void)
{
 OPTION=0b00000000; //オプションレジスタ
 INTCON=0b00000000; //割り込みレジスタ
 TRISB=0b00000000; //PORTBを出力に設定
 PORTB=0b00000000; //PORTBをリセット
 while(1)      //無限ループ
 {
  led_outdata++;
  led_outdata=led_outdata % 256 ;
  PORTB=led_outdata;   //PORTBに出力
  DelayMs(200);     //0.2秒待ち
 }
}



スポンサーサイト

コメント

子供部屋(インテリア・寝具・グッズ)

子供部屋(インテリア・寝具・グッズ)を探すなら http://www.mikefannon.com/100804/203024/

  • 2008/09/16(火) 09:53:02 |
  • URL |
  • #-
  • [ 編集]

ペパーミントの美容効果

清涼感のある爽やかな香りを持つミントには多くの品種がありますが、ハーブティとして飲まれるのはペパーミント、スペアミント、アップルミントの3種類です http://dalmatic.thriftystmartin.com/

  • 2008/12/06(土) 23:12:12 |
  • URL |
  • #-
  • [ 編集]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://dmidorikawa.blog39.fc2.com/tb.php/8-7805d162
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。