sidetech

インフラエンジニアの寄り道メモ。

Arduinoは関係ないけどLEDの電流の話

前回の投稿の流れで話しておきたい事があったもので。

 
『LEDは熱に弱い』って聞いたことがありませんか?一般的に言われているのは放熱問題ですね。LEDって熱を持たないのに何故に放熱?って思っている方はWikiってもらうとして、そんな熱の話を別の角度から見てみます。私が言うまでもないのですが、LEDは熱によって電流値が変化するんです。
 
Led01
テスターを電流を測れるアンペアモードに。電流を測る場合は、その流れる区間に入れなければならんので、結構気を使わねばならんす。
 


電気テスター ダブルSMD ICテストフック リードケーブル フックタイプ 1M ペア

そして、電子パーツはちっさいので、前回はワニ口クリップを紹介しましたが、今回は「マイクロフック」をご紹介。両端がマイクロフックになっているので、ブレッドボード上だけでは処理出来ない時に便利です。ちょっと別経路のテストをしたいとか。色々使えまっする。
 
 
Led02
LEDを点灯させた所、2.59mA流れていました。ただし、1kΩの抵抗を入れた状態です。手頃な抵抗がなかったもんで・・・(買い足さねば)。
 
しかし、ここで熱を加えると・・・
Led03
ドライヤーでLEDを温めます。LEDの寿命を痛める行為ですが実験が大事。
ドライヤーも最高温度のモードではないですが、ひたすら熱を与えたところで、数値が安定したのでパシャリと撮った所、2.8mAでした。
 
1kΩの抵抗が入っていた事もあり、変化量がそれほど多く感じないかもしれませんが、電流が0.21mAも上昇しました。
 
ここでは何が言いたいかというと、定格電流ギリギリでLEDを発光させていたとします。このちっさいLEDだと大体20mAが相場のようですが、ギリギリの電流を狙って抵抗値を決めてしまうと、LEDに熱が加わった時に、許容電流を超えてしまう現象が出るということですね。ココらへんはLED大好きな方々のブログとかを見るとよーくわかります。
 
例えとしてLEDを引き合いに今回は出しましたが、この電流をコントロール出来たらどんだけ楽になるでしょうね。そう思っちゃった人々が読む雑誌があります。
 

トランジスタ技術 2016年 6月号

 
トランジスタってトランスファー(伝送)とレジスタ(抵抗)の合わせ語なんです。
このブログでは、まだそっち側までに行けません。もう少し基礎学習積んでいきましょ。
 
さて、今回も脱線状態でしたが、ここまで前フリがあれば、抵抗器の話も少し考えやすく入るかな?と思います。
 

Arduinoで光センサー(CdSセル)スイッチを使う

タイトルにいつも悩みます。。。[E:despair]
光センサースイッチみたいな表現を使っていますが、身近に感じる言葉として何が良いのか悩みました。
Ardunio052801



タクトスイッチを取っ払って、光センサーに入れ替えました。。。でも画像で伝えるのって大変ですね。 光を浴びている間はON、暗くするとOFFみたいな感じ?



伝わりにくいなぁ・・・。この後、LEDの点滅速度を光センサーを使ってやってみたりするんですが・・・プログラムはそうなっても画的にはなにもかわりませんね・・・[E:coldsweats01]



Ardunio052802



てことで、光センサーを使ってLEDの明るさを変えてみます。



Ardunio052803


Ardunio052804



なんとか表現出来てますね[E:coldsweats01] そして、この結果の面白さが全く伝わらない[E:coldsweats02]



 



ただ、光センサーによってスイッチの代わりになったのは解ったと思います。これが悩んだタイトルの答えです。



ただ、そう認識して欲しい訳ではなく、ここからが今回の本題です。



 



Ardunio052805




これが今回主役の光センサー(CdSセル)です。CdSとは硫化カドミウムの略です。業界用語では「フォトレジスタ」って言うんす。たぶん、小学校や中学校の時に理科の授業か、「学研の教材」とかで出会っている人は多いはず。でフォトが光でレジスタが抵抗の意味なので、CdSセルって言われるよりもわかりやすい筈なんですが、カタカナ英語の悪い所です。



