Arduino完全入門ガイド|文法・関数・エラー対処まで一気にわかる

プログラミング・電子工作

Arduino完全入門ガイド|文法・関数・エラー対処まで一気にわかる

Arduino Complete Beginner Guide — 2026

Arduino完全入門ガイド
文法・関数・エラー対処まで一気にわかる

「Arduinoを始めてみたいけど、コードを見るとカッコや記号だらけで頭が真っ白になる」——そんな方のために、この記事は書きました。開発環境の準備から、プログラムの基本構造、変数、条件分岐、繰り返し、関数、そして入出力の基本命令、さらによくあるエラーの読み方と直し方まで、専門用語ゼロの比喩と実際に動くコード例を使って、順番に一気に理解できるようにまとめています。リハビリの現場で「難しいことを、その人にわかる言葉に置き換えて伝える」ことを仕事にしてきた理学療法士の視点も交えながら、電子工作がまったく初めての方でも迷わないように解説します。

対象読者: プログラミング完全未経験〜Arduino入門者 対象ボード: Arduino Uno / Nano互換機 収録コード例: 12本以上
専門用語は初出時に解説比較表・図解つきエラー対処チェックリスト全コードCOPY対応
30秒で分かる全体像

知りたいこと この記事でわかる場所
Arduinoって結局何?何ができる? 第1章
まず何をパソコンに入れればいい? 第2章
コードのどこが「準備」でどこが「繰り返し」? 第3章
数字や状態はどこにしまっておく? 第4章
「もし〜なら」の書き方は? 第5章
同じ処理を何度も繰り返すには? 第6章
処理をひとまとめにして使い回すには? 第7〜8章
エラーが出た時、どこを見ればいい? 第9章



01

Arduinoとは何か、何ができるのか

Arduino(アルドゥイーノ)とは、名刺サイズほどの小さな基板に、簡単なプログラムを書き込んで動かすことができる「マイコンボード」の一種です。パソコンだと考えると難しく感じますが、実際には「決まった手順を、決まったタイミングで繰り返す、とても小さな司令塔」だとイメージすると近いです。

この司令塔にLEDやセンサー、モーターなどの部品をつなぎ、「センサーの値がある基準を超えたらLEDを光らせる」「ボタンが押されたらモーターを回す」といった指示をプログラムとして書き込むことで、身の回りの小さな自動化・電子工作を実現できます。

用語メモ:マイコン(マイクロコントローラ)パソコンのように多機能ではありませんが、「決められたプログラム通りに、電気信号を送ったり受け取ったりする」ことに特化した、小さくて省電力なコンピューターの部品です。Arduinoは、このマイコンを初心者でも扱いやすいように基板とソフトウェアでパッケージ化したものです。

Arduinoで書くプログラムは「スケッチ」とも呼ばれ、文法はC言語・C++というプログラミング言語をベースにしています。難しく聞こえますが、実際に使う命令の種類はかなり限られているため、この記事で紹介する型を1つずつ覚えていけば十分に対応できます。

POINT

Arduinoの学習で大切なのは「全部の文法を丸暗記すること」ではなく、「よく使う数種類の型(setup/loop、変数、if文、for文、関数、入出力命令)を、意味とセットで覚えること」です。この記事はその型を順番に並べています。

02

開発環境を整える:IDEのインストールと最初の書き込み

プログラムを書いてArduinoに送るには、Arduino IDE(開発環境)という専用ソフトを使います。IDEは「Integrated Development Environment(統合開発環境)」の略で、コードを書く場所と、それをボードに転送(書き込み)する機能がひとつになったソフトだと考えてください。

1
Arduino IDEをダウンロード・インストール
Arduino公式サイトから、お使いのパソコンに合ったインストーラーを入手します。
2
USBケーブルでボードとパソコンをつなぐ
多くの入門用ボードはUSBケーブル1本で電源供給とデータ通信の両方ができます。
3
ボードとポートを選択する
IDEのメニューから、使用しているボードの種類と、接続されているポート(通信の窓口)を選びます。
4
コードを書いて「マイコンボードに書き込む」ボタンを押す
エラーがなければ数秒〜数十秒でボードに転送され、その場でプログラムが動き始めます。

最初の動作確認には、Arduino IDEにあらかじめ用意されている「Blink」というサンプルコードを使うのがおすすめです。ボード上のLEDが1秒ごとに点滅すれば、環境構築は成功です。

first_blink.ino
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);  // 基板に内蔵されたLEDを「送る係」に設定
}
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // LED点灯
  delay(1000);                      // 1000ミリ秒=1秒待つ
  digitalWrite(LED_BUILTIN, LOW);   // LED消灯
  delay(1000);
}
用語メモ:LED_BUILTIN

多くのArduinoボードには、基板上にあらかじめLEDが1つ内蔵されています。LED_BUILTINはそのLEDにつながっているピン番号を、機種を問わず自動的に指してくれる特別な名前です。

正式なダウンロード先や対応OSはArduino公式のArduino IDEダウンロードページ ↗で確認できます。

03

プログラムの基本構造:setup()とloop()

Arduinoのプログラムは、必ずsetup()loop()という2つの箱(関数)から成り立っています。この2つの役割の違いを理解することが、Arduino学習の最初の一歩です。

setup()(準備係)

  • 電源を入れた時に1回だけ実行される
  • ピンの役割設定(pinMode)
  • 通信の開始準備(Serial.begin)など

loop()(繰り返し係)

  • setup()が終わった後、永遠に繰り返される
  • センサーの読み取り
  • LEDの点滅、判定処理など
structure_concept.ino
void setup() {
  // ここは電源投入時に1回だけ実行される「準備」
}
void loop() {
  // ここは電源が入っている間、延々と繰り返される「本番」
}
void setup() { … }
「voidという型で、setupという名前の関数を作りますよ」という意味です。voidは「戻り値なし=結果を返さない処理」を表します。中カッコ{ }の中に書いた処理が、その関数の中身になります。
よくある間違い

setup()に書くべき「一度だけでいい設定」をloop()に書いてしまうと、1秒間に何十回、何百回とその設定をやり直すことになり、動作が不安定になったり無駄な処理時間がかかったりします。「一度だけでいいものはsetup()、繰り返したいものはloop()」と覚えておきましょう。

04

変数とデータ型:情報を入れる「箱」

変数とは、数字や状態を一時的にしまっておく「名前つきの箱」です。センサーで測った値や、ボタンが押されたかどうかの状態などを、あとで使うためにしまっておく場所だと考えてください。

variable_example.ino
int ledPin = 8;        // 整数(小数点なしの数)を入れる箱
float temperature = 25.4;  // 小数を入れる箱
bool isPressed = false;    // true/falseの2択だけを入れる箱
char grade = 'A';          // 1文字だけを入れる箱

変数を使う時は「この箱にはどんな種類の値が入るのか」を最初に決める必要があります。これをデータ型と呼びます。よく使うデータ型を一覧にまとめました。

入れられるもの 使用例
int 整数(小数点なし) ピン番号、カウント数
float 小数を含む数 温度、電圧の計算結果
bool true(はい)かfalse(いいえ)の2択 ボタンが押されたか、フラグ管理
char 1文字 1文字だけの記号や状態管理
String 複数の文字(文字列) シリアルモニタへの表示文
POINT

変数名の前に型を書くのは、「この箱にはこの種類のものだけ入れてください」という宣言です。整数用の箱(int)に無理やり小数を入れると、小数点以下が切り捨てられてしまうので注意しましょう。



05

演算子と条件分岐:if文で判断する

プログラムに「もし〜なら、こうする」という判断をさせたい時に使うのがif文です。日常生活での「もし雨が降っていたら、傘を持っていく」という考え方と同じ形をしています。

if_statement.ino
int sensorValue = 650;
if (sensorValue > 600) {
  Serial.println("明るいです");
} else {
  Serial.println("暗いです");
}
if (sensorValue > 600) { … } else { … }
カッコの中の条件が正しければ最初の中カッコの中身を、正しくなければelseの後の中カッコの中身を実行します。「もし〜なら/そうでなければ」という2択の判断を1セットで書けます。

条件を書く時によく使う「比較演算子」と、複数の条件を組み合わせる「論理演算子」を一覧にまとめました。

記号 意味
== 等しい state == HIGH
!= 等しくない state != HIGH
> / < より大きい/より小さい value > 100
>= / <= 以上/以下 value <= 50
&& かつ(両方とも正しい) a > 0 && b > 0
|| または(どちらかが正しい) a == 1 || b == 1
よくある間違い

「等しい」を表すつもりで=を1つだけ書いてしまうミスが非常に多く見られます。=は「代入(値を入れる)」、==は「比較(等しいか確認する)」という、まったく違う意味なので注意してください。

06

繰り返し処理:for文とwhile文

同じ処理を何度も繰り返したい時には、for文while文を使います。「同じことを手作業で何行も書く」代わりに、「これをN回繰り返してください」とまとめて指示できる便利な仕組みです。

