ArduinoUnoを使用したATtiny85のプログラミング
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
私は、さまざまな場所で複数のセンサーデータを読み取る必要があるプロジェクトに取り組んでいます。これらは少数のPWMピンしか必要としないため、複数のArduinoUnoを使用すると費用がかかり不要になります。そこで、ArduinoUno開発ボードの代わりにATtiny85マイクロコントローラーを使用することにしました。 ATtiny85は、PWMピンをあまり必要としない場合の安価で強力な代替手段です。 ATtiny85は単なるマイクロコントローラーなので、プログラムするにはArduinoUnoが必要です。このプロジェクトでは、その方法を説明します。以下はATtiny85のピン構成であり、データシートはhttp://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdfにあります。
<図>
Arduino UnoをISPとして構成する(インシステムプログラミング)
ATtiny85をプログラムするには、最初にArduinoUnoをISPモードに設定する必要があります。 ArduinoUnoをPCに接続します。 Arduino IDEを開き、ArduinoISPサンプルファイルを開いて([ファイル]-> [例]-> [ArduinoISP])、アップロードします。
ArduinoIDEへのATtiny85サポートの追加
デフォルトでは、Arduino IDEはATtiny85をサポートしていないため、ArduinoIDEにATtinyボードを追加する必要があります。 [ファイル]-> [設定]を開き、[追加のボードマネージャー]のURLで、このURLをhttps://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.jsonに指定します。
<図>
これが完了したら、[ツール]-> [ボード]-> [ボードマネージャー]
を開きます。 <図>
Board Managerを開いた後、「attiny by DavisA.Mellis」と表示されているリストを下にスクロールします。それをクリックしてインストールします。
<図>
今すぐインストールすると、ボードメニューに新しいエントリが表示されます
<図>
ATtiny85とArduinoUnoの接続
上記の準備が整ったら、attiny85のプログラミングを開始します。以下のようにブレッドボードを使用して、arduinounoをattiny85に接続します。
Arduino Uno – ATtiny85
- 5V – Vcc
- Gnd – Gnd
- ピン13–ピン2
- ピン12–ピン1
- ピン11–ピン0
- ピン10–リセット


arduinoのRESETとGNDの間に10uFのコンデンサを追加します。これは、プログラムをattiny85にアップロードするときにarduinoが自動リセットされないようにするためです。電解コンデンサを使用している場合は、アノードがunoのGNDに接続されていることを確認してください。
ATtiny85へのプログラムのアップロード
ここでArduinoIDEに戻ります。 [ツール]-> [ボード]で[ATtiny]を選択します。次に、[ツール]-> [プロセッサ]でATtiny85を選択します。そして、[ツール]-> [クロック]で[8MHz(内部)]を選択します。
<図>

次に、ISPとしてのArduinoが[ツール]-> [プログラマー]
で選択されていることを確認します。 <図>
デフォルトでは、ATtiny85は1MHzで動作します。 8MHzで実行するには、[ツール]-> [ブートローダーの書き込み]を選択します。
<図>

ブートローダーの書き込みが成功した場合は、上記のメッセージが表示されます。
次に、arduinoの例からBlinkの例を開き、ピン番号を13から0に変更してアップロードします。
<図>

すべてが成功した場合は、上記のメッセージが表示されます。これで、まばたきプログラムをATtiny85にアップロードし、テストしてみましょう。
ATtiny85点滅のテスト
次に、テストします。 Arduinoからすべての接続を削除し、電源を取ります。ここでは、ボタン電池を使用してATtiny85に電力を供給します。
<図>
そこには、ATtiny85で実行されている点滅プログラムがあり、バッテリーセルだけで電力を供給しています。低コスト、低電力、低スペースで多くのプロジェクトを実行できます。ここでの制限はあなたの想像力だけであり、もちろんPWMピンの数です。
盾にする
上記の回路をArduinoUnoと互換性のあるシールドに変換しました。
<図>




(注:ソフトウェア開発者であるため、これはエレクトロニクスに関する私の初めてのプロジェクトです。私がもっとできるように、提案をお願いします。)
コード
- 点滅プログラム
点滅プログラム C / C ++
/ *点滅LEDを1秒間点灯させた後、1秒間消灯させます。ほとんどのArduinoには、制御可能なオンボードLEDがあります。 UnoとLeonardoでは、デジタルピン13に接続されています。ArduinoモデルでオンボードLEDがどのピンに接続されているかわからない場合は、http://arduino.ccのドキュメントを確認してください。このサンプルコードは次のとおりです。パブリックドメイン。スコットフィッツジェラルドによって2014年5月8日に変更* ///リセットを押すか、boardvoid setup()に電源を入れると、セットアップ関数が1回実行されます{//デジタルピン13を出力として初期化します。 pinMode(0、OUTPUT);} //ループ関数は何度も何度も実行されますforevervoidloop(){digitalWrite(0、HIGH); // LEDをオンにします(HIGHは電圧レベルです)delay(1000); // 2番目のdigitalWrite(0、LOW);を待ちます//電圧をLOWにすることでLEDをオフにしますdelay(1000); // 1秒待ちます}
回路図


製造プロセス