細かい話をすると脱線しすぎるので、ここでは、「光にあたると抵抗値が下がるモノ」と覚えましょう。



今、大事なことを言いました・・・抵抗値が下がると。スイッチではないですね。なので冒頭のタイトルはちょっと間違いですよね。判っています。



 



じゃ、どんな感じで抵抗値が変化するのかテスターであたってみます。



Ardunio052806



テスターを「Ω」に合わせて抵抗値を測定しましょう。
リビングの光を受けた状態で、「1.4kΩ」と出ました。



 



Ardunio052807




手で光を遮った場合は、「66.5kΩ」となりました。抵抗値が大きくなりましたね。



 



Ardunio052808




最後にiPhoneのフラッシュライトを浴びせてみました。「293Ω」ですね。かなり抵抗値が低くなりました。



 



arduinoをやって行くにあたって、本通りにやればとりあえず出来ると思いますが、電子の世界は大げさにいうと童心に帰る必要がありそうです。『なんで?なんで?』が結構大事です。私は挫折した人なので、挫折しやすいポイントも考えながら進めていくつもりです。



ここでは光に反応する可変する抵抗値を操ることを覚えました。



 



実は今回のプログラムの細かい話をしていませんが、digitalWriteとanalogWriteを使っています。



今までの流れで大まかに整理すると、デジタルは「5V=1、0V=0」という話と、アナログ値をどうする?ってのが流れとして出てきています。



 



そしてまだ接続図に入っている解説をろくにしていない抵抗の存在と。



そこら辺ももう少し進めてからで後からの理解でも大丈夫なので、このまま進みます。



 



でも今回、光センサーというのが出てきて、抵抗値の変化を使って制御するということがわかりました。すごいことです。



ここまでくると、身近にある、暗くなると突然つき始める街灯とか、マンションの電灯とかの仕組みは身につけたと一緒です。セキュリティにも使えるかもですね。真っ暗な所で光を感じた瞬間に警報を出すとか。



ちなみに抵抗値と言いましたが、この反応値を読み替えて使うことが電子の世界では大事になってくるです。例えば露出計とかね。発送の転換次第で色々出来そうですね。



 



そして、今回は光に反応するものを使いましたが、これが赤外線になったり超音波になったり色々なセンサーと呼ばれるものと置き換えれば、実験過程はある程度一緒と考えられるので・・・次は・・・何をやろうかな。



問題はこの私のブログは、インフラ屋さんばかりがメインなのでarduinoは興味ないかな[E:coldsweats02]

環境改善第2弾(Arduino UNOアクリルケース)

昨夜は気が向いたので、本当はこんなオサレな事をするつもりはなかったんですが・・・魔が差しました。[E:gawk]

こんなケースが2個分で980円だったんでつい・・・[E:coldsweats01]
Arduinoのシールドとか使い始めたら、このケースはゴミなんですけどね・・・。

色々作業していると、通電中にあちこち触ってしまうのと、USBケーブルを外す時に少し神経使っているもんで・・・もうちょっと気楽に出来る様にと。

Arduinocase01
夜中の2時に何をおっぱじめているのやら・・・。

Arduinocase02
互換ボードでも問題なく収まりました。これで基盤にベタベタ触ることもないでしょう。

Arduinocase03
裏面はこんな感じです。ネジとナットがめっさ小さいんで、ちょっとだけ苦労しました。

ここまでくると・・・電子工作な道具を揃えたくなってきますね。
本題に逸れない程度に、ボチボチ環境を揃えていきましょう[E:coldsweats01]

そして、夜な夜な、今後の勉強方向と、ターゲットを取りあえず決めてみました。大したシステムにはならないし、何番煎じか判らないですが、まぁ良いでしょう。
ちゃんと需要が2件(?!)ある仕組みを作ろうと決めました。

それでもどうやって克服するかの課題は結構あります・・・[E:gawk]


環境改善第1弾(テスターワニ口クリップ)

色々始め出すと思う不満。出てきますね。[E:shock]
少し効率良くしたいので微投資です。