for_loop.ino
for (int i = 0; i < 5; i++) {
  Serial.println(i);   // 0,1,2,3,4を順番に表示
}
for (int i = 0; i < 5; i++)
「変数iを0から始めて、iが5未満の間、繰り返すたびにiを1ずつ増やす」という意味です。カッコの中は「開始条件;続ける条件;1回ごとの変化」の3つに分かれています。
while_loop.ino
int count = 0;
while (count < 3) {
  Serial.println("実行中");
  count++;   // count = count + 1 と同じ意味
}
用語メモ:無限ループ

while文の条件が永遠にtrueのままだと、プログラムがそこから抜け出せなくなります。これを「無限ループ」と呼びます。意図しない無限ループは、ボードが反応しなくなる原因の代表格です。カッコの中の条件がいつか必ずfalseになるように書けているか、確認する習慣をつけましょう。

POINT

「繰り返す回数が最初から決まっている」時はfor文、「ある条件を満たすまで繰り返したい」時はwhile文、と使い分けるのが基本です。

07

関数の基本:処理をひとまとめにする

関数とは、複数の処理をひとまとめにして、名前をつけておくための箱です。setup()やloop()もこの「関数」の一種ですが、自分で好きな名前の関数を作ることもできます。

custom_function.ino
const int LED_PIN = 8;
void setup() {
  pinMode(LED_PIN, OUTPUT);
}
void loop() {
  blinkLed(3);   // blinkLedという自作関数を呼び出す
  delay(2000);
}
// LEDをtimes回だけ点滅させる自作関数
void blinkLed(int times) {
  for (int i = 0; i < times; i++) {
    digitalWrite(LED_PIN, HIGH);
    delay(200);
    digitalWrite(LED_PIN, LOW);
    delay(200);
  }
}
void blinkLed(int times) { ... }
「timesという整数を受け取って、その回数だけLEDを点滅させる」という自作の処理です。カッコの中のtimesのように、関数が外から受け取る値のことを「引数(ひきすう)」と呼びます。

同じ点滅処理を毎回同じコードで書く代わりに、blinkLed(3)blinkLed(5)のように1行呼び出すだけで済むようになります。これが関数の最大のメリットです。

POINT

「同じような処理を2回以上コピペしていることに気づいたら、関数にまとめられないか考える」——これはコードを整理する上での重要な習慣です。

08

入出力の基本命令:デジタル・アナログ・シリアル

Arduinoでよく使う入出力の命令を、目的別に整理しました。それぞれの役割の違いを押さえておくと、部品の使い分けがぐっとスムーズになります。

デジタル入出力:HIGH/LOWの2択で扱う

