Arduinoのデジタルピンの閾値は?

Arduino UNO R3のデジタル入力がオンオフと判断される電圧の閾値(しきいち)を調べてみた。結果は、電圧が2.57V以上になるとHIGHと判断され、それ以下だとLOWとなる。以下、調査方法を解説する。

デジタル入力の電圧閾値を調べる方法

コンデンサをゆっくり充電していく
コンデンサをゆっくり充電していく

閾値を調べる方法は次の通り。

  1. D2ピンをHIGHに設定し、抵抗100kΩを介してコンデンサへ充電していく
  2. その間、コンデンサの電圧をA5とD3で監視する
  3. D3がHIHGになるまでA5で電圧値をシリアルモニターへプロットする
  4. D3がHIGHになった瞬間ループを抜け、コンデンサに溜まった電荷をリリースする

これを数回繰り返し、閾値を調べたところ2.57Vの結果となった。

回路図

Arduinoの電圧閾値を調べる回路図
Arduinoの電圧閾値を調べる回路図

回路図はこちら。コンデンサに溜まった電圧をD3から逃すため1kΩの保護抵抗を入れている。

プログラム

/*
  Created by Toshihiko Arai.
  https://101010.fun/iot/arduino-threshold-volts.html
*/
const int PULSE_PIN = 2;
const int DIGITAL_READ_PIN = 3;
const int ANALOG_READ_PIN = 5;

void setup()
{
  Serial.begin(115200);
  pinMode(PULSE_PIN, OUTPUT);
}
void plot() {
  float value = float(analogRead(ANALOG_READ_PIN));
  float volts = value / 1023.0 * 5.0;
  Serial.println(volts);
}

void loop() {
  pinMode(DIGITAL_READ_PIN, INPUT);
  digitalWrite(PULSE_PIN, LOW);
  delay(10);
  digitalWrite(PULSE_PIN, HIGH);
  while(digitalRead(DIGITAL_READ_PIN)!=true) {
    plot();
  }
  pinMode(DIGITAL_READ_PIN, OUTPUT);
  digitalWrite(DIGITAL_READ_PIN, LOW); // コンデンサの電圧を逃す
  digitalWrite(PULSE_PIN, LOW);  
  delay(3000);
}

これらを応用するとデジタルピンで抵抗値を測ることも可能である。詳しくはこちらを参考に。

この記事で使った関連製品はこちら

Arduino Uno Rev3 ATmega328 マイコンボード A000066
Arduino Uno Rev3 ATmega328 マイコンボード A000066

Uno Rev.3、8 bit、AVR、ATmega328、USB-シリアルコンバータとしてプログラムされたATmega 16U2搭載

AmazonRakuten

こんな商品も人気です!

1.54インチ 電子ペーパーモジュール 200x200ラズベリーパイ エンベデッドコントローラ付き E-Inkディスプレイ画面
1.54インチ 電子ペーパーモジュール 200x200ラズベリーパイ エンベデッドコントローラ付き E-Inkディスプレイ画面

バックライトがなく、電源を切っても最後のコンテンツが長時間表示される。 超低消費電力、基本的に電力はリフレッシュにのみ必要です。 SPIインターフェイス、Raspberry Pi / Arduino / Nucleoなどのコントローラーボードとの接続用。

AmazonRakuten
M5Stack 開発ボード M5Stack Core2 開発キットデュアルコア32ビット240Mhz LX6プロセッサーUIFlow, MicroPython, A r d u i n o用
M5Stack 開発ボード M5Stack Core2 開発キットデュアルコア32ビット240Mhz LX6プロセッサーUIFlow, MicroPython, A r d u i n o用

Amazon
ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換
ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換

NanoはArduinoと互換性があり、ATmega328PやCH340と同じの公式バージョンで使用しています。 これは、最小で、完全で、ブレッドボードに優しいボードです。より多くのアナログ入力ピンとオンボード+ 5V AREFジャンパを備えた(電気的に)すべてが備わっています。

Amazon
ELEGOO Arduino用の 2.8 Inches TFT ターチスクリーン カードソケット付
ELEGOO Arduino用の 2.8 Inches TFT ターチスクリーン カードソケット付

無料チュートリアル(CDに収録)、より良い価格、より良いサービス。 (技術データ付き) 2.8インチ多彩なディスプレイ液晶画面 タッチペンも付き

AmazonRakuten

Arduinoの参考書

ESP32&Arduino 電子工作 プログラミング入門
ESP32&Arduino 電子工作 プログラミング入門

電子工作ファンに人気のマイコンArduino、そしてWiFiとBluetooth内蔵でネットワーク接続しやすいESP32。それらのマイコンでプログラムを組む際に使うのが「Arduino言語」です。「電子工作は好きだけどプログラミングはよくわからない」あるいは「プログラミングの経験がある。それを活かして電子工作を楽しみたい」--そんなみなさまのための電子工作プログラミング入門が本書です。

KindleAmazonRakuten
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版

電子パーツを自由自在に組み合わせて電子工作ができるように、Arduinoによる電子部品ごとの制御方法を詳しく解説。初心者や電子工作に躓いた人でも安心して取り組めるよう、豊富な図・写真で徹底解説。2018年発刊の「Arduino 電子工作 実践講座」の改訂版です。

KindleAmazonRakuten
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Arduinoをはじめよう 第3版 (Make:PROJECTS)

本書では、開発者自らが、Arduinoの哲学、ハードウェア、ソフトウェアの基礎を解説、誰にでもできる簡単なチュートリアルを行います。

AmazonRakuten

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

\Amazonギフトがお得/

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

\この記事をシェアする/