
今回はArduinoを使って、ATTiniy85というマイコンに書き込みをしていきます。
前回のラーメンタイマーはAVRライターが必要だったのですが
Arduinoでも書き込みできるらしいので、試してみました。
Arduino UNO(互換機でもいけました)を持っているひとは
ぜひ試してみて下さいね。
Arduinoでテストしてみよう
まずはArduinoを使って プログラムがうまく動くか試してみます。下のように配線してみました。

LEDについている抵抗は100Ω
スイッチについている抵抗は10kΩです
TinkerCadというサイトで、配線とプログラムを確認することができるので
チェックしてみてください。
(ブラウザだと音が割れちゃいますが、実機ではだいじょぶでした)
書き込みシールド
マイコンにプログラムを書き込むには、Arduinoとマイコンをつなぐ必要があります。こんな感じです。

10μFのコンデンサを取り付けています。
これがないと書き込み時にエラーになるので注意。
毎回この回路を作るのは大変なので
書き込みシールドを作っておくといいです。

マイコンの取り外しができるように、ICソケットを使います。
Arduinoの各ピンに刺さるように、ピンヘッダを使って足を伸ばします。
書き込みシールドの作り方はこちらを参考にしました。
Arduinoを書き込み装置化
Arduinoを書き込み装置化することで、ATTinyなどのマイコンにプログラムを書き込むことができます。
まずはArduinoIDEを開きましょう。
日本語化したい時は

「File」→「Preferences」を開き
「Language」の項目を「日本語」にすると、日本語になります。
ここでは日本語で解説します。
ArduinoをUSBでパソコンと接続しておきましょう。
ここではまだ書き込みシールドは外しておきます。
ArduinoIDEの「ファイル」→「スケッチ例」→「11.ArduinoISP」→「ArduinoISP」をえらびます。

ArduinoISPという、すでにプログラムされているファイルが開きました。

「書き込み」の矢印を押して、プログラムをArduinoに書き込みましょう。
書き込みができたら
前の項で作っておいた「書き込みシールド」を装着します。
ATTinyシリーズのボード設定を追加
ATTiny85に書き込みができるように、設定を追加します。(ボード一覧にATTinyがあればとばしてOK)
「ファイル」→「基本設定」を開き

「追加のボードマネージャのURL」という欄に
http://drazzy.com/package_drazzy.com_index.json
をコピペしましょう。
「OK」をクリックして閉じます。
つぎに「ツール」→「ボード」→「ボードマネージャ」を開きましょう。

ボードマネージャの検索窓に「ATTiny」と入力します。

すると「ATTinyCore by Spence Konde」という項目があります。
これを「インストール」しましょう。
ブートローダーの設定
ボードが追加できたら、ブートローダーの書き込みをしましょう。
「ツール」→「ボード」を開くと
「ATTinyCore」という項目が増えています。
この中から「ATTiny25/45/85(No bootloader)」をえらびます。

「Chip」を「ATtiny85」
「ClockSource」を「1MHz(internal)」に
「書き込み装置」を「Arduino as ISP」にします
ClockSourceは時間を計るときにズレるので1MHzにしてます。
(8MHzにしたい時はプログラムを変えて対応してもいいです)
設定ができたら「ブートローダーを書き込む」をクリックします。
ATtiny85にプログラムを書き込もう
新しいファイルを開いて、ATtiny85に書き込むためのプログラムをしましょう。 こんな感じにしました。 先ほどのサンプルとはピン番号が違います。電源用のピン・GND用のピン・RESETピンは入出力に使えないので
それ以外のピンを指定しましょう。
プログラムができたら

「ツール」をクリックして設定を確認します
(さっきと同じ設定になっていればOK)
「スケッチ」→「書き込み装置を使って書き込む」をクリックします。
これで、ATtiny85にプログラムを書き込むことができました。

ATTiny85と、それぞれのパーツをつないで
うまく動けば完成です。
ボタンを押すと、LEDが順番に光ります。
ボタンを1秒以上長押しすると、ピロっという音がなり、カウントが始まります。
(LEDの点灯数×1分)
指定分が経過すると、メロディーが流れます。
コメント