エレショップblog

半導体・センサー・マイコン・電子工作キットほか、各種電子部品の専門店「共立エレショップ」から主に電子工作の関連情報をお届けします。 http://eleshop.jp/

記事担当:共立エレショップ
[ハンダ付け不要-マイコン系]


「3の倍数と3が付く数字」の日だけ休みたい、そんなことを思う初夏。

…と、懐かしいネタから書き出してしまいました。
世代的に分からない方もいるかもしれませんが、現在は落語家に転身された桂三度さんが「世界のナベアツ」という名前で披露していた「3の倍数と3が付く数字のときだけアホになる」という、1から40まで数字を数えながら3の倍数と3の付く数字を数えるときだけアホっぽい言い方と仕草をする文字通りのネタがあり、約10〜15年ほど前に流行りました。

実は、その当時にプログラマー界隈で「これってアルゴリズム」だとか「FizzBuzz問題」を連想したり等の話題になり、いろんなプログラム言語で3の倍数と3の付く数字を判定する「世界のナベアツ」プログラムを組むことが流行りました。

実際、僕も当時に某プログラミング言語用にサンプルを作ったことがあるのですが、このネタの内容はプログラミングを学ぶ上での入門用として最適な問題といえます。
せっかくなのでブログの記事として「micro:bit」で世界のナベアツプログラムネタやってみたいけど、もうやってる人いるだろうなぁと思いながらとりあえず簡単にネット検索してみたら検索結果の上位には見当たらなかったので、じゃあmicro:bitプログラミング初級者向けにサンプルを残すのもいいよね。

ということで、今回は「micro:bit」で世界のナベアツプログラムを組んでみたいと思います。

image_001

上の画像のプログラムはネタ同様に1から40までをカウントしながら数字を判定しています。
数字と表情をLEDモニターに表示、3の倍数と3が付く数字のときは表情が変わりブザー音が流れます。

3の倍数かは、数字を3で割って余りが「0」かどうかで判断しています。

3が付く数字かは、文字列処理を使っています。
数字を文字列として扱い、文字の中に「3」という文字があるかどうかをチェックしています。

実は当時、数字の判定には文字列処理を使わず数列の処理のみを使うべき、みたいな話もありまして。
…ということで、次は数列処理のみを使ったプログラム。

image_002

こちらのサンプルでは3の倍数については前のプログラムと同様の処理を行っていますが、3の付く数字については別の方法を使っています。

カウントしている数字から10を引く計算を10未満になるまで繰り返しています。
10未満になるまで繰り替えした回数が3なら30〜39の範囲内、つまり10の位が「3が付く数字」ということになるからです。
例えば35の場合、「35-10-10-10=5(10未満の数字)」と10を3回マイナスしているとなるわけです。

さらに、その10を繰り返しマイナスした後の数字が3であるかを調べることで1の位が「3が付く数字」であるかを判断しています。
13の場合は「13-10=3」、23の場合は「23-10-10=3」といった具合です。

実際の世界のナベアツさんのネタ同様、40まで数える内容にしているのでサンプルプログラムの数列処理のみを使うふたつ目の方法で正しく機能しますが、103を超える数字については3の付く数字の判定は正しく行えないのでご容赦ください。

あえて他言語のサンプル等を参考にせず作ってみたので、実際はもっとスマートな数列処理のみの方法があると思うのですが、ここまでしか作れませんでした。
この記事を読んで興味を持たれた方がいれば、チャレンジしてもらえたらと思います。


(記事:糖分)
更新予定:毎週木曜日(次回は7月6日です!) 

記事担当:共立プロダクツ
[ハンダ付け不要-マイコン系]


エレショップblog読者のみなさま。
マイコン、使ってますか?


次から次へと世に送り出されるマイコンボードを使いこなすのは大変ですが、最近では高水準言語やブロックプログラミングなどに対応するものや、液晶や内蔵センサー等を満載したモジュールなどもあり、思い付いたものを手軽に試作できるようになりました。
昨年の記事ではRP2040を搭載した超小型ボードをメインに、MicroPythonという言語でプログラムを書き、ちょっとした回路を組んで簡易温度計をつくりました。

前置きはこのへんで。
さて、ここに色も形状もミックスになった大量のLEDがあります。
01


これだけあれば、適当に光らせるだけでもそれなりにサマにはなるのですが、光り物はできるだけ明るさを揃えると綺麗に見えると思います。
でも、LEDって高輝度タイプやらお手頃価格なものやら、古いのやら新しいのやら、同じ電流を流しても見た目の明るさが全然違うんですよね。
具体的な型番がわかっていて、データシートがあるならばそれを見ればいいのですが(電子工作の基本です)、こういう正体不明な物はどう料理したものか…。

