TinkercadのArduinoシミュレーター:回路、コード、テスターのガイド
TinkercadでのArduinoのシミュレーションをステップごとに:登録、ブレッドボードでのLEDとセンサーの回路、ブロックと文字のコード、シリアルモニタ、仮想テスター、Wokwi。
TinkercadでのArduinoのシミュレーションは、部品を1つも持っていなくても、Arduinoの回路を組んでコードを動かせる一番簡単な方法です。Autodeskの無料のブラウザ版ツールTinkercad Circuitsでは、Arduino Unoを仮想のブレッドボードにつなぎ、LED、抵抗、ボタン、センサーを追加し、コードを書いてStart Simulation(シミュレーションを開始)を押します。LEDが点き、サーボが回り、シリアルモニタにデータが流れます。すべて画面の中で起きるので、間違った接続でLEDが焼けたりボードが壊れたりすることはありません。そのため、学校のArduinoの授業の多くはTinkercadから始まります。
このガイドでは、アカウントの作成から始めて、ブレッドボードで最初の回路を組み、ブロックのコードと文字のコードの違いを確認し、シリアルモニタとそのグラフでセンサーのデータを見て、仮想テスターで電圧、電流、抵抗を測ります。その後、教員向けのクラスのアカウント、Tinkercadにある部品とない部品、シミュレーションが本物の回路と違う点、ESP32とRaspberry Pi PicoではWokwiに切り替えるべき理由を学びます。

Tinkercad Circuitsとは?そのしくみ
Tinkercadは、3Dデザイン、電子回路、プログラミングのツールをまとめた、Autodeskの無料のウェブアプリです。電子回路のセクションであるCircuitsは、2017年に終了した123D Circuitsの後継で、何もインストールせずに最新のブラウザで動きます。デザインはクラウドに保存されるので、学校のパソコンで始めた回路を家で続けられます。Tinkercadはコードを動かすだけでなく、回路の電気的な動作も計算します。抵抗を流れる電流、LEDにかかる電圧、任意の点の電圧などです。プログラムできるボードはArduino Uno R3、ATtiny、BBC micro:bitです。Arduinoのコードは本物のArduinoのコンパイラと同じようにコンパイルされ、仮想のATmega328Pで実行されるので、Tinkercadで動くコードは本物のボードでも動きます。
| 項目 | Tinkercad Circuits |
|---|---|
| 価格 | 無料(Autodeskのアカウントが必要) |
| インストール | 不要。ブラウザで動き、デザインはクラウドに保存 |
| プログラムできるボード | Arduino Uno R3、ATtiny、BBC micro:bit |
| プログラミング | ブロック、ブロック+文字、文字(Arduino C++) |
| 組み込みのライブラリ | 約11個:Servo、LiquidCrystal、Adafruit NeoPixel、IRremote、Keypad、Wire、SoftwareSerial、EEPROMなど |
| 計測器 | テスター、オシロスコープ、ファンクションジェネレーター、可変電源 |
| 既製の例 | Starters:基本、Arduino、micro:bitの回路 |
| クラスの管理 | Tinkercad Classrooms、1クラス最大250人 |
| 本物のボードへの移行 | コードを.inoファイルでダウンロードし、Arduino IDEで書き込む |
Tinkercadのアカウントの作り方
- ブラウザでtinkercad.comを開き、右上のSign Up(登録)ボタンをクリックします。
- 自分に合った方法を選びます。独学なら個人アカウント、教えているなら教員(Educators)アカウント、先生からクラスのコードをもらったならJoin Class(クラスに参加)です。
- 個人アカウントなら、メールアドレスかGoogleアカウントで続けます。TinkercadのアカウントはじつはAutodeskのアカウントなので、ほかのAutodeskのサービスにも同じログインが使えます。
- ログインしたら、ダッシュボードの左のメニューからCircuits(回路)のセクションを開き、Create(作成)ボタンで新しい回路を始めます。
- デザインは自動で保存されます。Tinkercadはランダムでユーモラスな名前を付けるので、左上の名前をクリックして「LEDとボタン」のようなわかりやすい名前を入力し、あとで見つけやすくしましょう。
13歳未満の生徒には、先生が用意したクラスのコードとニックネームでログインするのが一番簡単です。メールアドレスもパスワードも必要ありません。生徒はtinkercad.comでJoin Classをクリックしてコードを入力し、続いてもらったニックネームを入力します。個人アカウントを作りたい年少のユーザーは、登録時に保護者の同意を求められることがあります。教員アカウントの詳しいことは、下の別の章で紹介します。
画面を知る:作業スペース、部品、ショートカット
回路エディターは、左に大きな作業スペース、右に部品のパネルがあります。パネルには初期設定で人気のある基本部品(Basic Components)が表示されます。すべてを見るには、ドロップダウンメニューからAll Components(すべてのコンポーネント)を選ぶか、検索欄に「servo」や「ultrasonic」のような名前を入力します。パネルの下のほうのStartersのセクションには、既製のArduinoの回路が20個ほどあります。1つを作業スペースにドラッグし、シミュレーションを始めてコードを読むのが、新しい部品を学ぶ一番速い方法です。上のバーのボタンで、回路の表示、自動で描かれる回路図の表示、部品の一覧を切り替えられます。
| ショートカット | 働き |
|---|---|
| F | 回路全体を画面に収める(Zoom to fit) |
| R | 選んだ部品を回転する |
| NとShift + N | メモを追加する。メモを隠す・表示する |
| 数字キー0〜9 | 選んだ線の色を変える |
| Shift + クリック | 複数の部品を一度に選ぶ |
| マウスホイール | 拡大・縮小する |
| Delete | 選んだ部品か線を削除する |
最初の回路:ブレッドボードでLED、抵抗、ボタン

