Arduino nano ピンの説明。 ブログ › Arduinoの学習体験。 別の投稿。 ハードウェア。 Arduino nano に電源を接続する

良い一日!

この記事では、Arduino Nano ファミリーのボードのハードウェア基盤に少し注意を払いたいと思います。 写真の下にハードウェア性能の違いを記載しました。

栄養

Arduino Nano は、ミニ (マイクロ)-USB ケーブルを介して、外部の 6 ~ 20V の安定化されていない電源 (ピン 30 を介して、このピンに 12V 以上を供給することは強くお勧めしません) から、または安定した 5V 電圧で給電できます。 (ピン 27 経由)。 デバイスは、電圧が最も高い電源を自動的に選択します。

電源は、電圧が最も高い電源が自動的に選択されます。 さらに、一部の連絡先には特殊な機能があります。 これらのピンは、低い値、立ち上がりエッジまたは立ち下がりエッジ、または値の変化で割り込みをトリガーするように構成できます。 アナログ ピン 6 と 7 はデジタル ピンとして使用できません。

さらに、一部の連絡先には特殊な機能があります。 ボードにはさらにいくつかのピンがあります。 ボード上の 1 つをブロックする画面のリセット ボタンを追加するためによく使用されます。 アナログ入力の基準電圧。 . このラインがアサートされると、リセット ラインはチップをリセットするのに十分な長さになります。 この設定には、他の結果があります。

FTDI FT232RL チップに電圧が印加されるのは、次の場合のみです。 arduinoの供給 USB経由でナノ。 したがって、デバイスが他の外部ソース (USB 以外) から電力を供給されている場合、3.3 V 出力 (FTDI チップによって形成される) は非アクティブになり、その結果、RX および TX LED が点滅することがあります。 高いレベルピン 0 と 1 の信号。

入力と出力

無効なデータを無視するようにプログラムされていますが、接続が開かれた後にボードに送信されたデータの最初の数バイトをインターセプトします。 ボード上で実行されているスケッチが初回実行時に 1 回限りの構成またはその他のデータを受け取る場合は、次のことを確認してください。 ソフトウェア関連付けられている は、接続を開いた後、そのデータを送信する前に 1 秒間待機します。 で Arduinoナノいくつかの利点があります。 彼女が他に何を持っているか知りたいですか? これらのピンは 5V で動作し、それぞれに最大 40mA の電流しか供給または受信できないことに注意してください。

20 個の (0 ~ 19、図の紫色の平行四辺形、同じ図の灰色の平行四辺形のマイクロコントローラー ピン) Arduino Nano デジタル ピンのそれぞれは、入力または出力として機能します。 使用電圧出力 - 5V。 最大電流、1 つの出力を供給できるのは 40 mA ですが、出力に 20 mA を超える負荷をかけることはお勧めしません。 この場合、すべての出力の合計負荷が 200 mA を超えてはなりません。 すべてのピンは、20 ~ 50 kΩ の内部プルアップ抵抗 (デフォルトでは無効) とペアになっています。 主なものに加えて、いくつかの Arduinoピン Nano は追加の機能を実行できます。

したがって、これらのピンに過負荷をかけてボードを損傷しないように注意する必要があります。 その後、スキーマを設定し、短い型さえあるかどうかを確認します。 このすべての回路アセンブリと配線プロセスの後、次のステップはプログラミングとコードのダウンロードを開始することです。

Arduino Nanoってカッコいいですよね。 すでに彼女とのプロジェクトについて考えたことがある、または考えたことはありますか? これは、たとえば、特定の時間に水槽、給湯器、および照明の現在の温度を示すローラーブラインドを離れるモーターである可能性があります。 私たちの生活を始めるには、入力に現れるものに応じて出力を制御するプログラムを作成する必要があります。 プログラムはシステム全体の「頭脳」です。 . 一部の人にとっては少し不可解に思えるかもしれませんが、すべては数行のコードに帰着します。

シリアルインターフェース: ピン 0 (RX) および 1 (TX)。 シリアル インターフェイスを介してデータを受信 (RX) および送信 (TX) するために使用されます。 これらのピンは、FTDI の USB-to-UART コンバータ チップの対応するピンに接続されます。

