0Pricing
Arduino & IoT Academy · レッスン

ポーリングと割り込み

一部のイベントがloopを待てない理由を学びます。

「ポーリングと割り込み」はCoddyKit上の無料Arduino & IoT Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはArduino & IoT Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Arduino & IoT Academyコースには全4レッスンが含まれています。

常に確認し続ける

これまでのポーリングでは、ループを何度も繰り返し、センサーやボタンに変化があったかどうかを何度も尋ねています。

ポーリングの動作

一般的なポーリングでは、ループが1回進むたびにピンを読み取ります。値が期待どおりなら反応し、そうでなければそのままループを続けます。🔁

if (digitalRead(buttonPin) == LOW) {
  doSomething();
}

見えないコスト

ポーリングは動作しますが、何も変化していないのに確認するため、処理を無駄に消費します。ボードは、長時間変化しないピンを確認するために処理サイクルを使い続けます。

ループが忙しいとき

時間のかかる処理や長いdelayによってループが停止していると、すばやいボタン操作が、次にピンを読み取る前に終わってしまうことがあります。

待ってくれないイベント

センサーの一時的な急上昇、エンコーダーのエッジ、短いパルスなど、高速で短時間しか続かない信号もあります。その瞬間を逃すと、イベントは完全に失われます。

より賢い方法

割り込みを使うと仕組みが変わります。こちらから尋ねる代わりに、ピンで何かが起きた瞬間、ハードウェアが知らせてくれます。

すべてを中断する

割り込みが発生すると、チップはループで行っていた処理を一時停止し、ハンドラーを実行してから、中断した場所へ正確に戻ります。⚡

瞬間を逃さない

ハードウェアがピンを監視してくれるため、ごく短いパルスでもコードが実行されます。遅いループなら見逃してしまうイベントも検出できます。

ループを解放する

緊急性の高い信号を割り込みに処理させることで、loopは常に確認し続ける必要がなくなり、遅い処理に集中できる、すっきりした応答性の高い状態になります。

ポーリングで十分な場合

すべてに割り込みが必要なわけではありません。人がゆっくり押すボタンなら、ポーリングのほうが簡単で、十分に機能します。

適切な方法を選ぶ

イベントが高速または短時間で、ループが処理中に発生する可能性がある場合は割り込みを使います。それ以外では、ポーリングにすると簡単です。

確認問題

ポーリングよりも割り込みを選ぶ最も適切な理由は、どのような状況ですか?

まとめ

ポーリングは繰り返し確認し続ける一方、割り込みは通知を受け取る仕組みだと学びました。高速なイベントには割り込みを、ゆっくりしたイベントにはポーリングを使います。🎉

よくある質問

「ポーリングと割り込み」レッスンは無料ですか?

はい。「ポーリングと割り込み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Arduino & IoT Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Arduino & IoT Academyコースには全4レッスンが含まれています。

「ポーリングと割り込み」で何を学びますか?

一部のイベントがloopを待てない理由を学びます。 ブラウザで直接実行するハンズオンコードでArduino & IoT Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Arduino & IoT Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのArduino & IoT Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ポーリングと割り込み」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このArduino & IoT Academyレッスンでコードを書いて実行できますか?

はい。すべてのArduino & IoT Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ポーリングと割り込み
  2. ピンでattachInterruptを使う
  3. 安全なISRを書く
  4. エンコーダーのパルスを数える
← Arduino & IoT Academyに戻る