• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2022年02月20日

Arduinoでdelayを使わずチャタリング回避しスイッチだけで反転する方法

Arduinoでdelayを使わずチャタリング回避しスイッチだけで反転する方法
Arduinoで遊んでいて、スイッチを使い始めました。
スイッチを押すと、状態反転させたいのですが、チャタリングが起きてうまいこと動作しません。

delayを使うと画面表示等が止まってしまうためなにか方法はないかと思い、検索してみたが、殆どdelayやwhileでフックするスケッチしかなかったので、自分なりに考えて書いてみました。

カップリングコンデンサも必要ありません。
スイッチのチャタリングが20ms以内に終わって安定するならほぼ確実に動作するはずです。

INPUT_PULLUPしているので、スイッチは7番ピンとGNDを繋ぐだけです。
スイッチがなければ、7番ピンに繋いだワイヤーをGNDとチョンチョンさせれば動作確認できます。
LEDは適当に200~300Ωくらいの抵抗を5番ピンの出力にかましてください。



#define LED_PIN 5
#define SW_PIN 7
#define READ_INTERVAL 20//ms

void setup() {
  pinMode(LED_PIN, OUTPUT);//LED出力
  pinMode(SW_PIN, INPUT_PULLUP);//入力
}

unsigned long timer, old_timer;
bool states, value, old_value;
void loop() {

  //READ_INTERVAL[ms]毎にスイッチの読取り
  timer = millis();
  if ( (timer - old_timer) >= READ_INTERVAL) {
    old_timer = timer;
    value = !(digitalRead(SW_PIN));//SW (ON=1 / OFF=0)
  }

  //スイッチの状態を取得
  int sw_states = 0;
  if (value == HIGH && old_value == LOW) {
    sw_states = 1;//スイッチが押された瞬間
  } else if (value == LOW && old_value == HIGH) {
    sw_states = 2;//スイッチを離した瞬間
  } else if (value == HIGH && old_value == HIGH) {
    sw_states = 3;//スイッチが押されている
  } else {
    sw_states = 0;//スイッチが押されていない
  }
  old_value = value;

  //スイッチの状態に応じて動作を変更
  switch (sw_states) {
    case 0://スイッチが押されていない
      //states = LOW;
      break;
    case 1://スイッチが押された瞬間
      states = !states;
      break;
    case 2://スイッチを離した瞬間
      //states = !states;
      break;
    case 3://スイッチが押されている
      //states = HIGH;
      break;
  }

  //LEDにステータス反映
  digitalWrite(LED_PIN, states);
}

ブログ一覧 | Arduino | パソコン/インターネット
Posted at 2022/02/20 22:03:55

イイね!0件



今、あなたにおすすめ

関連記事

ハンコンラジコンの雑な解説
たぽさん

やっぱり物理スイッチがナンバーワン
kisu-kanさん

充電器のタイマー化完了!
ゆーすけ1017さん

一進一退‥‥‥(何だろう、初期不良 ...
SNJ_Uさん

排気ガス排出操作はどうあるべきか
SNJ_Uさん

電気系完成
SNJ_Uさん

この記事へのコメント

コメントはありません。

プロフィール

「[整備] #フォワード ArduinoでCAN通信できるプリント基板を作って組立 (MCP2515) https://minkara.carview.co.jp/userid/3423019/car/3226320/7545498/note.aspx
何シテル?   10/29 00:19
zip********です。よろしくお願いします。
みんカラ新規会員登録

ユーザー内検索

<< 2024/6 >>

      1
2345678
9101112131415
16171819202122
23242526272829
30      

ブログカテゴリー

愛車一覧

いすゞ フォワード いすゞ フォワード
いすゞ フォワードに乗っています。

過去のブログ

2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation