ArduinoMegaの外部割り込みができない

ArduinoMegeの外部ピン割り込みについて、製作中にかなり躓いたので 一応、記事にしておこうと思う。


通常のArduino(Uno,leonardo)でピン割り込みは pin2 pin3 がそれぞれ 割り込み1 割り込み2 に割り当てられている。


それが、ArduinoMegaだとさらに上記に加えて、pin18,pin19,pin20,pin21

の4つをさらに追加で使うことが出来る。しかし、追加されたpin20,pin21はArduinoのi2c用の通信ピンと共有しているので、i2cの自動プルアップの影響で内部インピーダンスが異なる事が原因で同じような回路では割り込みを発生させる事ができない。

つまり、プルアップされていると内部インピーダンスが大きいので、他のピンよりも多くの電流を流さないと、割り込み電圧が閾値に到達しないので正しく動作しない。


なので、割り込みピンの信号に利用するプルダウン抵抗はなるべく小さくする必要がある。

他のピンは約10kΩでプルダウンしていたが、pin20,pin21では約500Ωでプルダウンすることで割り込みを発生させることが出来た。

しかし、プルダウン抵抗に500Ωとなるとかなりの電流が流れることになる。消費電力がかなり大きくなってしまう。しっかりスイッチング回路で電圧を切り替えられるような回路を組んだ方が理想的だろう。


便利なArduinoだが、いろいろと未熟な部分も幾つかある。情報は非常に大事だなぁと思った。

私のように躓いた人の役に立てばと思う。


参考にしたサイトはこちら

Reo's diary

「人生、山あり谷ありチェーンあり」

0コメント

  • 1000 / 1000