というわけで今回は、個人的に「ほしい!」と思っていた簡易LEDテスターを設計してみることにします。
機能はこんな感じを目標にしていこうと思います。
●LEDを差し込むだけで、指定した電流値(順方向電流)で点灯する。
●ボタン操作で電流値を変えられる。
●点灯中のLEDの順方向電圧がわかる。

特性のチェックが手早くできるならば、使わずに持て余しているような詳細不明のLEDも、よっしゃ使ってみるか!という気分になれるかもしれません。


主役となるマイコンボードは、今回はM5StickCを選びました。
02

親指サイズ(筆者調べ)の小型ボディにカラー液晶と操作用ボタンを内蔵。充電式バッテリーを内蔵しているのでケーブルなしでも動作OKと、ハンディサイズのガジェットづくりに丁度良いです。自作の回路を外付けするのに便利なGPIOヘッダーソケットもあります。
個人的に購入したにも関わらずあまり有効活用できていなかったのですが、今回のプロジェクトにはそれなりに適任と言えるのではないでしょうか。
(目玉の無線機能は今回使わないので役不足感はありますが…)


ここからは設計方針を決めながら回路を組んでいきます。
全部を説明すると長くなるので、要点だけをかいつまんで見ていくことにします。

LEDに流す電流をマイコンで制御するには、可変定電流回路を作るのが簡単です。詳しい原理などの説明は省きますが、こんな回路です。
03

トランジスタに流れる電流(I)は、オペアンプの+入力端子にかける電圧(ここではVCTLとします)と抵抗(R)から近似値を求めることができます。
目的の電流値になるように入力電圧(VCTL)を上下して調整できれば、計算通りの電流がLEDに流れてくれるはずです。

そのために必要となる任意の電圧をマイコンから出すには、M5StickCが持っているPWM(パルス幅変調)出力機能を使います。
04


PWMとは1本のピンから一定の周期でHレベルとLレベルを高速に繰り返し出力する機能で、HとLの時間の割合を変えると、平均の電圧が変わります。
これを抵抗とコンデンサで構成されたローパスフィルタ回路に通すことで、中間の電圧(M5StickCはHレベルが3.3Vなので、0~3.3Vの範囲)をつくることができます。

上記のPWM出力から作ったVCTLをもう一度マイコンで読み直し、電圧を調べます。
その電圧を抵抗値Rで割れば、現在LEDに流している電流、つまりLEDの順方向電流を求められます。
これが設定している電流値より高ければ、PWMの出力を下げて電流を小さくするように調整します。逆に現在の電流値が設定値より低ければ、PWMの出力を上げて電流を大きくします。

まとめると、メインとなる制御の流れはこんな感じです。
05


1.アナログ入力でVCTLのピンを読み取る。
2.読み取ったアナログ値(0~4095の数値)を、実際のVCTLの電圧値(?.??V)に変換する。
3.電流の現在値を計算で求める。(I=VCTL÷R)
4.電流の現在値と設定値を比較して、
現在値が設定値より高ければPWM出力を下げ、逆に低ければPWM出力を上げる。
(PWM出力を、次回さらに設定値に近づくように調整する)

これを1サイクルとして何回も繰り返せば、PWM出力の値が少しずつ補正されていき、設定値の電流に近づいた状態で安定していきます。

あと冒頭にも書きましたが、ボタンを押せば電流の設定値を何種類かワンタッチで切り替えられるようにしたいと思います。
実際に点灯するLEDを見て「何mA流せばこの明るさになるのか」が大まかにでもわかれば、LEDに直列に入れる抵抗値の計算もきっとはかどるはずです。


ということで駆け足で動作の説明をしてみました。
次回、エレショップで販売中の部品を使って、回路を実際に組み立てていきます。



お楽しみに!
06


(記事:ONE)
更新予定:毎週木曜日(次回は6月29日です!) 


【補足】
M5StickCはメーカー生産終了となり、現在(2023.06.22)は後継機種「★M5StickC Plus」(プラス)を販売しています。
画面が大型になり表示ドット数が増えている等の変更点がありますが、今回の作例であれば画面レイアウト以外はほぼそのまま流用できます。
これからM5StickCを始めてみようという方は、ぜひプラスをお試しください。

記事担当:共立エレショップ
[ハンダ付け必須-非マイコン系]


UV+LEDランプの自作企画、第6弾でございます。
★「電工女子★レジンを固めるUV+LEDランプを自作しちゃうぞ!★1」
★「電工女子★レジンを固めるUV+LEDランプを自作しちゃうぞ!★3」
★「電工女子★レジンを固めるUV+LEDランプを自作しちゃうぞ!★5」

