はじめてのマイコンにチャレンジ! UIAPduinoを使って、LEDをチカチカ光らせる「Lチカ」をやってみよう。
準備からプログラムまで、順番に説明していきます。

今回つかったLEDチカチカのINOファイルはこちらからダウンロードできます。

また、動画でも解説しているのでチェックしてみて下さい↓↓↓
UIAPduino_LED

Arduino IDEのインストール

Arduino IDE(アルディーノ アイディーイー)は、マイコンにプログラムを書くためのソフトです。
ArduinoIDEで書いたプログラムを、マイコンに転送することができます。


Arduinoの公式サイトからIDEをダウンロードしましょう。
https://www.arduino.cc/en/software/

WindowsやMacなど、自分の使っているパソコンを選びます。

image1


DOWNLOAD
ボタンをクリックするとダウンロードが始まります。

ダウンロードが終わったら、ダウンロードフォルダに保存された
「arduino-ide_x.x.x_Win….exe」をダブルクリックしてインストールしましょう。

image2


ボードマネージャの追加

ボードマネージャは、マイコンの種類をArduino IDEに教えるしくみです。
Arduino IDEは、そのままだと「どのマイコンに命令を送るのか」を知りません。

今回使うCH32V003ボードの情報を追加して、プログラムを書き込めるようにしましょう。


ArduinoIDEを起動したら、左上の「ファイル」→「基本設定」を開きます。

image3


「追加ボードマネージャのURL」に、以下を入力します。

https://github.com/YuukiUmeta-UIAP/board_manager_files/raw/main/package_uiap.jp_index.json


すでに他のURLがある場合は「,(カンマ)」で区切るか、右のアイコンから追加できます。

入力が終わったら「OK」を押します。

言語が英語になっている人は
エディター言語から、言語を日本語にすることができます。

image4

ボードマネージャのインストール

①ArduinoIDE左側の「ボードマネージャ」を開きます。

image5


②検索欄に「CH32」と入力すると、UIAPduinoが表示されます。

③「インストール」をクリックしましょう。



image6

インストール中は下に黒い画面(出力ウィンドウ)が表示されます。

Platform UIAP:ch32v@1.0.42 installed

と表示されたら完了です。


ボードの設定

使用するマイコンを選びます。

「ツール」→「ボード」→「UIAPduino」→「Pro Micro CH32V003」を選びましょう。

image7


ボードを選択すると、ツールの下の方にボードの設定があらわれます。

図のようになっているか確認しましょう。(はじめは以下の設定になっているはずです)

  • Clock Select → 48MHz Internal
  • Upload method → minichlink
image8

設定が完了すれば準備OKです。

Clock Select

マイコンの動くスピードを決める設定です。
この速さが変わると、プログラムの時間の感じ方も変わります。

Upload method

プログラムをマイコンに送る方法です。
今回はUSBを使うので「minichlink」を選びます。


Lチカのプログラムを書こう

ArduinoIDEにある以下の部分にプログラムを書きます。

■ サンプルコード

//ここで定義や変数を用意する

void setup(){
 //ここにスタート時のプログラムをかく
}

void loop(){
 //ここにループするプログラムを書く
}


ピンの番号を決めよう

ピンには番号があり、それぞれ役割を持っています。

「#define」を使うと、ピンに名前を付けられます。

void setup()のまえの、定義や変数を用意するエリアに、以下のようにプログラムします。

■ サンプルコード

#define LED 2 // 2番ピンをLEDという名前でよぶ


ピンから電気を流そう

ピンは以下の2つの使い方があります。

  • OUTPUT(出力)
  • INPUT(入力)

今回はLEDを光らせるのでOUTPUTに設定します。
setup()の中に、このようにプログラムしましょう。

■ サンプルコード

void setup() {
  pinMode(LED, OUTPUT);
}


loop()の中は、くりかえし実行されるプログラムです。
LEDのピンをHIGH(高い電圧)にしたり
LOW(低い電圧)にしたりするのをくりかえしてみましょう。

■ サンプルコード
void loop() {
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}

💡 digitalWrite()

ピンに電気を流すかどうかを決める命令です。
ピン番号とHIGHかLOWを指定します。

HIGHにすると電気が流れて、LOWにすると止まります。
LEDの場合は、HIGHで光って、LOWで消えます。

⏱ delay()

プログラムを少しの間だけ止める命令です。

数字は「ミリ秒(1000分の1秒)」で指定します。
たとえば、1000と書くと1秒止まります。


書き込みしてみよう

チェックマーク(✔)を押してエラーが出ないか確認します。

image11

エラーがあれば、何行目でエラーになったかが表示されるので
タイプミスなどを確認します。

{}カッコが少なかったり
セミコロンが抜けていたりすることがあるのでチェックしてみましょう。


エラーがなければ、USBを接続します。

リセットボタンを押しながらUSBを接続し、すぐ離します。

image13 - コピー


→ボタンを押すと書き込みが始まります。

「Image written.」と表示されれば成功です。
image12


書き込みがおわったら、もう一度UIAPduinoのリセットボタンを押してみましょう。
(長押しではなく普通にボタンを押せばOK)

image13

UIAPduino上のオレンジ色のLEDがチカチカしたら成功です!

⚠ エラーが出た場合

Could not initialize any supported programmers

この場合は、マイコンが書き込みモードになっていません。
リセットボタンを押しながら、USBを挿し直してみましょう。


LEDをつないでみよう

マイコンボード上のLEDがチカチカできたので、
ボードから生えているピンにLEDをつないでチカチカさせてみましょう。

マイコンに刺しているUSBは抜いておきます。
ブレッドボードに、図のように抵抗とLEDをつないでみましょう。

image14

LEDは足が長いほうが+極です。
LEDは電気を流しすぎると壊れてしまうので、LEDの前に抵抗をつなぎます。

2番ピン → 抵抗 → + LED - → GND 
の順番で線がつながっているかを確認しましょう。 


抵抗の決め方

LEDにどれくらい電流を流すかは、LEDの仕様を見て決めます。 


LEDの仕様:

  • 順電圧:約2V(LEDを光らせるのに必要な電圧)
  • 順電流:約30mA(LEDが壊れる上限の電流) 


UIAPduinoのピンは3.3Vの電圧なので

3.3V - 2V = 1.3V

この1.3Vを抵抗で調整します。


10mA(=0.01A)流したいときは

1.3 ÷ 0.01 = 130Ω

130Ω となります。


10mAよりはすこし余裕があるので100Ω(茶黒茶金のラベル)の抵抗を使います。


もしLEDの仕様がわからないときは、もうすこし大きい抵抗(300Ωくらい)にして
LEDが暗ければ、抵抗を徐々に減らしていけばOKです。

抵抗が小さいとLEDは明るく、抵抗が大きいとLEDは暗くなります。

動作確認

USBケーブルをマイコンボードに差し込んでみましょう。
2番ピンから出た信号が、LEDをチカチカさせていたら成功です。

image15


LEDが光らないときは


・パーツを刺す場所を間違えていないか
・LEDの向きが逆になっていないか
・GNDにもきちんと接続しているか

などをチェックしてみましょう。 


image16

ブレッドボードは、図のように中でつながっています。LEDを縦向きに設置してしまうとプラス極にもマイナス極にも線がつながってしまうのでうまく動きません。 
image17


抵抗やLEDは電気の通り道なので、
図のように、ラインにまたがって部品を設置することで、
それぞれのラインがつながっていると考えましょう。
電気の通り道を考えながら、もういちどパーツを刺してみましょう。 

まとめ

LEDがチカチカ光りましたか?

マイコンは、プログラムでいろいろな動きを作れるのが楽しいところです。

点滅の速さを変えたり、たくさんのLEDを同時に光らせたりして、いろいろ試してみましょう!