- 部品のパネルからArduino Uno R3とブレッドボードをドラッグし、横に並べて置きます。ブレッドボードの内部のつながりがわからなければ、先にブレッドボードとは?を読みましょう。
- ブレッドボードにLEDを置きます。TinkercadのLEDでは、曲がった足がアノード(+)、まっすぐな足がカソード(−)です。足にマウスを重ねると、Tinkercadが名前を表示します。LEDを選ぶと、開いたパネルで色を変えられます。
- 抵抗を追加し、LEDのアノードに直列につなぎます。抵抗を選び、パネルで値を220、単位をΩにします。初期値は1 kΩです。LEDに合った値はLEDの抵抗の計算ツールで求められます。
- ボタン(Pushbutton)を、反対側の足が分かれるように、ブレッドボードの中央の溝をまたいで置きます。
- 線を引くには、ピンか穴をクリックし、次に行き先をクリックします。途中で何もない場所をクリックすると線を曲げられます。抵抗の空いている端をD9に、LEDのカソードをGNDに、ボタンの片方の足をD2に、対角の足をGNDにつなぎます。
- 線に色を付けましょう。電源を赤、GNDを黒にすると、トラブルの原因を探すのがずっと楽になります。それから下のコードを入力し、Start Simulationを押します。
| 接続 | Arduino Uno(Tinkercad) | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| LEDのアノード(220 Ωを通して) | D9 | GPIO 18 | GP14 |
| LEDのカソード | GND | GND | GND |
| ボタン(もう一方の足はGNDへ) | D2 | GPIO 4 | GP2 |
| ポテンショメーターのワイパー | A0 | GPIO 34 | GP26(ADC0) |
| TMP36の中央のピン(Vout) | A1 | GPIO 35 | GP27(ADC1) |
| ポテンショメーターとTMP36の電源 | 5VとGND | 3V3とGND | 3V3(OUT)とGND |
コードを書く:ブロック、ブロック+文字、文字のモード
右上のCode(コード)ボタンでコードのパネルが開きます。パネルの上のドロップダウンには3つのモードがあります。Blocks(ブロック)モードでは、Scratchのようなカラフルなブロックをドラッグしてつなげるので、セミコロンの付け忘れや打ち間違いは起きません。Blocks + Text(ブロック+文字)モードでは、左にブロックが残ったまま、Tinkercadがそこから生成するArduinoのC++のコードが右にリアルタイムで表示されます。ブロックを変えると文字もすぐに変わります。このモードが、ブロックから本物のコードへの一番の橋渡しです。Text(文字)モードでは、Arduino IDEと同じようにC++を直接書きます。ブロックは色ごとに、出力、入力、表記、制御、算術、変数のグループに分かれています。
| ブロック(働き) | 文字モードでの書き方 |
|---|---|
| ピンをHIGHかLOWにする | digitalWrite(9, HIGH); |
| 決まった時間待つ | delay(1000); |
| デジタルピンを読む | digitalRead(2) |
| アナログピンを読む | analogRead(A0) |
| シリアルモニタに表示する | Serial.println(value); |
| サーボを決まった角度に回す | servo.write(90);(Servoライブラリを使用) |
| 繰り返し、もし、そうでなければ | forループ、if、else |
| 変数を作って変える | int counter = 0; counter = counter + 1;(作成と変更) |
文字のコードで最初のプログラム:ボタン、LED、シリアルモニタ
1// Tinkercad ilk program: buton, LED ve Seri Monitör / First Tinkercad sketch: button, LED and Serial Monitor
2const int LED_PIN = 9; // LED + 220 ohm direnç / LED + 220 ohm resistor
3const int BUTON_PIN = 2; // butonun diğer ucu GND'de / other button leg goes to GND
4
5int basmaSayisi = 0; // basma sayacı / press counter
6int oncekiDurum = HIGH; // önceki buton durumu / previous button state
7bool ledAcik = false; // LED durumu / LED state
8
9void setup() {
10 pinMode(LED_PIN, OUTPUT);
11 pinMode(BUTON_PIN, INPUT_PULLUP); // basılınca LOW okunur / reads LOW when pressed
12 Serial.begin(9600);
13 Serial.println("Hazir / Ready");
14}
15
16void loop() {
17 int durum = digitalRead(BUTON_PIN);
18 if (durum != oncekiDurum) { // durum değişti / state changed
19 if (durum == LOW) { // yeni basış / new press
20 basmaSayisi++;
21 ledAcik = !ledAcik; // LED'i tersine çevir / toggle the LED
22 digitalWrite(LED_PIN, ledAcik ? HIGH : LOW);
23 Serial.print("Basma / Presses: ");
24 Serial.println(basmaSayisi);
25 }
26 delay(50); // basma ve bırakmada debounce / debounce on press and release
27 oncekiDurum = durum;
28 }
29}ボタンはINPUT_PULLUPで読みます。Arduinoの中にある約20〜50 kΩの抵抗がピンをHIGHに保ち、ボタンを押すとGNDに引っぱられてLOWになるので、追加の抵抗はいりません。プログラムはHIGHからLOWへの変化、つまり新しく押されたときだけに反応し、そのたびにLEDを切り替えます。シミュレーションを始めたら、コードのパネルの下にあるSerial Monitor(シリアルモニタ)ボタンをクリックし、マウスでボタンをクリックしてみましょう。押すたびにカウンターが1つ増えます。同じ回路を本物のボードで組む方法はArduinoに押しボタンをつなぐ方法で詳しく紹介しています。
シリアルモニタとグラフ:センサーのデータを見る
Tinkercadのセンサーの一番の魅力は、マウスで値を変えられることです。シミュレーション中にTMP36温度センサーをクリックするとスライダーが表示され、温度を−40〜125 °Cの間で設定できます。フォトレジスタの明るさや土壌水分センサーの水分も同じように変えられます。超音波距離センサーやPIR人感センサーでは、前に表示される対象をドラッグして、距離や動きをまねします。TMP36は0 °Cで0.5 Vを出力し、1度ごとに10 mV上がるので、25 °Cでは0.75 Vです。中央のピンをA1に、両端のピンを5VとGNDにつなぎます。下のコードはその電圧を読み、摂氏の温度に変換します。
1// TMP36 ile sıcaklık: Seri Monitör ve grafik / Temperature with TMP36: Serial Monitor and graph
2const int TMP36_PIN = A1; // TMP36 orta ucu (Vout) / TMP36 middle pin (Vout)
3
4void setup() {
5 Serial.begin(9600);
6}
7
8void loop() {
9 int ham = analogRead(TMP36_PIN); // 0-1023 arası ham değer / raw value 0-1023
10 float volt = ham * 5.0 / 1023.0; // gerilime çevir / convert to volts
11 float sicaklik = (volt - 0.5) * 100.0; // 0,5 V = 0 °C ve 10 mV/°C / 0.5 V = 0 °C and 10 mV/°C
12 Serial.println(sicaklik, 1); // yalnız sayı: grafik için / number only: for the graph
13 delay(500);
14}シリアルモニタを開いたまま、パネルのグラフボタンを押すと、送られてくる数値が折れ線グラフで表示されます。センサーのスライダーを動かして、カーブが上がったり下がったりするのを見てみましょう。きれいなグラフにするには、各行に数値だけを表示します。「Temp: 24.5」のようなラベルを付けると、グラフが崩れたり、まったく描かれなかったりします。モニタの下の欄に文字を入力して送信し、コードでSerial.read()で読むこともできるので、キーボードでLEDを点けるプログラムも書けます。シリアル通信のすべてはArduinoのシリアルモニタをご覧ください。
仮想テスターで電圧、電流、抵抗を測る
TinkercadとArduino IDEの最大の違いは、回路を電気的に計算することです。そのため、本物のテスターと同じように測定できます。部品のパネルからMultimeter(マルチメーター)をドラッグします。下の2つの端子のうち、黒がCOM(−)、赤が測定用(+)の端子です。テスターをクリックすると開くパネルで測定モードを選び、シミュレーション中は画面に値が表示されます。
- 電圧:測りたい2点の間にテスト棒を並列につなぎます。たとえば赤をポテンショメーターのワイパーに、黒をGNDにつなぎます。
- 電流:回路を1か所で切り、テスターを直列に入れます。たとえばD9と抵抗の間です。電流モードのテスターを部品に並列につなぐとショートになります。
- 抵抗:測りたい部品を外すか電源を切った状態にして、2本の足にテスト棒をつなぎます。Tinkercadの抵抗には本物のカラーの帯が描かれているので、抵抗のカラーコードツールで読み方を練習できます。
1// Potansiyometre ile LED parlaklığı ve multimetre karşılaştırması
2// Potentiometer LED brightness and multimeter comparison
3const int POT_PIN = A0; // potansiyometre orta ucu / potentiometer wiper
4const int LED_PIN = 9; // PWM destekli pin / PWM-capable pin
5
6void setup() {
7 pinMode(LED_PIN, OUTPUT);
8 Serial.begin(9600);
9}
10
11void loop() {
12 int ham = analogRead(POT_PIN); // 0-1023
13 float volt = ham * 5.0 / 1023.0; // multimetreyle karşılaştır / compare with the multimeter
14 int parlaklik = map(ham, 0, 1023, 0, 255); // PWM değeri / PWM value
15 analogWrite(LED_PIN, parlaklik);
16
17 Serial.print(ham);
18 Serial.print(" ");
19 Serial.print(volt, 2);
20 Serial.println(" V");
21 delay(300);
22}この実験では、回路にポテンショメーターを追加します。両端のピンを5VとGNDに、ワイパーをA0につなぎます。つまみをちょうど真ん中にすると、テスターは2.50 Vを、シリアルモニタは511前後の生の値と2.50 Vを示します。2.5 / 5 × 1023 ≈ 511だからです。両方の値が一致するのを見るのは、analogReadが電圧を数値に変えるしくみを理解する一番の実験です。次に、テスターを電流モードにしてD9と抵抗の間に直列に入れ、ポテンショメーターをいっぱいまで回します。赤のLEDと220 Ωなら、およそ(5 − 2) / 220 ≈ 14 mAになります。同じ計算はオームの法則の計算ツールでもできます。中間の位置では、D9はオン・オフを繰り返すPWM信号を出します。それを見るにはオシロスコープを追加し、赤のプローブをD9に、黒のプローブをGNDにつなぎます。Unoの9番ピンのPWMの周波数は約490 Hzで、analogWrite(128)は半分の時間だけHIGHになる方形波を描きます。PWMの考え方はPWMとは?にあります。
デバッガでコードを1行ずつ実行する
コードがコンパイルできないと、Tinkercadはコードのパネルの下にエラーコンソールを自動で開き、問題の行を強調表示します。メッセージはArduino IDEのものと似ています。コンパイルはできても動きがおかしいなら、デバッガを使いましょう。文字モードで行番号をクリックしてブレークポイントを置き、シミュレーションを始めます。プログラムはその行に来ると止まり、変数にマウスを重ねると現在の値が表示されます。コードのパネルの上に表示されるボタンで、次の行に進んだり、プログラムを再開したりできます。ボタンが2回数えられる理由や、if文の中に入らない理由を探すなら、すべての行にSerial.printを足すよりずっと速く見つかります。よくあるコンパイラのメッセージの意味はArduinoのコンパイルエラーにまとめています。
Tinkercadにある部品とない部品
| グループ | Tinkercadにあるもの | ないもの(代わりに使うもの) |
|---|---|---|
| ボード | Arduino Uno R3、ATtiny、BBC micro:bit | Arduino NanoとMega、ESP32、ESP8266、Raspberry Pi Pico(Unoで試すかWokwiを使う) |
| センサー | TMP36温度センサー、フォトレジスタ、超音波距離センサー(3ピンと4ピン)、PIR、土壌水分、ガス、傾き、曲げ、力のセンサー、赤外線受信モジュール | DHT11、DHT22、MPU6050(温度にはTMP36を使う) |
| ディスプレイと光 | LED、RGB LED、16x2 LCD(パラレルとI2C)、7セグメントディスプレイ、NeoPixelのテープとリング | OLED(SSD1306)とTFTディスプレイ(代わりにLCDで試す) |
| モーターと出力 | DCモーター、ギアモーター、マイクロサーボ、振動モーター、圧電ブザー、リレー、L293D Hブリッジ | L298Nモータードライバモジュール(L293Dを使う) |
| 入力部品 | 押しボタン、スライドスイッチとDIPスイッチ、ポテンショメーター、4x4キーパッド、赤外線リモコン | RC522 RFIDリーダーと指紋センサー |
| ICと基本部品 | 抵抗、コンデンサ、インダクタ、ダイオード、ツェナー、NPNとPNPのトランジスタ、MOSFET、555、74HC595、論理ゲート、LM741オペアンプ、7805レギュレーター | 基本部品はほぼすべてある |
| 通信 | 複数のUnoをシリアル(TX/RX)とI2Cでつなぐ | Wi-Fi、Bluetooth(HC-05)、nRF24L01、GSMモジュール |
| 測定と電源 | テスター、オシロスコープ、ファンクションジェネレーター、電源、9 V・単3・コイン電池 | 時間とともに減る電池や部品の発熱 |