前回で『ブレッドボードで試作した「UV+LEDランプ」を基板に移し替える』と言う目標は達成したんですが、このままだとまだちょっと使いにくいなぁと。
何かというと、今のままだと自分でスイッチをON/OFFして操作しないといけないんですよ。
タイマー掛けて時間が来たらスイッチ切って、ていうのが結構手間で。

そこで、設定した時間になったら自動で電源をOFFにできないかなぁって思ったんです。
でも何をどう使ったらよいのか分からない~~~。


と少し頭を悩ませたんですが、分からないことをいつまでも考えているのは時間の無駄だなぁと。
頭を切り替えて開発部門の大先輩に相談してみました。

で、教えてもらったのが↓のタイマーキット。
★「タイマー基板キット3 / TM-5553」

って、なんか見たことあるキットだなー…?と思っていたんです。
ブログさかのぼっていたら・・・2017年09月21日に

★「電工女子、WonderKitを作ります!(第20弾:タイマー基板キット3です)」

作っていました~~~!\(^o^)/
それも「では次回、タイマーキットを使って遊んでみようと思います!」って最後に言いつつ、どう扱えば良いのか分からず放置・・・6年を経てようやく日の目を見ることに!!!!


で、キットの説明書を改めて見るとスイッチをONするとタイマーが作動して、設定した時間が来るとOFFになるんだとか。
あら、やりたいことにピッタリじゃないですか!
なんでこんな便利なキット忘れてたんだろう...

と浮かれてたら!
そう上手く行かないのが世の中と言うもの。
更に説明を見てみるとこんな事が書かれていました。
『タイマー時間 約1秒~10秒(1秒単位)、 約10秒~100秒(10秒単位)』
 違うんです!
時間が足りない!
今回タイマーしたい時間は5分なんです。つまり300秒!全 然 足 り な い !

このままだと「UV+LEDランプ」の照射時間が短くて使えない・・・こともないけど何度もスイッチONしないといけなくてめんどくさい!

さてどうしたものかと悩んでいると、そこはさすがの開発担当、タイマー時間を延ばす方法を教えてくれました!!
なんとこの★「タイマー基板キット3 / TM-5553」で使われている部品の一部を変更するとタイマー時間を変えられるのだと・・・!

その部品というのがC3の電解コンデンサ。
なんでもこのタイマー基板はタイマー用IC『555』と言うのを使っているんだそうで、そのタイマーの時間はICに繋がった抵抗とコンデンサの値で決まるんだそうです。
C3の電解コンデンサはタイマー時間10倍モードの時につながるコンデンサで、ここの容量を通常の3倍にすればタイマー時間も3倍の最長300秒になるんだそうです。

UVLED-5-16
↑開発部門の大先輩が書いてくれたメモ。


ほーーーーーー。。。
そんなことができちゃうんですね…。

と言う訳で必要な部材も大先輩からもらったので、
キットを作っていこうと思います!!!



作り方は6年前に記事にしたので、今回はざざっと紹介です。
パッケージ。
UVLED-5-01

中身。
UVLED-5-02


・・・で、まずはこう!!
UVLED-5-03

ほんで・・・こう!!!
UVLED-5-04


電解コンデンサのC3 100μFを約3倍の330μFに変更する、とのことなので…
UVLED-5-05


これが・・・
UVLED-5-07

こう!!
UVLED-5-06UVLED-5-08
330μFの電解コンデンサ、大きいですね。。。


そして、残りの部品を取り付けます。
UVLED-5-09UVLED-5-10


もう一か所、変更する部品がリレーです。
UVLED-5-11


これが、キットの中に入っているリレー。
UVLED-5-12

で、こちっちが差し替えるリレーです。
UVLED-5-13
元々はDC12Vで動くリレーが付いているんですけど、これを5V対応のリレーに変更します。

なんで?って聞いたら、タイマーキットの電源を5Vにするためなんだそうです。
このタイマー基板『TM-5553』の電源電圧はDC12Vなんですけど、実はリレーに合わせて12Vにしてるだけで、キット自体は5Vでも動くんだそうです。
なのでリレーを5V対応に変えることによってタイマー基板も5Vで動くようになって、「UV+LEDランプ」と同じ電源で動かせるようになったのです!
さすが大先輩。心憎い心配りです。
「UV+LEDランプ」と電源が共通になったらACアダプタも1個で済むので色々助かりますね。


ということで、部品を変更して完成したのがこちら。
UVLED-5-14UVLED-5-15


さーて、うまく作動するのでしょうか!
次回は改造したタイマー基板がちゃんと300秒カウントしてくれるのか大実験です!


みなさんもぜひタイマー時間を調節してみてくださいね♪


(記事:オカポン)
更新予定:毎週木曜日(次回は6月22日です!) 

このページのトップヘ