トップページ | Arduino - ブレッドボードでArduino »

AVR - 最初のライタ製作(MINI-EZUSB)

Avrimg0001

AVRに興味を持ったはいいが、まずライタをどうするか

調べてみると、USBのみの使用であれば、EZUSBがライタになるということだそうで、早速ITプラザで MINI-EZUSBATmega168 を購入

組み立てたらPCと接続してループバックテスト

無事に動作確認出来たら、今度はAVRに書き込むためのISPライタ部を製作

MINI-EZUSBは別の用途にも利用できるので、そのうち専用のライタを作るつもりでいる

取り敢えずオプティマイズさんのISPライタの回路図を元に作ってみた

ついでにAVRを組み込んだ回路テスト(温度センサ・LCD表示)まで一気に挑戦

Avrimg0002

見た目が悪い、というかジャンパが何かの模様に見えてきたsweat01

あとはATmega168の回路を組んで、ISP経由で書き込むだけ

 

Avrimg0003_2

適当な回路図を参考に、ブレッドボードを使ってATmega168とLEDとスイッチを含んだ回路を組んでみる

配線をチェックして、ISP端子に間違いがないか確認したら、先ほどのライタを接続

そしてUSBを接続して印加

電源ランプ(緑のLED)が点灯し、通電はしているようだ

ここからはPC側にうつって、ライタソフトを起動

DOSプロンプトから、

>avrezusb -rf

と入力して、無事にATmega168が認識してくれた

ここまでくればもう楽なもんで、なにはともあれLEDピカピカのプログラムを作ってコンパイルし、出来上がったHEXファイルを転送

>avrezusb test.hex

フラッシュの消去、書き込み、ベリファイとなって、書き込み完了

ちゃんとLEDが点滅した

 

そこで、今度はいきなりステップアップし、LCDと温度センサを使ってみることにした

センサは 秋月で売っていた S-8100B というもので、本当は LM35 の方が仕様的に楽なのだけれど、測定範囲が -40 ~ +100℃ ということにつられて選んでしまった

おかげで計算方法を調べるのに四苦八苦

Avrimg0004

3端子なので、写真のようにブレッドボードに挿せるように加工

温度算出について調べた結果、使用している電圧値に対して、基準となる実測温度を設定し、温度係数を掛けて、0℃時の電圧値を割り出しておくと楽にいけそう

求まった電圧からセンサからの電圧値を引いて、その値を温度係数で割ると温度が求まる・・・らしいsweat02

 

何はともあれ計算

現在の実測温度が約20℃(正確ではない)で、センサの出力が1.59Vだとする

このセンサの出力は-8mV/℃なので、温度係数は0.008

20℃ * 0.008V = 0.16V

よって0℃の時の電圧は、

0℃ = 1.59V + 0.16V = 1.75V

これで基準が決まったので、読み取った値を当てはめていくだけである

上記の20℃=1.59Vというのは、

(1.75V - 1.59V) / 0.008V = 20.0

となり、約20℃となる

たぶん式はこれであっていると思うのだけど、実測温度が正確ではないのでなんともいえないような・・・このためにちゃんとした温度計まで買っていたらシャレにならないしなあ

Avrimg0005

というわけで、センサの値から前述の式で温度を求め、結果をLCDに表示してみた

DがセンサからのAD値、Vが電圧にした値、計算した結果がTempの温度となる

 

計算部分のソース

ad_get()はセンサからのAD値を取得する一般的な自前関数(INPUTされた値をそのまま返しているだけ)

最後のシフトしている部分は、0.008を1000倍にして整数計算の精度を上げているので、8で割っているだけ

17500-(adv*10) として10,000倍にしているが、最終的に小数点以下1ケタを出すための帳尻あわせ

取り敢えずこんなところだろうか・・・間違っていたらごめんなさいsweat01

|

トップページ | Arduino - ブレッドボードでArduino »

電子工作」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/204580/41097386

この記事へのトラックバック一覧です: AVR - 最初のライタ製作(MINI-EZUSB):

トップページ | Arduino - ブレッドボードでArduino »