Arduinoでアノードコモンの7セグメントLEDを2つ光らせる
僕の「IoT」が電子工作の域を出なかった理由 - ニートの言葉 https://t.co/gQ7w6N0Np2
— さのかずや / TORCH Inc. (@sanokazuya0306) 2015年12月29日
ほんとは自分でできるひとが経営者になるほうがいいのでは 【岩田 聡氏 追悼企画】岩田さんは最後の最後まで“問題解決”に取り組んだエンジニアだった。「ゲーマーはもっと経営者を目指すべき!」特別編 https://t.co/4YuHpLusHV @4GamerNewsさんから
— さのかずや / TORCH Inc. (@sanokazuya0306) 2015年12月29日
そろそろはてブロからMediumに移行の時期だろうか、まだちょっと早いかなあ
— さのかずや / TORCH Inc. (@sanokazuya0306) 2015年12月29日
久しぶりのFab
リハビリに、Fabとはいえないレベルの電子工作から
温湿度計をつくりたい
学校(IAMAS)の生活環境の湿度が低すぎるので、まず温湿度計をつくって、湿度を観察しようと思いました。
IoTの時代、もっと簡単に測る手法はクソほどありますが、せっかくなので自分で作ろうかと。
接続
deviceplus.jp
ここを大いに参考にさせていただいた。
(※引用:http://deviceplus.jp/hobby/entry008/)
接続はぜんぶこの2コつなぐ画像のまま。
ただこれはカソードコモンの7セグメントLEDを使っている。秋月で買ったものはアノードコモン。ひらたく言うと逆向きに電器を流さなきゃいけない。のでソースコードをちょっといじる。
ソースコードの変更
変更点は
- LEDレイアウト定義の0,1を逆に(各セグメントのオン/オフ指定を逆にする)
- 11ピン、13ピンのHIGH、LOWを逆に(桁配置を逆にする)
の2つ。
// // 2桁の7セグメントLEDを光らせるプログラム // int _cnt = 0; // int _number = 0; // boolean _flg = false; void setup(){ Serial.begin(9600); //2~8番ピン デジタル出力へセット for (int i=2; i<=8; i++){ pinMode(i,OUTPUT); } pinMode(13,OUTPUT); pinMode(11,OUTPUT); } //LEDレイアウトを定義 boolean Num_Array[10][7]={ {0,0,0,0,0,0,1}, //0 {1,0,0,1,1,1,1}, //1 {0,0,1,0,0,1,0}, //2 {0,0,0,0,1,1,0}, //3 {1,0,0,1,1,0,0}, //4 {0,1,0,0,1,0,0}, //5 {0,1,0,0,0,0,0}, //6 {0,0,0,1,1,0,1}, //7 {0,0,0,0,0,0,0}, //8 {0,0,0,0,1,0,0} //9 }; //LED表示関数を定義 void NumPrint(int Number){ for (int w=0; w<=7; w++){ digitalWrite(w+2,-Num_Array[Number][w]); } } //2桁をそれぞれの桁で分解する関数 int NumParse(int Number,int s){ if(s == 1){ return Number % 10; //10で割ったあまり = 一桁目の値 } else if(s == 2) { return Number / 10; //10で割った値を整数にする = 二桁目の値 } return 0; } void loop(){ if(_number >= 100){ _number = 0; } //flg変数をtrue / falseを切り替えることで11番13番ピンの出力を交互に切り替える if(_flg){ digitalWrite(11,HIGH); digitalWrite(13,LOW); _flg = false; NumPrint(NumParse(_number,1)); //1桁目の表示 } else{ digitalWrite(11,LOW); digitalWrite(13,HIGH); _flg = true; NumPrint(NumParse(_number,2)); //2桁目の表示 } //100まで行ったら表示する数値(_number)を1つ足す(実質delayの10×100で1秒に1カウント) if(_cnt >= 100){ _number++; _cnt = 0; Serial.print("NUMBER:"); Serial.println(_number); } _cnt++; delay(10); }
これで光るはず。
ESP8266を使った後は
ちなみにぼくは
warning: espcomm_sync failed error: espcomm_open failed
というエラーが出てしまったのだが、これは単にマイコンボード設定がESP8266用になっていただけだった。Arduino Uno用に直したらすぐ通った。初心者ミス。
ArduinoにESP8266用のファームウェアをアレすると、ESP8266使わないときにファームウェア戻さないとエラー吐くのか…めんどくちゃい…
— さのかずや / TORCH Inc. (@sanokazuya0306) 2015年12月29日
違った、マイコンボードの設定がESP8266になってただけだったhttps://t.co/WkuTtxmbAs
— さのかずや / TORCH Inc. (@sanokazuya0306) 2015年12月29日
Qiitaとはてなブログ
qiitaってiframe使えないのけ…
— さのかずや / TORCH Inc. (@sanokazuya0306) 2015年12月29日
どうでもいいけど、Qiitaはなぜかあまり好きになれない。
iframe使えないからとかじゃないけど…心理的にパーソナルスペースかパブリックスペースかの違いだろうか。
どっちも便利なとこ不便なとこいっぱいあるけど、ぼくが書くようなすげー初心者向けの記事ははてなブログの方が適している気がする。
今回のはてなブログのソースコード表示はこちらを参考にさせて頂きました。
次回は
温度・湿度を同時に測るアイツを使うぞー
今日の一曲
♪80kidz / Gone (feat. KenKen)
視聴だといきなりサビから入っちゃうけど、イントロでKenKenのベース聴きまくっていきなりキレッキレなシンセが入ってくるのマジ痺れる
関連記事