外部割り込み: ピン 2 および 3。これらのピンは、割り込みソースとして構成できます。 諸条件: ロー、上昇、下降、または変化する信号。 詳細については、attachInterrupt() 関数を参照してください。

入力にあるものをチェックし、測定に応じて、出力の 1 つに接続されたヒーターなどを開始するコード。 この言語を扱う人は、ずっと楽に過ごせるでしょう。 他に疑問を持っている人はいますか?

コントローラーはオフラインで動作しますが、設定を変更したり特定のアクションを実行したりするために、コントローラーに接続する必要がある場合があります。 マイコンに転送したプログラムは動いたのですが、突然パソコンとの通信ができなくなりました。 その結果、マイクロコントローラーは、データを受信して​​応答時間を送信する代わりに、プログラムを最初から開始します。 コンピュータに接続できる一般的なデバイスでは、シリアル伝送は 2 つの方法で実行されます。 ハードウェア データ制御なしでハードウェア データ制御を使用する。 . どのような理由で重要かつ必要なのか、この記事のトピックはありません.

PWM: ピン 3、5、6、9、10、および 11。analogWrite() 関数を使用すると、8 ビットのアナログ値を PWM 信号として出力できます。

SPI インターフェース: ピン 10 (SS)、11 (MOSI)、12 (MISO)、13 (SCK)。 これらのピンにより、SPI インターフェイスを介した通信が可能になります。 デバイスは SPI をハードウェアでサポートしています。

発光ダイオード: 13 ピン。デジタル 13 ピンに接続された内蔵 LED。HIGH が送信されると LED がオンになり、LOW が送信されると LED がオフになります。

プログラムは原始的ですが、レイアウトがリセットされているかどうかを明確にチェックします。 その後、プログラムは他に何もしません。 シリアルポートモニターを閉じて、もう一度開きます。 基本的な質問に答えなければなりません。 コンピュータ上で実行されている監視アプリケーションは、システムの実行中に引き続き実行されますか? この質問には多くのアドバイスがあります。 これは通常、2 つの信号の接続点にある 100nF のコンデンサを取り除くことによって行われます。 回路をプログラムできるように、ジャンパーまたはスイッチをはんだ付けすることが推奨される場合があります。

次の図は、抵抗を回路に接続する方法を示しています。 ただし、これには自動的にプログラムされないという欠点があります。 抵抗の値は、120 オームの抵抗が必要な場合と 68 オームの抵抗が必要な場合があるため、実験的に選択する必要があります。

I2C: ピン 4 (SDA) および 5 (SCL)。 Wire ライブラリ (Wiring Web サイトのドキュメント) を使用すると、これらのピンは I2C インターフェイス (TWI) 経由で通信できます。
ボードに記載されているものに加えて、さらにいくつかの結論があります。

AREF. アナログ入力の基準電圧。 analogReference() 関数で使用できます。

リセット. 形成 低レベルこのピンを (LOW) にすると、マイクロコントローラがリセットされます。 通常、このピンは拡張ボードのリセット ボタンを操作するために使用されます。

プログラムによって、いくつかの方法で問題を解決できます。 唯一の問題は、再起動後のロード時間かもしれません。 解決策は、コンピューター上で実行されているアプリケーションが、ポートを開いてから最初のデータ転送までの間に適切な時間を取るまで待つことです。 上記の解決策が受け入れられない場合は、システムへの接続を確立して維持するバックグラウンド アプリケーションを実行できます。 このアプリケーションは、他のアプリケーションのポートへのアクセスをブロックしないことに注意してください。

アナログ入力 A0-A7: 10 ビット A/D コンバータ (ADC) 入力。 アナログ入力に印加される電圧 (通常は 0 ~ 5 ボルト) は、0 ~ 1023 の値に変換されます。これは、0.0049 ボルトの分解能で 1024 ステップです。 基準電圧源は変更可能です。

水曜日 Arduinoプログラミング IDE は、マイクロコントローラーの一部であるすべてのデバイスでの作業をサポートしていません。 たとえば、アナログ コンパレータは放置されていました。 使用できますが、レジスタに直接アクセスする必要があります。

