UNOLED(発光ダイオード)抵抗ブレッドボードLチカ配線してみるスケッチ(プログラム)を書いてみるスケッチの意味まとめArduinoって何?まずは、Arduinoについて簡単にご紹介します。Arudinoは、イタリア製のオープンソースなマイコンボードです。オープンソースというのは文字通り、ソースがオープン。Arduino互換ボードが多くのメーカから発売されています。Arduinoは初心者にも取っつきやすいマイコンで、筆者もこれでマイコンデビューしました。UNO(ウノ:イタリア語で”1”の意味)が最初の一台としては最適でしょうか。このブログでも、基本的にはArduinoUNOを使って記事を書いていく予定です。製造された時期によって細かくマイナーチェンジされてますが、基本的なところは変わってません。computer)で、ここがいわば脳みそに当たる部分です。このマイコンにスケッチ(Arduinoでは、プログラムのことを”スケッチ”と呼びます。)を書き込んで動作させます。電源の取り方は色々可能ですが、一番基本になるのはUSBからの給電でしょうか。PCのUSBポートから直接動かせます。ACアダプタ(7~12V推奨)用コネクタも搭載しているので、PCがなくても家庭用コンセントから起動できます。Vinピンは電源の+と共通なので、ここを使えば電池ボックスからも給電可能です。内部にレギュレータ回路が搭載されていて、いずれの給電方法でも一定の3.3V,5Vの出力が利用できます。本体の周囲にある黒い穴はピンと呼ばれ、ここに様々な部品やセンサを接続して使用します。大まかに3つのブロック(電源関連ピン、アナログ入力ピン、デジタル入出力ピン)に分かれていて、用途によって使い分けていきます。詳しくはArduinoのHP等に詳しく紹介されていますので、より深く理解したい場合はそちらを参照してください。LED(発光ダイオード)続いてはLEDについてです。日本語で言うと発光ダイオード。その名のとおり光るダイオードで、本当にたくさんの種類があります(色の違いや明るさの違いなど)。安いものだと一個数円程度で入手できます。端子が2本あって、それぞれ長さが違います。足の長いほうの端子をアノード、足の短いほうの端子をカソードといって、アノードに+、カソードに-の電圧を加えることで発光します。この向きを間違えてしまって光らないことが稀に良くある。抵抗は、ひょうたんのような形の部品。LEDを扱うときには必ずセットで使用します。中学校で習ったオームの法則でいうところのRですね。名前の通り電流を流しにくくする(電流の流れに抵抗する)部品で、LEDに過電流が流れるのを防止するために使用します。(LEDはデリケートな部品なので、ちょっと電流を流しすぎると壊れます)LEDを守るという役割から、保護抵抗と呼ぶこともあります。部品表面にはカラフルな腺が何本も描かれています。これはカラーコードというもので、色で抵抗値を表しています。詳しい値の読み方はここでは割愛します。ググれば山ほど記事が出てくると思いますので、それを参照してください。適切な値の決め方には簡単な計算が必要ですが、とりあえず220~1kΩあたりを使っておけば大丈夫だと思います。Arduino関連の書籍とか記事をみると抵抗を使わずに接続しちゃってるのが結構あります。Arduinoのデジタル出力電流はせいぜい40mAくらいなので、壊れないLEDの方が多いという判断なんだと思いますが、個人的にはちゃんと抵抗を接続することをおススメします。いつか痛い目をみます。ブレッドボードブレッドボード直訳するとパン板でしょうか。図のように沢山の穴が開いていて、そこに部品を差し込んでいくだけで回路が組めちゃう素敵アイテムです。何度でも抜き差しできるから、配線ミスを気にせず回路を組むことができます。図のように太線の部分が内部で接続されているから、同じ線上に部品を指せば接続されるというしくみです。逆に、同一線上に部品の両端の足を指すと短絡(ショート)してしまうので注意が必要です。Lチカ配線してみる今回は電子工作の第一歩ということで、Lチカに挑戦します。「LEDをチカチカさせる」でLチカですね。何はともあれ、次のように配線してみます。実を言うとArduinoには内蔵LEDというのがあって、わざわざ接続しなくてもLチカは可能なんですが、でもそれだと電子工作感がないので実際に配線してみましょう。下の図でいうと、LEDは右側の足がアノード(長い方)になります。逆向きだと光らないので注意が必要です。数本スケッチ(プログラム)を書いてみるArduinoのスケッチは独自の言語(C言語ベース)で記述します。スケッチにはいくつか決まりごとがあるのですが、面倒なことはひとまず置いておいて、とにかく下記のスケッチを作成してArduinoに実行させてみましょう。delay(200);}LEDがチカチカした!ら成功です。うまくいかな場合は、落ち着いて配線のミス(LEDの向き、接続ピン番号など)、スケッチのミスを良く確認しましょう。うまく動かないと焦りますが、問題点を見つけて修正していく作業によってスキルアップしていきます。デバッグこそマイコンの醍醐味です。loop()っていう関数があります。名前の通りsetup関数はスケッチを正常に動作させるための準備の命令を記述する部分で、スケッチの初めに一度だけ実行されます。それに対してメインの動作を記述するのがloop関数で(C言語でいうmain関数)、点滅させる命令はここに記述します。ここにスケッチ本体を記述}では今回のスケッチを関数ごとにみてみましょう。今回はLEDを一つ点灯させるだけなので簡潔です。pinMode(13,OUTPUT);}pinModeという命令を使って、Arduinoの13番ピンを出力ピンに設定しています。13番ピンというのはLEDを配線したピンですね。この命令を忘れてもLEDは光るけど、ものすごく暗くなります(ピンモードの設定によって内部抵抗が変化するため)。LEDを光らせるとか、モータを回すとか、Arduinoからの信号で何かを動かしたい場合にはOUTPUTにしておく、って感じで覚えましょう。OUTPUTがあるということはINPUTもありますが、それはまた別の機会に。delay(100);}実際に点滅させる命令ですね。digitalWrite(13,HIGH)は、「13番ピンからデジタル信号を出力します」という意味です。ここでLEDが点灯します。delay(100)は、プログラムを待機させる命令。Arduinoに限らずマイコンのプログラム処理は超高速なので、プログラム上でわざと待ち時間を設定します。100というのは待機時間で、単位はミリ秒(1秒=1000ミリ秒)。「100ミリ秒待ちます」という意味ですね。digitalWrite(13,LOW)は、「13番ピンのデジタル信号を止めます」となります。HIGHの反対でLOWです。ここでLEDが消灯します。delay(100)で「100ミリ秒待ちます」Arduinoのloop関数は、最後まで実行すると自動的に最初に戻って繰り返すようになっているので、またdigitalWrite(13,HIGH)に戻ってずーっと繰り返されます。結果として、LEDが点滅し続けるということです。こんな具合にLEDの点滅を記述することができます。ここまでの解説でわかる通り、点滅の速さを決めているのはdelay()の中の数字。ここを大きくすれば点滅が遅く、小さくすれば点滅が速くなるということです。適当に数値をいじって試してみましょう。まとめこんな具合でみごとLEDの点滅・Lチカが実現できました!素晴らしい!自分の書いたプログラム通りにモノが動くと嬉しいですよね。この嬉しさがマイコンを勉強する糧になります。UNOはAmazonでも買えます。Uno最初に買う参考書ならこちらがおススメ。温度センサLM35を使うArduinoでNOT・AND・OR回路を再現するArduinoマイコンの基本まとめこの記事を書いた人GOアラサーパパ30代、子育てと仕事に奮闘しつつ、人生を楽しむためのプロジェクト。電子工作・ジャズ(演るのも聴くのも)、カメラが趣味。あと人生について思い悩むこと。コメントをキャンセルメールアドレスが公開されることはありません。Lチカ!複数のLEDを操るGO子育てと仕事に奮闘するアラサーパパ。妻とともに3歳・0歳の息子たちと日々向き合いながら、楽しく生きてます。ついて二児の子育てと仕事に奮闘しながら、充実した人生を送るためのプロジェクト。30代の子育てパパが頑張って執筆しています。