其の2「Arduino」を使ったマイコンプログラミングを子供と一緒に学習するブログ。子供と一緒に楽しみながら気長にアップしてく予定です。フォトレジスタは別名で下記と呼ばれることもあります。22でも説明しましたが、要は「光センサー」です!本Lesson「其の2」は「其の1」に回路を追加して遊びます。「其の1」では、基本的なコードを理解しました。21で使用した、8bitシフトレジスタとLEDの回路を利用して遊びます。本Lesson解説で使用しているのはArduino互換品です。互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。そのため互換品の品質も悪くなく、それでいて値段は安いです。正規品本体の値段程度で豊富な部品が多数ついています。22で説明しています。基本からという方はそちらを参照お願いします。「其の2」では、基本的な説明は省略します。フォトレジスタは別名で色々な言い方がありますが、要は「光センサー」です。【フォトレジスタ編】についてはLessonを2回に分けます。「其の1」では、基本的なコードを理解します。「其...omoroya.comフォトレジスタ(Cdsセル)の手持ちがない方は以下からどうぞ。光の明るさ(照度)をLEDの点灯数を使って認識できるスケッチを作成する。其の2ではフォトレジスタとLEDで遊びます。準備ではLessonの準備に取り掛かりましょう。今回は部品が多いです。21で使用した部品を使います。下記を、一読しておくと本Lessonの実践に取り組みやすいです。シフトレジスタによる複数LED制御編」です。複数のLEDを直接Arduinoに抵抗と合わせて接続して制御するということではありません。シリアルモニタによるLED制御編」です。シリアルモニタを利用してPCからLEDを制御することに挑戦です。PCから直接UNOを制御することで、LEDのON、OFF制御をさせるといったことか可能です。wire、抵抗は今後も頻繁に利用します。–メス」の3種類を揃えておくことをお勧めします。抵抗も単品で揃えるよりはセットをおすすめします。22で説明しています。本Lessonでは省略します。仕様、原理など詳細は以下で確認お願いします。フォトレジスタは別名で色々な言い方がありますが、要は「光センサー」です。【フォトレジスタ編】についてはLessonを2回に分けます。「其の1」では、基本的なコードを理解します。「其...omoroya.com念のため写真のみ掲載しておきます。下図がフォトレジスタ(Cdsセル)です。フォトレジスタは抵抗器と同じく極性がありません。向きを気にすることなく使用することができます。22と同様にフォトレジスタ(Cdsセル)と直列につなぐ抵抗は10kΩを使用します。フォトレジスタ(Cdsセル)と直列につないで分圧した電圧を読み取るために使用します。本Lessonにて、10kΩを使用した場合に、LED点灯数が思ったように変化しない場合は、抵抗値を変えて読み取り値の範囲の調整をしてください。20で使用した、8bitシフトレジスタとLED:8個がポイントです!最初に回路図を確認してください。次に、回路図に合わせて部品を接続します。最後にコードを書いて、フォトレジスタ(Cdsセル)で受け取る光の強さをLEDの光る数で体感しましょう!前回も言いましたが・・・フォトレジスタは使い勝手が良いので、遊ぶには持って来いの電子部品ですArduinoのピン配置を確認したい方は番外編02を参照してください。arduinoの入門編を書いていて、arduino自体の説明をしたいと考えていました。arduino自身のことを理解しておいた方が良いですよね。いうことで番外編...omoroya.com回路図フォトレジスタ(Cdsセル)と抵抗が直列に接続されアナログ入力のA0から値を読み取るようになっています。その読み取った値にて、搭載した8個のLEDの点灯する数を制御する回路です。22の解説をもう一度します。抵抗値は10kΩで一定なのに対して、フォトレジスタ(Cdsセル)は抵抗値が変化します。そのため、分圧比がかわることによって読み取る値も変わるという仕組みです。22と異なり抵抗とCdsセルが逆になっていることに注意してください。LEDが点灯する方向としているためです。式に表すと下記となります。VoutがA0に入力される電圧。こちらがブレッドボード図。wireのみで結線できます。回路図は「fritzing」を利用しています。「fritzing」の使い方は下記を参照してください。fritzingUNOの実際の回路を写真で掲載しても、接続がわかりずらいかなと考えていました。前々から「fritzing」を利用して回路を描くことで、わかりやすくしたいと考えていました。下図に示すように、用意した部品を使用して接続しましょう。照度の読み取り部分の部品は、「フォトレジスタ(Cdsセル)」と「10kΩの抵抗」。読み取った値によってLEDを点灯させている部分の部品は、「LED」と「8bitシフトレジスタ」です。wireを使用してUNOと接続しましょう。使用するポートは以下となります。アナログ入力の「0」、デジタル入出力の「9」「11」「12」。電源の「5V」、「GND」。穴に挿入しづらいときは、ラジオペンチなどを使用してください。コードの書き込み接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。コマンド説明あたらしくでてきたコマンドは特にありません。サンプルコードの以下の部分について補足説明します。※このコードの中で一番わかりづらい?かなと思いましたので・・・。ついて動作の詳細を解説していきます。これは、ビット演算子の1つでビットシフト演算子と言われるものです。~7まで繰り返します。ledsの初期値はB00000000とします。B11111111というような構文となっています。8」の8の部分は変数としています。することで、1になる数が変わりLEDの点灯数も変わる仕組みです。2進数表記で記載しましたが、10進数表記で記載しても問題ありません。ビット数ビット数で指定した数だけ、値を左へシフト。値は、byte型、int型、long型などの整数。ビット数は32以下の整数。ビット数ビット数で指定した数だけ、値を右へシフト。値は、byte型、int型、long型などの整数。ビット数は32以下の整数。サンプルコードサンプルコードを下記に示します。Cdsセルの照度をLED点灯数に変換するスケッチ//https://omoroya.com///スケッチ内のbyte型はわかりやすいようにBxxxxxxxxで表現していますが//10進数で記述してもかまいません。//cdsに抵抗は0にはならない。//そのため、その分を考慮して8ではなく9にしている。//シリアルモニタの値を利用して抵抗値なと調整してください。//シリアルモニタで値を確認して調整したい場合下記のコメントをはすしてください。読み取り値が8,9の場合は8とする。シフトレジスタ関数の呼び出し}動作確認では、さっそく動作を確認していきます。変化を確認するために、フォトレジスタ(Cdsセル)に光をあてたり、手で光をさえぎったりしてください。部屋の灯り手で遮るライトを当てる照度によってLEDの点灯する数がかわれば成功です。まとめ今回は以下の内容について理解してもらいました。1.光の明るさ(照度)をLEDの点灯数で認識できるスケッチを作成する。いかがだったでしょうか。おもしろかったと個人的には思います。疑問点、質問などありましたら気軽にコメントください。24は、【7セグメントLED編】です。【7セグメントLED編】7セグメントLEDは、数字情報の表示に特化したデジタル表示モジュール。電光掲示板などに使われている電子部品です。身近なものでは、デジタルの時計の表示などにも使われているでしょうか。7セグメントLEDを使いこなせれば、表示機器として色々遊べそ...omoroya.com電光掲示板などに使われている、「数字を表示する電子機器」です。こちらも、使いこなせるようになれば遊ぶにはもってこいの電子部品です。原理は単純です!お楽しみに。最後に疑問点、質問などありましたら気軽にコメントください。この電子部品の解説をしてほしい!などなどなんでもOKです。リンク切れなどあればコメントいただけると助かります。Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。Arduino入門編で使用しているUNOはAmazonにて購入可能です。互換品とは言え、Arduinoはオープンソース。複製して販売するのもライセンス的に問題なし。そのため互換品の品質も悪くなく、それでいて値段は安いです。正規品本体の値段程度で豊富な部品が多数ついています。学習用、遊び用、お試し用には安価な互換品がおすすめです。Yahoo!上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。Yahoo!Amazonでお得に買う方法Amazonでお得に購入するなら、Amazonギフト券がおすすめです。現金でチャージするたびに、チャージ額に応じたポイントが付与されます。本Lessonでは、液晶ディスプレイ+電子部品に挑戦です。今回は超音波センサで取得した値を液晶に表示させることが目標です。これで、ちょっとした「距離計」の完成です。リレー(relay)とは、単純に言えばスイッチのこと。継電器とも呼ばれることもあります。ただのスイッチではなく電気的に制御するスイッチ。小学校でもプログラミングが始まる。我が家の子供にも、プログラミングを教えられないか。プログラミングしてもつまらない。目に見える形で楽しみたい!そこで、Arduinoの出番。【ジョイスティック編】(1)「Arduino」を使ったマイコンプログラミングを子供と一緒に学習するブログ。ジョイスティック編です。2軸ジョイスティックを利用してX軸、Y軸、電圧値を読み取ることで2軸ジョイスティックの動作を理解します。【ジョイスティック編】(2)「Arduino」を使ったマイコンプログラミングを子供と一緒に学習するブログ。ジョイスティック編(2)です。Lesson13で学習したことを利用して、ジョイスティックで4色のLEDを制御します。【プッシュボタンスイッチ編】このLessonでは、機械的にスイッチを使ってLEDをオン、オフさせるわけではありません。スイッチを「押した」「押してない」という行為をデジタル信号としてUNOに認識させるということです。其の2の記事をアップしました。コメントをキャンセルメールアドレスが公開されることはありません。