朝から、昨晩遅くまでお勉強したK210などのブログを書く。
12時から歯医者へ。
久しぶりに坂を下りるのがしんどいほどの坐骨神経痛に。年に1~2回は発症するねえ。
なかなか先生作業を進めてくれない。
今まで紙屋町の歯医者だったので、進行が速かったのか?
丁寧にやってくれてると思います。
が、怖い回数が増えるなあ・・・
ネットで見るとCDSと抵抗(1MΩ)を直列に繋ぎ5Vを印加し、その繋いだ地点にアナログ読み取りができる端子を繋げば良いとかいてあった。
じゃが、数値は明るさを変えても4095からピクともしない。
抵抗値が大きすぎるらしいので、順次100K,10K,5K,1Kと落としていった。
CDSセルだと(60W程度のシーリングライトの直下から50cm外れ、高低差1.5mの場所、セルは天井に向け垂直に設置)
100kΩは殆どが4095で反応が悪いし値が一気に動いたりで、変
10kΩだと4095、夕方遅くなって暗い部屋でも1500程度、暗い部屋でセルを手で覆い隠すと500とか
4.7kだと3600、手で覆うと1100
2.2Kだと2500、手で覆うと550
1.1Kだと1800、手で覆うと110
ところがじゃな、このブレッドボード実は20年物で、接触不良があるようで値がころころ変わったりする。
ビンボは情けない。今度接点復活材でびちょびちょにしちゃる。
余りの変な値に辟易して5Kオームのポテンショメータを接続。これは完動する。
どうもこのCDSセルの性能が1.1kΩと合うらしい。このCDSセルも40年ほど前のキットから取ったもの。
みんなビンボが悪いんや。
何はさておき、なんとなく明るいか暗くなったか程度は判別できるようになりましたとさ。
ただし、これには大きなミスがあった・・・
---ソース----
// CDSによる照度実験
// CDSと抵抗(1.1~5kΩ程度)を直列に繋ぐ
// 両端に5Vを印加し繋いだ点からPin33に接続する
//
#include "M5Atom.h"
int analogIn = 33; // 33でないとダメ Pin25はWiFi機能と干渉するので使えなかった(後述の別掲記事)
void setup() {
M5.begin(true, false, true); // use LED
delay(50);
M5.dis.drawpix(0, 0x00f000); // RED RED
delay(1000);
Serial.begin(115200);
Serial.printf("Hello \n");
}
void loop() {
delay(500);
M5.dis.drawpix(0, 0x707070); // white
Serial.printf("analogRead(%d) = %d\n", analogIn, analogRead(analogIn));
delay(500);
M5.dis.drawpix(0, 0xf00000); // green
}