ライブラリを追加するには、コードのパネルのライブラリボタン(ファイルボックスのアイコン)を押します。リストにある約11個のライブラリから1つを選ぶと、コードの先頭に#includeの行が追加されます。DHT.hのようにリストにないライブラリを書くと、コンパイラはファイルが見つからないと報告します。Tinkercadに外部のライブラリをアップロードすることはできません。小さなライブラリなら.hと.cppファイルの中身をコードに直接貼り付けられますが、Tinkercadにないハードウェア用のライブラリはその方法でも動きません。もう1つ大切な点として、例ではTinkercadのI2C LCDはAdafruit_LiquidCrystalライブラリで動かしますが、市販のPCF8574を使ったモジュールはふつうLiquidCrystal_I2Cライブラリと0x27か0x3Fのアドレスで動きます。本物のボードに移るときはその行を変える必要があります。詳しくはI2C LCDディスプレイをご覧ください。
シミュレーションの限界:本物の回路との違い
- タイミング:シミュレーションはブラウザの中で動くので、部品の多い回路や遅いパソコンでは、実際の時間より遅く動くことがあります。その場合、画面上ではdelay(1000)が1秒より長くかかり、millis()はシミュレーション自体の時計を数えます。
- 理想的な部品:Tinkercadのボタンはチャタリングせず、線が外れることもなく、アナログの値も本物の回路ほどノイズがありません。本物のボードでは、チャタリング対策と何回かの読み取りの平均が必要です。
- 電源の限界:シミュレーションでは問題なく動くモーターや多くのLEDも、本物のArduinoではリセットやレギュレーターの過熱の原因になることがあります。ピンから約20 mAを超えて取り出さないこと、モーターは別の電源から給電することをルールにしましょう。
- つながって見えても、つながっているとは限らない:足がブレッドボードの穴にきちんと入っていないと、線はつながって見えても回路は動きません。穴にマウスを重ね、同じ列のつながった穴が強調表示されるか確認しましょう。
- ファイルは1つ、ライブラリは少ない:コードは1つのタブに収まり、外部のライブラリも追加できないので、大きなプロジェクトは整理しにくくなります。
- 特殊な文字:シリアルモニタはUTF-8に完全には対応していないので、アクセント付きの文字や英語以外の文字(日本語など)は文字化けすることがあります。シリアル出力は半角英数字(ASCII)だけにするのが最も安全です。
- 無線なし:Wi-Fi、Bluetooth、インターネットはシミュレーションされないので、TinkercadはIoT(モノのインターネット)のプロジェクトには向いていません。
教員向けのTinkercad Classrooms
- 登録時かプロフィールの設定で、役割を教員にします。クラスの機能は教員アカウントで使えます。
- 上のメニューからClasses(クラス)のページに行き、Create new class(新しいクラスを作成)でクラスを作ります。クラス名、年齢か学年、教科を入力します。
- Add Students(生徒を追加)で生徒の名前を入力します。Tinkercadは各生徒に、クラス内で重ならないニックネームを作ります。長いリストは1人ずつ入力する代わりに貼り付けられます。1クラスには最大250人まで入れます。
- Class Code(クラスコード)ボタンで、クラスのコードとクラスのリンクを表示します。生徒はリンクを開いてニックネームを入力するか、tinkercad.comのJoin Classでコードを入力して参加します。メールアドレスもパスワードも必要ありません。
- クラスのページのDesigns(デザイン)タブで生徒の作品を確認します。生徒の名前をクリックすると、その生徒のデザインを開いて編集できます。
クラスは初期設定でSafe Mode(セーフモード)で開きます。生徒はデザインを公開できず、ギャラリーを検索できず、コメントも見られません。授業の準備には、TinkercadのLearnのセクションにある対話型のArduinoのレッスンやStartersの回路が使えます。よくあるやり方は、先生が例の回路を共有し、生徒がそれをコピーして変えていく方法です。教室に実物のキットがあるなら、まずTinkercadで回路を組み、それから本物の部品で繰り返すと、LEDの逆差しやボードへの間違った給電が目に見えて減ります。
Tinkercadから本物のArduinoに移る
- コードのパネルのダウンロードボタンで、コードを.inoファイルとしてパソコンに保存するか、文字をコピーします。
- Arduino IDEでファイルを開きます。同じ名前のフォルダに移すか聞かれたら、了承します。IDEをまだインストールしていなければ、Arduino IDEのインストールのガイドをご覧ください。
- 「ツール」>「ボード」でArduino Unoを、「ポート」でボードのポートを選び、「書き込み」をクリックします。書き込みに失敗したら、Arduinoにコードが書き込めないときの手順に沿って確認しましょう。
- Tinkercadの図を見ながら、同じピンで回路を組みます。2つ目の画面に回路図の表示を開いておくと楽になります。
- シミュレーションではわからない違いを直します。ボタンにソフトウェアのチャタリング対策を加え、I2C LCDのライブラリとアドレスを変え、TMP36の代わりにDHT11のような別のセンサーを使うなら、それに合わせてコードを書き換えます。
ESP32とRaspberry Pi Pico:TinkercadかWokwiか?
TinkercadにはESP32もRaspberry Pi Picoもなく、Wi-FiやMicroPythonもシミュレーションされません。これらのボードには、ブラウザで動く別のシミュレーターのWokwiが使えます。WokwiはArduino Uno、Mega、Nanoに加えてESP32ファミリーとPicoに対応し、ESP32を仮想のWi-Fiネットワークにつなぎ、Arduinoのライブラリマネージャのほとんどのライブラリを使えます。一方、Wokwiは回路を電気的に計算しません。抵抗の値を変えてもLEDの電流は変わらず、電圧と電流を測るテスターの代わりに、デジタル信号用のロジックアナライザーがあります。まとめると、電子工作の基本はTinkercadで学び、ESP32とPicoのコードはWokwiで試すのが最も効率的です。詳しい使い方はWokwiシミュレーターをご覧ください。
| 項目 | Tinkercad Circuits | Wokwi |
|---|---|---|
| ボード | Arduino Uno R3、ATtiny、micro:bit | Uno、Mega、Nano、ESP32ファミリー、Raspberry Pi Pico、STM32など |
| 電気的なシミュレーション(電流、電圧) | あり。テスターとオシロスコープ | ごく限られる。ロジックアナライザーあり |
| ブロックでのプログラミング | あり | なし |
| ライブラリ | 組み込みのライブラリ約11個 | ライブラリマネージャのほとんどのライブラリ |
| Wi-Fiとインターネット | なし | あり、ESP32とPico Wで |
| MicroPython | なし | あり、PicoとESP32で |
| アカウント | 必要 | 試すだけなら不要。保存にはログイン |
| 向いている用途 | 電子工作の基本、学校の授業、Arduinoの最初の一歩 | ESP32、Pico、IoT、ライブラリを多く使うプロジェクト |
下は、Raspberry Pi Pico用のボタンとLEDのプログラムのMicroPython版です。ピンの表のGP14とGP2の接続で、WokwiでもThonnyを使った本物のPicoでも動かせます。ESP32ではArduinoのコードをそのまま使い、LED_PINを18に、BUTON_PINを4にするだけです。Picoを始めるにはRaspberry Pi Picoとは?を、ESP32についてはESP32とは?をご覧ください。
1# Aynı program Raspberry Pi Pico'da (MicroPython) / The same program on Raspberry Pi Pico (MicroPython)
2from machine import Pin
3import time
4
5led = Pin(14, Pin.OUT) # LED + 220 ohm direnç / LED + 220 ohm resistor
6buton = Pin(2, Pin.IN, Pin.PULL_UP) # butonun diğer ucu GND'de / other button leg goes to GND
7
8basma = 0 # basma sayacı / press counter
9onceki = 1 # önceki buton durumu / previous button state
10
11while True:
12 durum = buton.value()
13 if durum != onceki: # durum değişti / state changed
14 if durum == 0: # yeni basış / new press
15 basma += 1
16 led.toggle() # LED'i tersine çevir / toggle the LED
17 print("Basma / Presses:", basma)
18 time.sleep_ms(50) # basma ve bırakmada debounce / debounce on press and release
19 onceki = durum
20 time.sleep_ms(5)Tinkercadで試せるプロジェクトのアイデア
- 信号機:LED 3個と歩行者用ボタンの交差点です。ステップごとの作り方はArduinoで信号機にあります。
- ナイトライト:暗くなると点くLEDです。本物のボードでのフォトレジスタの使い方はLDR光センサーで紹介しています。
- 駐車センサー:超音波センサーと、近づくほど速く鳴る圧電ブザーです。測定の原理はHC-SR04距離センサーで解説しています。
- サーボの制御:ポテンショメーターでサーボの角度を決めます。サーボモーターのコードはTinkercadでも動きます。
- 暗証番号ロック:4x4キーパッド、LCD、サーボを使ったドアロックです。キーパッドの記事で使っているKeypadライブラリはTinkercadにもあります。
- 少ないピンで多くのLED:74HC595シフトレジスタで、3本のピンから8個のLEDを動かします。詳しくは74HC595をご覧ください。
- 2台のArduinoの会話:2台のUnoのTXとRXの線を交差させてつなぎ、片方からもう片方へメッセージを送ります。Tinkercadは複数のボードを同時にシミュレーションできます。
- 555の点滅回路:マイコンなしで点滅するLEDを作り、オシロスコープで周波数を測ります。計算は555タイマーにあります。
よくある失敗と対処法
| 症状 | 考えられる原因 | 対処法 |
|---|---|---|
| LEDがまったく点かない | LEDが逆、または両方の足がブレッドボードの同じ列にある | 曲がった足(アノード)を抵抗へ。足を別の列に差す |
| LEDがとても暗い | 抵抗が220 Ωではなく220 kΩになっている、または初期値の1 kΩのまま | 抵抗を選び、値と単位を確認する |
| LEDに警告か爆発のアイコンが出る | 抵抗がなく、電流が20 mAを超えている | LEDに直列に220〜330 Ωの抵抗を入れる |
| シリアルモニタに何も出ない | Serial.begin()がない、またはモニタが開いていない | setup()にSerial.begin(9600)を足し、シミュレーション中にシリアルモニタを開く |
| グラフに何も表示されない | 数値の横に文字を表示している | Serial.println()で数値だけを送る |
| コンパイルエラー:ライブラリが見つからない | Tinkercadにないライブラリ(DHT.hなど)をインクルードした | リストにあるライブラリか、同等の部品を使う |
| ボタンの動きが逆 | INPUT_PULLUPでは押している間ピンがLOWになる | LOWのときの条件を書くか、外付けのプルダウン抵抗を使う |
| シミュレーションがとても遅い | 部品が多い、長いNeoPixelのテープ、頻繁すぎるSerial.print | 回路を簡単にし、ループに短いdelayを入れ、ほかのタブを閉じる |
Tinkercadは、無料で危険なくArduinoを学び始めるのに最適な場所です。回路を組み、測定し、コードを1行ずつ追い、準備ができたら同じコードを本物のボードに書き込めます。仮想の世界で動かせた回路が増えるほど、机の上での最初の挑戦も楽になります。BlueGraysアプリには、LEDの点灯や信号機から、ボタンとLDRのプロジェクト、HC-SR04での距離の測定、2台のArduinoの通信まで、ステップごとの回路図とコード付きのプロジェクトがたくさんあり、Tinkercadで組んだ回路を本物の部品で再現できます。もっとアイデアがほしいなら、Arduinoのプロジェクトのアイデアのリストを見てみましょう。
よくある質問
Tinkercadは無料ですか?
はい。Tinkercad Circuitsを含め、Tinkercadのツールはすべて無料で、必要なのはAutodeskのアカウントだけです。生徒は、先生からもらったクラスのコードで、メールアドレスなしでも参加できます。インストールは何も必要なく、最新のブラウザとインターネット接続があれば十分です。
TinkercadにESP32やRaspberry Pi Picoはありますか?
いいえ。Tinkercadでプログラムできるボードは、Arduino Uno R3、ATtiny、BBC micro:bitだけです。ESP32、ESP8266、Raspberry Pi Picoをシミュレーションするには、ESP32のWi-FiやPicoのMicroPythonにも対応したWokwiが使えます。
Tinkercadにライブラリを追加できますか?DHT11は使えますか?
Tinkercadに外部のライブラリをアップロードすることはできず、Servo、LiquidCrystal、Adafruit NeoPixel、IRremote、Keypadなど、コードのパネルにある約11個のライブラリしか使えません。DHT11とDHT22のセンサーも部品のリストにありません。温度を測るには、TMP36センサーをanalogReadで使いましょう。
Tinkercadのコードは本物のArduinoで動きますか?
はい。Tinkercadは標準のArduinoのC++のコードをコンパイルするからです。コードのパネルから.inoファイルをダウンロードし、Arduino IDEで開いてボードに書き込みます。必要になるのは、Tinkercad専用のライブラリ(I2C LCD用のAdafruit_LiquidCrystalなど)を実際のモジュールに合ったものに替えることと、ボタンにチャタリング対策を加えることくらいです。
TinkercadとWokwiはどちらがいいですか?
それぞれ得意なことが違います。Tinkercadは回路を電気的に計算し、テスターとブロックでのプログラミングがあるので、電子工作の基本や学校の授業に向いています。WokwiはESP32、Pico、Wi-Fi、幅広いライブラリへの対応により、発展的なプロジェクトやIoTのプロジェクトで力を発揮します。
生徒はどうやってTinkercadにログインしますか?
先生からクラスのリンク、またはクラスのコードとニックネームをもらいます。リンクを開いてニックネームを入力するか、tinkercad.comでJoin Classをクリックしてコードを入力し、続いてニックネームを入力します。この方法ならメールアドレスもパスワードも必要ありません。自分のアカウントをすでに持っているなら、ログインしてダッシュボードからクラスに参加しましょう。
この記事を読んだ後に作れるプロジェクト
全プロジェクトを見る
LEDの点滅
電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