今日のために、私はすべてを持っています。 についての短い記事を予定しています 内部整理 MKとその周辺機器。

すべての人に平和を。
さよなら!

追記 Megan の加入者数は 3500 人に達しました。

一般情報

ATmega328 (Arduino Nano 3.0) または ATmega168 (Arduino Nano 2.x) マイクロコントローラー上に構築された Nano プラットフォームはサイズが小さく、実験室での作業に使用できます。 Arduino Duemilanove と同様の機能を備えていますが、アセンブリが異なります。 違いは、電源コネクタがないことです 直流 Mini-B USB ケーブルを介して動作します。 Nano は、Gravitech によって開発および販売されています。

スケマティック ダイアグラムと初期データ

繋がり

Arduino Nano プラットフォームには、コンピューター、他の Arduino デバイス、またはマイクロコントローラーと通信するためのデバイスがいくつかインストールされています。 ATmega168 と ATmega328 は、ピン 0 (RX) と 1 (TX) を介して TTL (5V) UART シリアル インターフェイスをサポートします。 ボードにインストールされた FTDI FT232RL チップは、このインターフェイスを USB 経由でルーティングします。 FTDI ドライバー(Arduinoプログラムに含まれています)提供 仮想COMコンピューター上のプログラムに移植します。 Arduino シリアル モニターを使用すると、プラットフォームに接続するとテキスト データを送受信できます。 プラットフォームの RX および TX LED は、データが FTDI チップまたは USB接続(ただし、ピン 0 と 1 を介したシリアル通信を使用する場合は除きます)。

SoftwareSerial ライブラリを使用すると、Nano の任意のデジタル ピンを介してシリアル データ転送を作成できます。

ATmega168 と ATmega328 は、I2C (TWI) と SPI インターフェースの両方をサポートします。 Arduino には、I2C バスを簡単に使用するための Wire ライブラリが含まれています。 詳細については、ドキュメントを参照してください。 SPI インターフェースを使用するには、ATmega168 および ATmega328 マイクロコントローラのデータシートを参照してください。

プログラミング

プラットフォームは Arduino ソフトウェアを使用してプログラムされます。 [ツール] > [ボード] メニューから、"Arduino Diecimila, Duemilanove or Nano w/ ATmega168" または "Arduino Duemilanove or Nano w/ ATmega328" (インストールされているマイクロコントローラーに応じて) を選択します。 詳細な情報は、ハンドブックと説明書に記載されています。

ATmega168 および ATmega328 マイクロコントローラーには、外部プログラマーを使用せずに新しいプログラムを簡単に作成できるプリロードされたブートローダーが付属しています。 通信はSTK500独自のプロトコルで行います。

ブートローダを使用せず、ICSP ブロックの出力を介してマイクロコントローラをプログラムすることもできます (インサーキット プログラミング)。 詳細な情報は、このマニュアルに記載されています。

自動 (ソフトウェア) 再起動

Nano は、新しいコードを記述する前に、プラットフォームのボタンを押すのではなく、プログラム自体が再起動するように設計されています。 FT232RL データ フロー制御 (DTR) ラインの 1 つが、100nF コンデンサを介して ATmega168 または ATmega328 マイクロコントローラのリセット ピンに接続されます。 この行のアクティベーション、つまり 低レベル信号は、マイクロコントローラをリセットします。 Arduino プログラムは、この関数を使用して、プログラミング環境自体で [アップロード] ボタンを 1 回クリックするだけでコードをアップロードします。 DTR ラインの低レベル シグナリングは、コードの書き込み開始と調整され、ブートローダーのタイムアウトを短縮します。

関数には別のアプリケーションがあります。 Nano は、接続するたびに再起動します。 Arduinoプログラム Mac X または Linux コンピュータ (USB 経由)。 再起動後の次の 0.5 秒で、ブートローダーが機能します。 プログラミング中、プラットフォームが不正なデータ (新しいプログラムのコード以外のすべて) を受信するのを防ぐために、コードの最初の数バイトが遅延されます。 プラットフォームに書き込まれたスケッチの 1 回限りのデバッグを行っている場合、または最初の実行で他のデータを入力している場合は、コンピューター上のプログラムがデータを転送する前に 1 秒間待機することを確認する必要があります。