■チャタリング防止回路

マイコンにスイッチを取り付けてみたのだがチャタリングが起きて
一回スイッチを押しただけなのに十数回押した事になってしまいました

本来ならソフトで解決すればいいのだが、あえて回路で解決しようと思います

▼手元にあった部品を組み合わせて作った回路
一般的にこの手の回路では抵抗は1KΩ〜1MΩ、コンデンサは100pF〜100μFを使う



▼コンデンサの充電にかかる時間
□時定数を求める

Rは抵抗(単位はオーム)
Cは静電容量(単位はファラド)

抵抗 R		470+470+470 = 1410Ω
静電容量 C	10 * 0.000001 = 0.00001F
時定数 CR		1410 * 0.00001 = 0.0141 14ms

□一定時間後の電圧を求める

εは自然対数の底 2.71828......


電圧を4.5Vとして計算

5ms後の電圧   4.5*(1-0.699)=1.354V
10ms後の電圧  4.5*(1-0.489)=2.299V
14ms後の電圧  4.5*(1-0.367)=2.848V
17ms後の電圧  4.5*(1-0.296)=3.168V
20ms後の電圧  4.5*(1-0.239)=3.424V
22ms後の電圧  4.5*(1-0.207)=3.568V
24ms後の電圧  4.5*(1-0.180)=3.690V


▼コンデンサの放電にかかる時間
考え方としては充電の反対ですね

抵抗 R		470Ω
静電容量 C	10 * 0.000001 = 0.00001F
時定数 CR		470 * 0.00001 = 0.0047 5ms

0ms後の電圧   4.5*(1.000)=4.500V
1ms後の電圧   4.5*(0.818)=3.681V
2ms後の電圧   4.5*(0.670)=3.015V
3ms後の電圧   4.5*(0.548)=2.466V
4ms後の電圧   4.5*(0.449)=2.020V
5ms後の電圧   4.5*(0.367)=1.651V
6ms後の電圧   4.5*(0.301)=1.354V
7ms後の電圧   4.5*(0.246)=1.107V
8ms後の電圧   4.5*(0.201)=0.904V
9ms後の電圧   4.5*(0.165)=0.742V


■シュミットトリガ

シュミットトリガとは入力にしきい値(スレッショルドレベル)が2つある論理回路です
HD74HC14のデータシートを見ると、4.5Vの時に
3.15Vと1.9Vの二箇所にしきい値があり、
入力が 3.15Vを超えるまで H レベルにはなりませんが、一度 H レベルになると
今度は入力が 1.9V を下るまで L になりません


▼回路図にシュミットトリガを追加


シュミットトリガを追加したことにより
スイッチを押した時、コンデンサの電圧が3.15Vを超えるまでの17ms
スイッチを放した時、コンデンサの電圧が1.9V以下になるまでの5ms
H と L レベルがバタつかない事になります

一般的にチャタリングの継続時間は、数100μs〜数msであるため問題なく動作すると思われます



スイッチの ON/OFF に対してもチャタリングが発生しなくなりました。