すべてのピンをデジタルI / Oとして使用


11

デジタルピンの数を増やす

さまざまなarduinoの標準的なピン以外の使用方法を説明する投稿がたくさんありますが、制限や問題を適切に説明するものはありません。

ここに画像の説明を入力してください

Arduino Uno:

1.アナログピン使用できます

Pin 14 = Analog in 0
Pin 15 = Analog in 1
Pin 16 = Analog in 2
Pin 17 = Analog in 3
Pin 18 = Analog in 4
Pin 19 = Analog in 5

digitalWrite(14,HIGH);
or
digitalWrite(A0,HIGH);

2. SDA、SCLとA4、A5は基本的に同じであるため、両方を使用することはできません(18、19)。

3.TX / RXも使用できます。

「それをしないでください、あなたはシリアル通信を壊します...」

「ピン0と1を使用しないでください」

「TX / Rxピンは使用できません」

できます...しかし、予防策を講じる必要があります。どれ?

USB経由のソフトウェアシリアルが必要ですよね?

または、USBシリアルを壊しますか?

TX / RXを使用する場合、内部チップの問題はありますか?

これらのTX / RXピンをコードで使用しているので、おそらく使用すべきではありませんSerial.print()か?

Serial.print()ピン0、1を使用するコードをアップロードした後、削除を忘れた場合はどうなりますか?

何か問題が発生した場合にarduino /ブートローダーをハードウェアでリセットする方法は?

異なるチップを使用する他のさまざまなArduinoがあるので、上記はすべてのAtmelチップに有効ですか?

では、これらのTX / RXまたは他のアナログピンを使用する前に知っていることは何ですか?

安価なシフトレジスター、pwmドライバー、ledドライバー、spi、i2cなどのI / Oを拡張するためのICがあります。


しかし、大きな問題がなければ、arduinoに20個のI / Oピンがあることを意味します...

理論的には以下を制御できます。

17x3 = 51 = 17 RGB leds (multiplexing, pwm sourcing&sinking);
14x6 = 84 leds (multiplexing, pwm on 6 rows/colums );
10x10 = 100 leds (multiplexing, high low);
20x(20-1) = 380 leds (charlieplexing, high low);
// yes it would flicker

私が間違っている場合は修正してください。つまり、ダイオードと1つのArduinoを使用して380の「何でも」を制御できるということです。

回答:


8

主な問題はピン0と1にあります。

多くのピンには複数の機能が割り当てられています。たとえば、A4とA5はI2Cピン、ピン10/11/12/13もSPIピンなどです。しかし、実際には、ピン0と1だけが多機能ピンです。ボード上に何かが付いています。

他のすべてのピンは、多機能でありながら、基本的には接続するものによって機能が定義されています。ピン0と1はすでにボード上のUSBインターフェイスチップに接続されているため、使用の可能性は多少制限されます。

  • スケッチでシリアルを有効にすると(Serial.begin())、これらの2つのピンはデジタルIOに確実に使用できなくなります。

あなたができることを意味いずれかのハードウェアシリアルポートを使用するか、あなたは両方のデジタルIO用のピンを使用しますが、することはできません。

  • ピン0および1に接続されたデバイスは、シリアル接続に干渉する可能性があります

これにはスケッチのアップロードが含まれます。同じピンがそれらに接続されている他のものによって影響を受けている間に、PCから入ってくるシリアルデータがあります。最も一般的なものは、これらのピンに接続して常にシリアルデータを送信するGPSモジュールのようなものです。そのシリアルデータはPCのシリアルデータと競合し、どちらも正しく到着しません。

  • 連載があなたのスケッチによって妨害されている場合、どのようにスケッチをアップロードしますか?どのようにボードを「リセット」しますか?

あなたはしません。シリアルに干渉しているのはスケッチではなく、干渉している2つのIOピンに物理的に接続されているものです。接続されているものから2つのピンを外すだけで、スケッチを再度アップロードできます。多くのシールドは、それらのピンを切り離すために小さなスイッチを追加し始めているため、シールドを外さずにスケッチをアップロードできます。これらのピンに配線する他のデバイスでも同じトリックを使用できます-双極単投または双極双投を追加して(1つの位置を使用しない)、両方のピンを残りのピンから簡単に分離します必要なときにハードウェア。

  • これはすべてのArduinoボードに影響しますか?

いいえ、USB-シリアルブリッジチップを使用するものだけです。それは、Uno、Due、Megaなどです。USBに直接接続されているボードは、スケッチのアップロードにTXピンとRXピンを使用しません-専用USBを使用しますD +およびD-ピン。これは、Leonardoのようなボード、一部の小さい(ミニ?マイクロ?忘れてしまう)ボードなどです。


「多くのシールドが小さなスイッチを追加し始めている」クール。マイクロに「USB-シリアルブリッジチップ」がありますか?unoではピン0、1を使用できますが、microでは使用できませんか?
cocco

USBからシリアルへのブリッジを持たないどのデバイスでも使用できます。Unoには1つ、Megaには1つ、Miniには1つありませんが、プログラムするために外部でTX / RXピンに接続する必要があります。それらのすべてが出ています。MicroとLeonardoにはありませんので、それらを使用できます。
Majenko

@Nick Gammonが話していること 宇野とあなたが書き留めた他の人は、ピン0と1を適切に使用できないプルアップ抵抗を持っていますが、マイクロにはプルアップ抵抗がないため、ピン0と1は適切に機能し、新しいスケッチをアップロードするためのUSBも機能しますか?
cocco

一応ニックはその点で間違っている。プルアップ抵抗はありません。メインMCUとUSBチップの両方が同じラインを同時に反対のレベルに駆動しようとした場合の問題を防ぐために、ペアの小さなインライン抵抗があります。それらはUno回路図でRN4AおよびRN4Bとして確認できます。
マジェンコ

USBチップが偶然にRXピンを駆動しようとする場合(USBポートが接続されていて、シリアル接続を開いている場合(または、おそらく接続されているだけで、不明)]は、RXピンの電圧に影響を与える可能性があります。スケッチで行っているので、チャーリープレックスなどにそのピンを使用するのは安全ではない場合があります。
マジェンコ

1

評判が悪いためコメントできませんが、OPピン配列に少なくとも1つのピンが間違っていることを指摘したいと思います。

PB6はPB5である必要があります

スコープ(SPIバス)にSCKが表示されない理由を理解するために、かなりの時間を費やしました。IDEではなく、低レベルで作業していました。

これはグーグルで最初に出てくる写真なので、他の人に同じトラブルを避けたかった...


0

20x(20-1)= 380 LED(チャープレックス、高低); 私が間違っている場合は修正してください。つまり、ダイオードと1つのArduinoを使用して380の「何でも」を制御できるということです。

まず、380の数字は、20本のピン(20用である2彼らは0Vに本当になることはありませんので、しかし、ピン0と1がAtmega16U2のプルアップ抵抗に接続されている- 20)。空白のスケッチをロードする場合、ピン0と1で5 Vを測定します。

次に、Charlieplexingを介して380のLEDを駆動できる「何でも」380を駆動することはできません。電流が一方向にしか流れないというLEDの特性は、LEDの動作方法にとって重要です。

関連質問arduinoに14本を超える出力ピンを配置する方法はありますか?


まず、ピン0と1に2つのLEDを(抵抗で)反転させて配置した場合、ピン0をハイに設定し、ピン1をローに1秒遅らせ、ピン0をローにしてピン1をハイに1秒遅らせます。
cocco

第二に、「何でも」とは、スイッチを意味します...クリックスイッチ、リードスイッチ、センサー、または高低をサポートする入出力のあらゆるタイプの組み合わせ。electronicdesign.com/site-files/electronicdesign.com/files/…ダイオードで完了。
cocco

まあ、そうでもない。Charlieplexingは多重化の一種であるため、スイッチを狂ったようにクリックさせない限り、実際には機能しません。そして、それは出力の状況なので、考えているように入力を行うことはありません。他のリンクを読むことをお勧めします。シフトレジスタ、またはポートエクスパンダは、ここではCharlieplexingよりも実用的です。
Nick Gammon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.