まずはテスターなのですが、掴んでおきたいのに充てておく事しかできない状態です。

なのでこんなものを買ってみました。



ワニ口クリップにしちゃうやつです。



ちゃんと0オーム調整も出来ました。導通確認と、自動0オーム調整も大丈夫な事を確認[E:bleah]

ちょっとしたことなんですが、良い感じですね。
何気に高校時代の学習が役に立っているような?!ボンクラ工業高校ですが[E:coldsweats02]

いやぁ。。。高校の時の授業で製作した変圧器とっとけばよかったなぁ。。。結構便利だったんですよ。買うと高いしね(^_^;モノとしては「直流安定化電源」というのかな。何気に今になって高校の時の微量な知識に感謝w
ちゃんと授業受けてなかったのに結構訳わかってなかったのに今になって「ああそうか」って思う事結構やってたんだなと。母校に感謝を今更ながらしときますw

LEDで自力パルス幅変調をする

週末はなるだけArduinoを触ろうと思った2週目です。

前回、最後にカーボン抵抗の抵抗値を調べなくてはと思って調べたのですが。。。老眼?がはじまったのか、色がよく分からない[E:coldsweats02]
あかんですね。。。色化けしてしまう。ルーペも買わないと駄目かも[E:coldsweats01]
そして、本当にその抵抗値は正しいのかはテスターがないと駄目なので、テスターを買っときました。

安い奴なんでテスターが大丈夫かな?!とか思っちゃいますが。安いおかげでボタン電池は同梱されてませんでした(^^;安い割には色々と機能がついていて優秀なんじゃないかと。

んで一応カーボン抵抗も色分けでていこうが分かるものの製品誤差や不良がある場合もあるので電子の世界ではテスターをする事は基本になっています。

さて、今回のお勉強もまだLEDのオンオフをやっています。


【明るい】

【暗い】
Arduinoの教科書にもですね、単純な所でも色々な変化を楽しむのが大事と書かれています。つまり、今まで「オン」と「オフ」という単純なプログラムでの制御を作ってLEDを点滅させたのですが、今回2点の写真の画像をアップしましたが、1つはLEDが暗いと思うんですね。でも、まだオンオフするプログラムしか書いていません。
実はdelayの時間を調整してLEDの照度を変えています。
電気で普通に調光を考えた場合は、アナログ的にいうと可変抵抗という考えで抵抗値を可変させてLEDの明暗を表現したりします。抵抗値が大きくなればそれだけ電流が絞られるので暗くなるのは当たり前っすね。
それをデジタル制御で明暗を出す場合は周期を利用して目の錯覚。。。というか光っている時間幅を調整して明暗を表現して目を騙します。そしてこの理解が7セグメントLEDなどの表示系とか割込み制御のコントロールするのに後々役立ちます。

サンプルプログラムではオンしたあDelayが100でオフした後もDelayを100にしてLEDの点滅をさせる事が出来ました。今回はこのDelayを絞って点滅していると認識出来ないDelay値を探ってみます。
私の使っているボードではDelay値を14にした所でチラつきが感じなくなりました。処理的にはオンオフ繰り返してます。でも目で見た場合は点滅ではなく点灯です。

そして、2つのDelay操作で14を基準にオン側のDelayとオフ側のDelayをどちからの値を1にすると明るくなったり暗くなったりします。
これを専門用語にするとパルス幅変調というのですが、実はArduinoはこのパルス幅変調をする機能は備わっているので、Delayなんて使わなくてもできます。更にDelayを使うというのは、Waitと同じなのでDelay中は他の事が出来なくなってしまいます。そして他の処理や割込み要素を増やすと先程のDelayを与える値も変えなければ、点滅している様に見えてしまうでしょう。

この単純でつまらない実験過程の理解が大昔の自分には足りなかったなと。[E:shock]
今回の事は頭ではわかっていたつもりなのですが、実験する前までは可変抵抗で明暗すればええしって思ってた部分もあったんで、一つ勉強になったぞ。
やっぱり卓上計算だけじゃなくて実験・実践が大事っすね[E:delicious]
デジタル要素とアナログ要素を組合わせるとどうなるのかな。センサーとか入ってきた時に大事になってきそうです。
てことで次はスイッチ使います。

Arduino的Hello World?

最近まで休みの日でも気がつくと仕事関係の調べ物をしていたり、休日をどう過ごしていいのかわからない人に陥っており、ゴロゴロしていたり1日中スマフォを触っていたりするので、これはイカンぞ!

 
ということで、2016年はもう5月ですが、何か寝かせている趣味でも掘り起こそう・留まっていた趣味を再開してみよう・・・(低コストでw)・・・と考えて、そ~言えばいつも挫ける趣味があったぞ・・・と。
元々良くわかっていないけど好きな分野として電子の分野があります。
ワタクシ的には、ソフトとハードの両面が支配できれば、自分が思うモノが作れるのにと昔から思っていました。欲しいと思ったものが世の中に無い時はほんとにそれは強く思って、だったら自分で作っちまおうと・・・。
 
まぁ・・・そんな簡単な世界だったら誰も苦労はしない訳で。
でも元より、PICやAVRがやりたくてしょうがなかったんです。
世間では電子的なIoTなんかを含めた話だとRaspberry Piの方が今は注目度は高いかもしれませんが、ココらへんの違いは「Raspberry Pie Arduino 違い」とかでググるとIoTの関連記事にも合わせて読めると思うのでどうぞ。まぁ組み合わせて使うもよしと言うことで。
 
てことで初心者ってことで・・・色々詰め合わせの「Arduino Starter Kit」です。 

を買いました。ちょっと評価が分かれていたんでふあんでしたが・・・ 

Img_1160
大丈夫でした。
本家ArduinoではなくてOSOYOOって所の互換ボードです。あれこれ沢山入っていて安かったし、Amazonでの評価はイマイチでしたが、まぁこれらのパーツを買い集めるのも色々と最初は大変なんで、ジャンクを扱う気持ちで買いました。
 
Img_1163
ArduinoHello world?なのかは、分かりませんが、オンボードのLEDを点滅させるプログラムが参考書の最初だったので、多分これがHello worldだったんでしょう。とりあえず動作確認はOKです。
 
Img_1164
プログラムは6行は書きました。使った命令は3つ。配列宣言をして、初期化して、メインループに放り込むと。専用のコンパイラでコーディング(スケッチ)しているだけなんで、LEDをを光らすまではあっけらかんとしてしまいます。
昔、アセンブラをやっていた時は、ほんとにPEEK、POKEに発狂しました。もうすっかり忘れましたが、それと比べれば簡単タン♪
 
昔(昔ばっかりやな)は、void main() { }の雛形も意味わからなかった。構文ルールがBASIC出身者からだと抵抗があったっけ。でも今はオブジェクト指向の領域でなければとりあえずなんとかなるかと・・・?!
 
とりあえずのデビュー戦は終わりました。
次の為にオサライしておくべきことは・・・
Img_1165
画像は「抵抗」なんですが・・・この帯が何色でどうなっていると抵抗値が幾つというのを高校生の時に習っているのですが、残念ながら記憶の片隅にも残っていません[E:coldsweats01]
TCP/IPでいうIPアドレスとかマスクを覚えるような世界かと思うので、調べておきます。
これわからないと、どの抵抗値使うのかわからんもんね[E:weep]
 
一応、最終的には、Arduinoからインターネットへの通信を行って、特定のサーバにデータを書き込む・・・または、Arduinoに通信して特定の値を取得出来るようにする・・・ArduinoSNMPを実装するなどなどなど。
Arduinoの実装メモリが限られているので、どこまで出来るのか詳しく調べていませんが、センサー的な何かの結果をまとめ上げられたら面白いかな?
 
一応、Arduinoである程度の納得が出来てからRaspberryPieにもチャレンジしたいと思います。
 
参考書籍は 
Arduinoをはじめよう 第3版 (Make:PROJECTS)

Arduinoをはじめよう 第3版 (Make:PROJECTS)

 

定番ぽいらしく、この本に書いてあることが結構今回のスターターキットでできるってことで。ご参考まで。