導入
前回の記事では、チャタリングについて解説しました。
本記事では、チャタリング防止回路を作成したので解説します!

使用するもの
- PC
- Arduino
- ブレッドボード
- ジャンパ線
- スイッチ
- 抵抗×3 (330Ω)【LED電流制限用抵抗×2、RC回路用×1 計3つ】
- コンデンサ(220uF)
- LED×2
- NOTゲートIC(74HC14)
下記の内容のものを使用しました。
回路図


プログラム
プログラムの説明
スイッチを押すと、チャタリングを模擬した波形がArduinoの13ピンから出力される。
プログラムコード
const int buttonPin = 2; // チャタリング波形出力の電源ボタン(プルアップで接続)
const int chatteringPin = 13; // チャタリングを発生させる出力ピン(LEDなど)
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // ボタン入力ピンをプルアップ設定
pinMode(chatteringPin, OUTPUT); // 出力ピンを設定
}
void loop() {
// ボタンが押された場合(LOWになる)
if (digitalRead(buttonPin) == LOW) {
// チャタリングを発生させる(ON/OFFを5回繰り返す)
for (int i = 0; i < 5; i++) {
digitalWrite(chatteringPin, HIGH); // 短時間ON
delay(random(5, 30)); // 5〜30msのランダムな時間ON
digitalWrite(chatteringPin, LOW); // 短時間OFF
delay(random(5, 30)); // 5〜30msのランダムな時間OFF
}
digitalWrite(chatteringPin, HIGH); // チャタリング終了後に5Vを印加(安定状態)
// **ボタンが離されるまで待つ(押しっぱなし防止)**
while (digitalRead(buttonPin) == LOW);
digitalWrite(chatteringPin, LOW); // ボタンが離されたら出力をOFF
}
}
動作確認
動作の説明
1.スイッチを押すと、チャタリングを模擬した電圧が出力される。
- スイッチが押された瞬間、信号が短い間隔でON/OFFを繰り返し、不安定な状態(チャタリング)を再現する。
2.赤色のLEDはチャタリングの影響を受け、点滅する。
- チャタリング発生中は、LEDが細かく点滅するため、信号の不安定さを視覚的に確認できる。
3,青色のLEDはチャタリング対策が施されているため、安定して点灯する。
チャタリングが発生しても、適切な対策がされているため、LEDは点滅せずに安定して点灯する。
まとめ(課題・発展)
今回の実験では、スイッチを押した際に発生するチャタリング現象を再現し、その影響を視覚的に確認しました。赤色のLEDはチャタリングの影響を受けて点滅し、青色のLEDはチャタリング対策によって安定した点灯を示しました。
課題
- 応答性の低下
- チャタリング防止回路を導入すると、スイッチ入力の応答が遅れることがあります。
発展
- RC回路の時定数を調整する ※RC回路について詳しく知りたい方はこちら
- 時定数(τ = R × C) を適切に調整することで、応答性とチャタリング防止のバランスを最適化できます。
- 状況に応じて、プルアップ抵抗やコンデンサの容量を調整し、最適な設定を見つけることが重要です。
次回の記事は、チャタリング防止回路の原理について詳しく解説したいと思います。
コメント