信号機
毎日道路で見かける信号機の小さな模型です。赤が2秒点灯し、黄が一瞬点灯した後、緑が2秒点灯します。その後、再び黄を経て赤に戻り、この動作を繰り返します。3個のLEDを順番に点けたり消したりしながら、タイミングの組み立て方を学びます。

ボタンでLEDを点灯(押している間のみ)
呼び鈴のように、押している間は点灯し、離すと消灯します。Arduinoはボタンの状態を常に読み取り、押されている間はLEDを点灯させ、指を離した瞬間に消灯させます。このシンプルな回路で、ボードが外部からの操作を検知する仕組みを学べます。

LDRで光の強さを測定
部屋の明るさを数値で見てみませんか?光に反応する小さな部品、LDRで周囲の光を測定し、Arduinoが0.5秒ごとにその値をコンピューターの画面に表示します。手で覆うと数値が変わる様子を確認できます。自動で点灯する常夜灯などのプロジェクトへの第一歩です。

ブザーの使い方
呼び鈴やアラームがどうやって音を出すのか、気になったことはありませんか?Arduinoが小さなブザーを短い間隔で鳴らし、音を出す、止める、を繰り返します。電気で音が生まれる仕組みを学び、メロディーを演奏するプロジェクトへの第一歩を踏み出せます。

