.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! Arduinoのプログラム構造 =========================== 新しいスケッチファイルを見てみましょう。コード自体は数行しかありませんが、実際には「空の」スケッチです。 このスケッチを開発ボードにアップロードしても何も起こりません。 .. code-block:: C void setup() { // ここにセットアップコードを記述します。一度だけ実行されます: } void loop() { // ここにメインコードを記述します。何度も実行されます: } もし ``setup()`` と ``loop()`` を削除し、スケッチを本当の ``blank`` ファイルにすると、検証に合格しないことがわかります。 これらは人間の骨格に相当し、欠かせないものです。 スケッチを書く際、 ``setup()`` は最初に実行され、ボードの電源が入れられたりリセットされた後、及び一度だけその中のコード( ``{}`` 内)が実行されます。 ``loop()`` はメインの機能を記述するために使用され、 ``setup()`` が実行された後、その中のコードはループで実行されます。 setup() と loop() の理解を深めるために、以下の4つのスケッチを使用します。その目的は、ArduinoのオンボードLEDを点滅させることです。各実験を順番に実行し、その特定の効果を記録してください。 * スケッチ1: オンボードLEDを連続して点滅させる。 .. code-block:: C :emphasize-lines: 8,9,10,11 void setup() { // ここにセットアップコードを記述します。一度だけ実行されます: pinMode(13,OUTPUT); } void loop() { // ここにメインコードを記述します。何度も実行されます: digitalWrite(13,HIGH); delay(500); digitalWrite(13,LOW); delay(500); } * スケッチ2: オンボードLEDを1回だけ点滅させる。 .. code-block:: C :emphasize-lines: 4,5,6,7 void setup() { // ここにセットアップコードを記述します。一度だけ実行されます: pinMode(13,OUTPUT); digitalWrite(13,HIGH); delay(500); digitalWrite(13,LOW); delay(500); } void loop() { // ここにメインコードを記述します。何度も実行されます: } * スケッチ3: オンボードLEDをゆっくり1回点滅させた後、速く点滅させる。 .. code-block:: C :emphasize-lines: 4,5,6,7,12,13,14,15 void setup() { // ここにセットアップコードを記述します。一度だけ実行されます: pinMode(13,OUTPUT); digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000); } void loop() { // ここにメインコードを記述します。何度も実行されます: digitalWrite(13,HIGH); delay(200); digitalWrite(13,LOW); delay(200); } * スケッチ4: エラーを報告。 .. code-block:: C :emphasize-lines: 6,7,8,9 void setup() { // ここにセットアップコードを記述します。一度だけ実行されます: pinMode(13,OUTPUT); } digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000); void loop() { // ここにメインコードを記述します。何度も実行されます: } これらのスケッチを用いて、 ``setup-loop`` のいくつかの特性をまとめることができます。 * ``loop()`` は、ボードに電源が供給された後、繰り返し実行されます。 * ``setup()`` は、ボードに電源が供給された後、1回だけ実行されます。 * ボードに電源が供給されると、まず ``setup()`` が実行され、次に ``loop()`` が実行されます。 * コードは ``setup()`` や ``loop()`` の ``{}`` のスコープ内に記述する必要があり、フレームワークの外部ではエラーになります。 .. note:: ``digitalWrite(13,HIGH)`` のようなステートメントは、オンボードLEDの制御に使用されます。これらの使用法については、後の章で詳しく説明します。