工作室」サイトの日記的なブログです。サイトに挙げなかった他愛ないことを日記的に書き残してます。工作室」topに戻ります。arduino別館」topに戻ります。Arduinoラジオペンチさんのブログで、Arduinoオシロについて触れられていて、興味深いので色々と会話させて頂いているところ。複数のスイッチ入力から、ArduinoのattachInterrupt()を使って外部割り込みかけるのに、複数ピンをダイオードでor合成して、intピンから割り込み→割り込み処理内で全スイッチを読み出す...という流れになっているとのことなんだけど、スイッチ入力が5回に1回くらい読み込まれないとのこと。Arduinoの入力ピン側は、内蔵プルアップ有効にしているらしいので、20kΩと仮置きしておいて、簡単にするためにスイッチを1個だけにしてみた。コンデンサC1と左側の20kΩプルアップ抵抗の間が割り込みのための入力ピン。左側のスイッチとプルアップ抵抗の間が改めてスイッチ入力を読み直しするデジタル入力ピン。ブレッドボードに組んで、それぞれのところにオシロのプローブ当てて、スイッチを入れてみたところ、こんな波形が取れた。上は、C1と100Ω抵抗のCRフィルタで、チャタリングで割り込みが暴発しないようになっている波形。edgeでトリガがかかる。下は、スイッチ入力端子に掛かる電圧。線をブレッドボードの穴に抜き挿しすることでスイッチの代わりにしてみたのがこの波形。ちなみに横軸は40us/DIV。スイッチが入ると、コンデンサにたまった電荷が、100Ωを通してGNDに流れていくので、上の波形は緩やかに落ちて行く。Arduinoの入力端子はシュミットトリガなので、このCRフィルタだけでチャタリングによる複数割り込みで暴れることはないという状態。下の波形は、20kΩとGNDの間の電圧なので、チャタリングが発生すればバタバタと暴れるんではないかなと。(で、わざと条件を悪化させて暴れさせてみたというわけ。何回かオン/オフしてみて、そのうちの暴れていた波形をキャプチャ)トリガはちょうどグラフの真ん中で掛かっているので、それより右側は割り込み発生後の波形。ここに、バタバタと波形が乱れている状態が残っていれば、割り込み処理内でHIGHとLOWが入り混じった状態となりうるので、割り込み処理内でLOWを読み出すことを期待していつつ、実際はHIGHが読み出されることがあるのでは?と。(HIGHは押されていないスイッチの状態)なんとなく、波形がバタバタしているところがあって、それが悪さする可能性はありそう。実際は、CRフィルタの時定数とか、タクトスイッチの性能とかによるので、本当にそういう状態が起きうるのかがよくわからないんだけど。時定数を長めにしてしまえば、もしかすると収まるのかなぁ?もしくは、スイッチと並列にC成分入れるとかかな。なんにしても、Arduinoの標準機能だと、外部割込みはattachInterrupt()使うことになって、Unoだと2本しか使えないから、このあたりは色々悩ましいな。https://twitter.com/TypeA_Airi/status/1095567075953655809今日のポン子はお休みだった。ウェザロアートは何枚か紹介されてたな。https://twitter.com/SonmiChina/status/1094844582716534784物理。https://twitter.com/tigers_1964/status/1095325229058904064ストラトスのレプリカ。https://twitter.com/KenAkamatsu/status/1093835028201562112https://twitter.com/tokoya/status/1095592591138029568スクリーンショット取っただけで法律違反って、なにかまた思考の軸がズレまくってるとしか思えないな。なんでこんな意味不明で、当初目的を無視した法律作るんだろう?なにか裏があるのか?https://twitter.com/konishihiroyuki/status/1095514192130408448こんなポンコツが五輪担当大臣って、やっぱわからんな。https://www.youtube.com/watch?v=cAciRjzH3dIKP61に隼のエンジン載せてるのか。http://www1.suzuki.co.jp/motor/product/gsx1300ral7/spec197PSだって。最大出力出るのが9500rpmだもんな。これはアタマおかしい(ほめ言葉)。あぁ、こういう軽くておバカなクルマ乗りたい。“AutoPage”AutoPage最新お知らせ。