digital_io.ino
const int LED_PIN = 8;
const int BUTTON_PIN = 2;
void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
  int buttonState = digitalRead(BUTTON_PIN);
  if (buttonState == LOW) {          // 押されている時はLOW
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

アナログ入出力:もっと細かい段階で扱う

analog_io.ino
const int SENSOR_PIN = A0;   // アナログ入力ピン
const int LED_PIN = 9;       // PWM対応ピン
void setup() {
  pinMode(LED_PIN, OUTPUT);
}
void loop() {
  int sensorValue = analogRead(SENSOR_PIN);      // 0〜1023の範囲で読み取る
  int brightness = map(sensorValue, 0, 1023, 0, 255); // 0〜255に変換
  analogWrite(LED_PIN, brightness);              // 明るさを段階的に変える
}
用語メモ:PWManalogWrite()は実際には電圧を細かくオン・オフしている「PWM(パルス幅変調)」という仕組みでLEDの明るさやモーターの速さを段階的に見せています。基板上に~マークがついているピンで使えます。

シリアル通信:パソコンと会話する

serial_debug.ino
void setup() {
  Serial.begin(9600);   // パソコンとの通信を9600bpsで開始
}
void loop() {
  int value = analogRead(A0);
  Serial.print("センサー値: ");
  Serial.println(value);   // シリアルモニタに表示
  delay(500);
}
POINT

Serial.println()で値をパソコン側の画面(シリアルモニタ)に表示できます。「今どんな値になっているか見えない」時の確認手段として非常によく使われるので、覚えておくとデバッグが一気に楽になります。

ピンの役割設定の詳しい違いについてはArduinoのpinmodeとは?INPUT・OUTPUT・INPUT_PULLUPの違いで、より深く解説しています。



09

よくあるエラーと対処法チェックリスト

Arduino IDEで「マイコンボードに書き込む」を押した時に出るエラーメッセージは、赤い文字と一緒に「何行目で、どんな種類のエラーか」が表示されます。慣れないうちは英語の羅列に見えて怖く感じますが、パターンはある程度決まっています。よくあるものを一覧にまとめました。

エラーメッセージの特徴 主な原因 対処法
expected ';' before ... 行末のセミコロン(;)の付け忘れ エラー箇所の1行前を確認し、;を追加する
expected '}' at end of input 波カッコ{ }の数が合っていない 開いたカッコと閉じたカッコの数を数える
'xxx' was not declared in this scope 変数名や関数名のスペルミス、宣言忘れ 綴りが完全に一致しているか確認する
redefinition of ... 同じ名前の変数や関数を2回定義している 変数名・関数名が重複していないか確認する
書き込みはできるが動作しない pinModeの設定ミス、配線違い、値の取り違え OUTPUT/INPUTの向き、配線、if文の条件を見直す
1

エラーの一番上の行だけを見る。複数のエラーが同時に表示される場合、一番上のエラーを直すと残りも連鎖的に消えることがよくあります。

2

直前の行のセミコロンを疑う。「〇行目でエラー」と出ても、原因は1つ前の行に隠れていることが非常に多いです。

3

波カッコの対応を目で追う。開いた{と閉じた}の数を、インデント(字下げ)を頼りに1つずつ確認しましょう。

4

大文字・小文字、全角・半角を確認する。特に日本語入力から半角に戻し忘れた記号(;や()など)は見落としやすい原因です。

5

「動くのに正しくない」時は型と条件式を疑う。エラーが出ないのに期待通りに動かない場合は、変数の型やif文の条件(==とHIGH/LOWの向きなど)を見直しましょう。

初心者がつまずきやすいポイント

エラーメッセージを見て「全部読んで理解しなきゃ」と身構える必要はありません。まずは「何行目か」「どのキーワードが含まれているか」の2点だけを拾い読みし、上記の表と照らし合わせる——この習慣だけで、原因の多くはすぐに見つかります。

10

FAQ・まとめ

プログラミング未経験でもArduinoを学べますか?

はい、問題ありません。Arduinoで使う文法はC言語をもとにしていますが、実際に使う命令の種類は限られており、決まった「型」に沿って書いていくことがほとんどです。この記事のようにsetup()とloop()の役割、変数、if文、for文、関数という基本を1つずつ押さえれば、未経験からでも十分に読み書きできるようになります。

Arduino IDEはどこでダウンロードできますか?

Arduino公式サイトの一般提供ページから、Windows・Mac・Linuxそれぞれに対応したインストーラーを無料でダウンロードできます。近年はブラウザだけで使えるArduino Cloud Editor(Web版)も用意されており、インストール不要で試すことも可能です。

エラーが出たとき、まず何を確認すればいいですか?

エラーメッセージの一番上の行に書かれている「何行目で」「どんなエラーか」をまず確認してください。特に多いのはセミコロン(;)の付け忘れ、波カッコ{}の対応漏れ、変数名のスペルミスの3つです。第9章にある対処表と照らし合わせるだけで、原因の8割前後は見つけられます。

変数の型(int・floatなど)を間違えるとどうなりますか?

すぐにエラーになるとは限らないのが厄介な点です。例えば小数を扱いたいのにintで宣言してしまうと、小数点以下が切り捨てられてしまい、計算結果がおかしくなるといった「動くのに正しくない」状態になります。扱う値の性質(整数か、小数か、オン/オフの2択かなど)に合わせて型を選ぶことが大切です。

Arduinoの学習は、一度に全部を覚えようとすると挫折しやすい分野です。この記事で紹介した「setup/loopの役割」「変数という箱」「if文の判断」「for/whileの繰り返し」「関数によるまとめ方」「入出力命令」「エラーの読み方」という7つの型は、どんなに複雑に見えるコードでも、必ずこの組み合わせでできています。最初は意味がわからなくても、実際にコードを打ち込んで、少し数字を変えて動かしてみる——その繰り返しが、いちばんの近道です。まずは第2章のBlinkコードから、自分の手で1つずつ試してみてください。

執筆・実機検証:YOFUKASI AI運営者

理学療法士/Arduino・Pythonを使った医療機器制作・学会発表経験あり。「難しいことを、その人にわかる言葉に置き換えて伝える」ことを軸に、電子工作の入門記事を執筆しています。

ARDUINO COMPLETE BEGINNER GUIDE 2026 — 7つの型を押さえれば、どんなコードも自分の言葉で読めるようになります。


関連記事

特集記事

コメント

この記事へのコメントはありません。

TOP
CLOSE