HC-SR04で距離を測定(シリアルモニタ表示)
HC-SR04センサーは、コウモリが暗闇で道を見つけるのと同じ仕組みで動作します。人には聞こえない音を出し、その反響を捉えて前方の物体までの距離を測ります。Arduinoは0.5秒ごとに距離をセンチメートル単位でコンピューターの画面に表示し、3〜100センチメートルの測定値を示します。駐車センサーや障害物を避けるロボットなどのプロジェクトの基礎になります。

サーボモーターの使い方
小型サーボモーターのアームが、一方の端、中央、もう一方の端の3つの位置へ順番に回り、それぞれの位置で2秒間止まります。Arduinoが保持する角度をモーターに指示すると、モーターはその位置まで動いて止まります。ロボットアームや自動開閉するふたが動く仕組みを学べます。

2台のArduinoで一方向通信
2台のArduinoを1本のワイヤーで通信させます。一方のボタンを押すともう一方のLEDが点灯し、もう一度押すと消灯します。送信側のボードがボタンの押下を短いメッセージで伝え、受信側のボードはそのメッセージを受け取るとLEDの点灯と消灯を切り替えます。機器同士が情報を伝える仕組みを、最もシンプルな形で確かめられます。
ほかの記事
BlueGraysアプリ
この回路をスマホでステップごとに作る
回路図、コード、部品リストを1つの画面で確認できます。Arduino、ESP32、Picoのプロジェクトを200件以上用意しています。

