うしこlog
公開: 2013/07/01

AVRでLEDを点灯させる

今回の内容

今回は、AVRでLEDを点灯させるために、回路とLED点灯プログラムを作成します。作成したプログラムをAVR書き込み用ライターを使ってAVRに書き込み、LEDが点灯しているか確認します。

前回の内容

 前回はAVRの環境構築(統合開発環境AVRStudioのインストール)と使い方について説明しました。

[追記] AVRに関する記事を以下の記事にまとめましたので、ぜひご覧ください。

AVRに関する記事

作成するLED点灯回路

AVRで基本となる回路

AVRを使うためには、AVRに電源を繋げないといけません。AVRを使うための基本となる回路を図1に示します。 1pin (PC6)には数十kΩの抵抗を繋げておきます。図1では47kの抵抗を使用しています。

AVR基本の回路図
基本となる回路図
AVR基本の回路
基本となる回路

今回作成する回路

今回作成する回路は、図3の通りです。基本の回路に、抵抗とLEDを1個ずつ追加しただけのシンプルな回路です。なお、抵抗とLEDは直列にし、ピン13(PD7)に繋ぎます。

作成する回路図
作成する回路図
作成する回路
作成する回路

AVRへのプログラム書き込み

AVRISPmkIIの端子配置

AVRにプログラムを書き込むにはライターが必要です。今回は、ライターとしてAVRISPmkIIを使用します。 AVRISPmkIIのピンは6つあり、それぞれの端子に役割があります(詳しくは説明しませんが)。AVR側にも、その役割にあった端子があり、ライタと対応する端子同士を繋げて、プログラムを書き込みます。

AVRISPmkIIの端子
AVRISPmkIIの端子
VCC電源
MISO出力
MOSI入力
SCKクロック
GNDグランド
RESRSTとも書く。リセット

AVRとライタを繋げる束を作る

具体的には、図6の左のような線を使って6本1組の束を作ります。束にする前に"MISO"のようなタグを貼っておくと、AVRに繋げるとき分かり易いと思います。束にするとき、ライター端子名と合うようにまとめて下さい。
束にしたやつをライターに繋げるとき、ライターの端子に注意して繋げます。僕は、ライターのでっぱりを右にして、左上にVCC、右上にMISOが来るように繋げています(図7)。

束の作り方
束の作り方
束を繋げる
束をつなげる

AVRとAVRISPmkIIを繋げる

 まず、今回使用するAVRであるATmega88のピン配置を見てみましょう。赤い実線で囲まれているのが、ライターの端子と繋げるところです。ライタの"MISO"と AVRの"MISO"を一致させて繋げます。他も同様です。
また、点線で囲まれているのは、電源とグランドなので、そのピンに繋げなくても別にいいです。ただし、VCCは電源に、GNDはグランドに繋げること。

ATmega88のピン配置
ATmega88のピン配置

先ほど作った束を使って、図9のようにAVRとAVRISPmkIIをつなげます。

AVRとライターを繋げる
AVRとライターを繋げる

 その後、コンピュータとAVRISPmkII(ライター)をつなげます。初めてAVRISPmkIIを繋いだとき、AVRISPmkIIのドライバーが自動インストールされます(Windows7では)。コンピュータが自動でドライバーをインストールしてくれたのを確認します。これで、ライターを経由して、コンピュータとAVRがつながりました。

 AVRとコンピュータが正しく接続されると、AVRISPmkIIのLEDが2つ緑色に点灯します(図10)。この時、AVRに電源が繋がっていなかったりして、間違って接続されると緑色以外のLEDが光ります。こうなったら、正しく接続されているかをしっかり確認してください。

正しく接続されたとき
正しく接続されたとき
電源が繋がっていないとき
電源が繋がっていないとき

AVRにプログラムを書き込む

AVRとコンピュータを接続したら、AVRStudioの「Con」と書かれたボタンを押してください(図12)。

Conボタンを押す
Conボタンを押す

すると、図13のような画面が出ると思います。PlatformをAVRISPmkII(使用するライタ)に、PortをUSBにして、Connect...を押します。

使用するライターと接続方法の確認
接続の仕方

図14の画面が出るので、メニュータグがMainになっていることを確認します。そして、"Device and Signature Bytes" を "ATmega88"(使用するAVR)にして、Read Signatureを押します。
Signature not read と書かれていたところに数字の羅列(0x.. 0x.. )が表示され、その下に「デバイスがマッチした」ことが表示されればOKです。

AVRをAVRStudio側で接続する
AVRをAVRStudio側で接続する

そのままの画面で、メニュータグでProgramを選択します。図15のような画面に移るので、そこでFlash部分の "Input HEX File" 部分に、今回作ったhexファイルを指定します。そして、Programボタンを押すと、AVRにプログラムが書かれます。
もし長い英語でエラー画面が出てしまったら、AVRとライターの接続が間違っているので、接続を確認してください。電源電圧(5V)が、かかってますか? "MISO"のところに"MOSI"が繋がっていませんか?

AVRにプログラムを書き込む
AVRにプログラムを書き込む

プログラム動作確認

プログラムがAVRに書かれたら、すぐに動作を始めます。今回の場合、ATmega88のPD7(ポート)に繋がっているLEDが点灯するはずです(図15)。

AVRにプログラムを書き込んだ後の回路動作
LED点灯

AVRで作ったもの

AVRでTVリモコンとライントレーサを製作しました。作り方も説明しているので、ぜひ以下のリンクからご覧ください。

<< AVRを使うための環境を整える AVRでのタイマとPWMの使い方へ >>