|ω・`)ノ ヤァ リンクを取得 Facebook × Pinterest メール 他のアプリ 1月 27, 2021 今まで自宅サーバーでやってきたブログがプロバイダのサービス変更かなんかのせいで公開できなくなったのでこっちに移動することにしました。覚書とか書いてあるけどそれ以外にも書いていくかもしれんがよろしく。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
ダイソー テープライト リモコン付 分解 1月 18, 2025 ダイソーで血迷って買ったリモコン付きRGB LEDテープを分解した。 分解前に動作確認 リモコンで色の変更ができる。 とりあえず、RGBそれぞれ単体で光らせてみる。 これ以外に黄色やピンク、オレンジもあったがRGBの入り切りで混ぜて出していると思うので割愛。 後ほど出力ピンの電圧を測定して確認してみる。 このほかにスラッシュやフェードなど発光色の切り替え演出が備えてあった。 簡単に動作は確認したので分解してみる。 ご存じの通り自己責任で ちゃんと箱にも分解や改造するなと書いてあったので人間の皆さんは控えましょう。 本格的な分解の前に外見を確認していく。 画像上部がLEDテープ本体、画像下部がLEDテープの制御基板となっている。 LEDテープの裏には両面テープが貼られている。粘着力の具合はわからないが、触った感じでは逆さに貼ったら一週間以内に剝がれそうな両面テープ。 ケーブルは青、赤、緑、黒の4本がコネクタとLEDテープに接続されている。LEDテープと配線の接合部は熱収縮チューブでカバーされている。 配線の黒は5V+で電源の配線である。GNDではないので注意。 青、赤、緑の配線をGNDに接続することで、色に応じて発光する。 これは、 [1] で示されている抵抗省略の回路図の通りである。後ほどLEDテープの回路図を示す。 チップ抵抗はRGBそれぞれに対して接続されていると考えられる。121と表示されている120Ωのチップ抵抗が2個と、330と表示されている330Ωのチップ抵抗が1個実装されている。 LEDテープを切断し、表面の樹脂を除去した物が左画像、両面テープを除去した裏側が右画像である。 具体的な配線と部品の位置は下画像である。 回路図は以下のようになっている。 ... 続きを読む
C++ round関数を使わずに小数第n位の四捨五入をする 5月 06, 2021 C++でround関数を使わずに小数第n位の四捨五入を行う サンプルプログラム1 #include <iostream> #include <cmath> using namespace std; double round(double x, double n); //プロトタイプ宣言 int main() { //round(数値, 小数位); cout = 5){ //1の位の余りが5以上の場合 temp = temp + (10 - temp%10); //10から1の位の余りを引いて、値に足す return (double)temp * pow(10.0, -n); //計算結果を返す }else{ //1の位の余りが5未満の場合 temp = temp - temp%10; //1の位の余りを引く return (double)temp * pow(10.0, -n); //計算結果を返す } } サンプルプログラム1では関数を自作して処理を行っている。 そのため、主に解説していくのは下に記述されている自作round関数である。 動作原理は簡単で、四捨五入をしたい桁数を指定したらその分、10 n 倍して、1の位の余りを求める。 その余りが5以上か未満かで判別して、余り分を引くか「10―余り分」を足すかを決めている。 そして、値を逆に10 -n 倍して返している。 ちなみに、10 n 倍している理由は%を使用して余りを求めるためである。 浮動小数点は%を使用して余りを求めることができないからである。 cmathがインクルードされているためfmod関数を使用することができるが、このプログラムを作成した時の気分で使わなかった。 数式は以下に示す。 $temp=x10^{n}$ $temp \mod 10 \geqq 5$ の場合 $ans = temp + \{10 - (temp \mod 10)\}\times10^{-n}$ $temp \mod 10 \lt 5$ の場合 $ans = \{temp - (temp \mod 10)\}\times10^{-n}$ ほかにもっといいアルゴリズム... 続きを読む
C++ cout関数とcin関数を用いた基本的な入出力 5月 06, 2021 C++でコンソール上で入力と出力を行う サンプルプログラム1 #include <iostream> //標準入出力関数を使うときに必要なヘッダー using namespace std; int main(void){ int a; cout > a; //整数をコンソール画面から入力する cout cout関数は文字列などの出力において使われる基本的な関数である。 サンプルプログラム1ではcout関数のダブルクォーテーション内の文字列が出力される。 また、 cout のように左シフト演算子を用いて変数も並べて記述することができる [1] 。 cin関数はコンソール上から数値や文字などを入力する際に使用する。 cin関数を用いて変数に代入する際は、cout関数とは逆に右シフト演算子を用いる [1] 。 複数のデータをスペース区切りで入力したい場合は、次のように記述すると入力することができる。 //入力:15 12 int a, b; cin >> a >> b; cout となるはずである。 シフト演算子の詳細は参考文献[1]を見てほしい。 cout関数とcin関数で使用するシフト演算子の原理は置いておいて、私個人の覚え方は、 「coutに"文字列"を代入して出力したい。」つまり、「cout ← "文字列"」という感覚である。 代入したいデータを矢印でどこに代入するかを指定している感覚である。 cin関数も同様だが複数入力の場合は少しこじつけではある。 入力が"12 15"だとする。 「cin(12) → a, cin(15) → b」これを略して「cin → a →b」 というcin関数から値を取り出す感覚で記述している。 正直、わかりにくい場合は自分の都合のいいように解釈して覚えるのがよいと思う。 参考 [1] 左シフト演算子と右シフト演算子 ( > > および ※間違ってたらすみません。 わかった時点で修正します。 続きを読む
コメント
コメントを投稿