ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

ミニホットプレート

2022年04月20日 00時51分13秒 | 電子工作
ツイッターで見かけたミニホットプレートをAliExpressでポチったのが届きました。
しっかりした綺麗な箱に入っていました。


中身はこんな感じ

分厚い緩衝材です。

本当にミニサイズでちっちゃい!! プレートは30mm角なんです。




さっそく使ってみます。

赤い色はLEDで200℃を超えていることを表示しています。

ATmega328Pを回収してみました。w

今までは200mm角の料理用のホットプレートを使っていましたので、温度が上がりすぎて手が熱くなって大変でした。
これだと机の上で局所的に決めた温度にできるので手も熱くならずすごく簡単になりました。

これにはPD対応の60W電源が必要ですが、MacBook Pro のACアダプタが使えました。

ただ、こちらのACアダプタは不安定でダメでした。

20V 3.25Aと書いてありますが20V 3Aを安定に出せなかったようです。


Lフワ

2022年04月07日 22時50分22秒 | 組み込みソフト
LEDをじわーっと明るくすることをLフワと言うらしいのですが、Lチカに比べてちょっとコツがあります。

まず、LフワのためにPWM出力を利用します。
デューティを0から255まで増加させます。
しかし、これを実際に見るとじわーっと変化しないのです。

これは、人間の感覚が対数に比例しているからなのです。
このグラフの対数を見るとわかりやすいかと思います。
急に明るくなって変化が小さくなっていますね。



また、このグラフからデューティを50%にしても明るさは7割程度にしかならない。
明るさを半分にするにはデューティを30%くらいにしなければいけない。
と言うこともわかりますね。

(対数はLog 1が0なので、そこが原点になるようにずらして描いてます。式は後述)

と言うことはじわーっとリニアに光るようにするにはPWMを対数の逆関数の指数関数で増やせばいいことになります。



しかし、組み込みでは容量の小さな8ビットマイコンだったりするので指数関数を使うのは処理が重いです。
あらかじめ計算したデータを配列に置く方法だと、滑らかに変化させようとするとデータを細かくしてたくさん必要になって容量を圧迫します。


そこで、組み込みの世界では指数関数の代わりに二次関数を使います。


このグラフを見てください。
どうです?
2乗のグラフがほとんど指数関数に近いのが分かると思います。



2乗するだけなら容量も必要としませんし8ビットマイコンの整数演算でも速く処理できます。
ただしオーバーフローには注意してくださいね。


ATtiny402のフェードインスケッチ
http://ikkei.akiba.coocan.jp/ikkei_Electronics/ATtiny402.html
はこのようにして書いています。変化の時間やタイミングを簡単に変えられるようにconstrain()やmap()などのArduinoの関数をうまく利用しています。
興味のある人はコードを解析してみてください。


グラフの式
リニア y = x
対数  y = log( 1 + 0.9x) * 10
指数  y = (10^(x/10) – 1) / 0.9
2乗  y = x*x




ちっちゃいマイコン基板できました!

2022年04月01日 16時56分33秒 | Arduino
以前ブログに書いたこれ。
こっちも

USBシリアル経由でArduino IDEで書き込めるならArduinoじゃん!
と言うわけで基板を作っちゃいました。
しかもATtiny202ではなくメモリが2倍のATtiny402を使いました。

マイクロSDカードサイズです!


ハンダ付け無しでピンヘッダを付けてブレッドボードに挿して

USBシリアルをつなげばATtiny402のArduinoの出来上がりです!!


スイッチサイエンスで販売開始しましたのでよろしくお願いします。