マイコン(PIC)を使って可変抵抗器でフルカラーLED(RGB)の色を自由に選べるように、もしくはスイッチ(モーメンタリ)を押すたびに色が赤→橙→黄のように変わっていくようにしたいのですがプログラムをどうすればいいかわかりません。
どうすればいいのでしょうか?
また、今までずっとアナログ回路をやっており初めてマイコンに手を出したばっかりなので色々とわからないことだらけです。
ライターはマイクロチップ社のPICkit3を使っていますがPICは何を使えばいいのでしょうか?(LEDの点灯程度の用途)
ちなみに今まではアナログ的にRGBそれぞれに可変抵抗器で明るさを調整できるようにし、3つの可変抵抗器で色を作っていました。一つの可変抵抗器で自由に色を作れたらと思い質問させていただきました。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
まず、同じ内容を複数投稿しないでください(規約違反です)。
回答が分散して回答者が二度手間になります。https://oshiete.goo.ne.jp/qa/9912860.html
LEDの明るさを調整する方法は、流す電流を変える方法とPWMを使う方法がありますが、電流を変えるのは困難ですので普通はPWMを使います。
PWMは専用のモジュールを積んだPICもありますが、3つのPWMを出力できるものは少ないので、自力でプログラムした方がいいでしょう。
LED調光程度であればPWM周波数1kHzもあれば人間の目に点滅が見えないくらいのものができます。まあ最初は分からないと思いますので適当に作って点滅が見えるようなら階調を減らして周波数を上げるのがよいでしょう。
簡単なPWMの作り方は、まず全部点灯し、時間待ちループを回すかタイマーを見て、適切な時間経ったところで目的のLEDを消すという流れになります。
なおLEDを発光させる時間と人間の目に映る明るさは比例しませんので、目的の色を出すのはわりと大変です。試行錯誤してください。
No.3
- 回答日時:
3色LED単体で行うには抵抗値を変化させての色変化で無くPWMなどの点滅(残像)でやったほうが分かりやすい。
抵抗値は3色のLED出力が最大になるような抵抗値にしておく。PWMは2個ぐらいしか実装されていないから足りない出力は擬似的にPWMを作り出すか通信使って2個で連動させるか。
ピン数にこだわりが無いならPIC16F1827など18ピン以上を勧める。どうしても8ピンなら12F1822か683。12F675でも出来無くないがPWMや通信機能が無いからそれを自力でプログラミングするのは大変。
それ以外ではコレ
http://akizukidenshi.com/catalog/g/gM-08414/
このタイミング見れば分かるけどRGB8ビットで転送すればその色になる仕掛け。
回答ありがとうございます。m(_ _)m
そのLED連結してはAruduinoで制御したことでしたらあります!
また、みなさんにいろいろ教えていただいた結果補足のようにスイッチで色を変える形にしようと思ったのですが可能でしょうか?
No.2
- 回答日時:
>可変抵抗器を0から最大(0〜5Vで合ってますか?)まで動かす間に赤〜橙〜黄〜黄緑〜緑〜水色〜青〜紫〜ピンク〜白みたいな感じで自由に色を作れたらと思います。
可変抵抗器は連続量を入力する装置ではなく、
0-255の値を入力する入力装置
と理解することです。
>一つの可変抵抗器で自由に色を作れたらと思い質問させていただきました。
デジタルの値とその時の色の関係の表の作り方次第で、使いやすいかどうかが決まりますので、自分の気に入った色が出せる関係を見出してください。
PICのプログラムとしては、
可変抵抗器の状態(電圧値?)をAD変換でデジタル化してPICに取り込み、
デジタルの値とその時の色の関係の表を作っておいて、
その表に従ってフルカラーLED(RGB)への制御信号をPICから出す
時間待ちして初めに戻る
ではいかがですか?
main()
{
int i;
while(1) {
i = getADdata(portI);
r=tableR(i);
g=tableG(i);
b=tableB(i);
putDAdata(portR,r);
putDAdata(portG,g);
putDAdata(portB,b);
wait();
}
}
といった感じでしょうか。
プログラムまでありがとうございます。m(_ _)m
参考にさせていただきます。
みなさんにいろいろ教えてもらい考えた結果やはりスイッチで色を変えるようにしたいのですがこれは可能でしょうか?
No.1
- 回答日時:
(´・ω・`)・・・
赤、緑、青、どのパラメータを変えるのかをマイコン側で指定して可変抵抗器の値を読み取るような使い方にするのでしょうか。
それとも全部を一度に変えたいという事でしょうか。
この手の物の正解は一つではありませんので、自身が行いたいことをどのようにして実現するかをまずは考えてみましょう。
その手段によって選択するパーツを選定するのです。
初めて使うのでわからないのですが返信はこのお礼というやつでいいのでしょうか?
________________________________
回答ありがとうございます。
やりたいこととしましては、可変抵抗器を0から最大(0〜5Vで合ってますか?)まで動かす間に赤〜橙〜黄〜黄緑〜緑〜水色〜青〜紫〜ピンク〜白みたいな感じで自由に色を作れたらと思います。とにかくこう行かなくても自由にいろいろな色を作れるようにしたいです。
もしくはボタンの場合ですが、押すたびにさっきのようにあらかじめプリセットした色を切り替えたいです。
12F675というPICを買ってきたのですがこれでできるのでしょうか?
よろしくお願いします。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 UCHIDA製、小型電動ロクロに使われているモータは? 3 2023/07/01 18:40
- プラモデル・鉄道模型・模型製作 ジオラマで使いたく電気部品のど素人なのですが 発光ダイオードで300個ほど付けたくて同じような物を使 2 2022/10/03 19:45
- その他(自然科学) LEDの接続について 2 2022/09/16 22:18
- その他(AV機器・カメラ) ★バッテリーの内部抵抗についてお尋ねします 7 2023/02/16 15:39
- その他(クラウドサービス・オンラインストレージ) Googleカレンダーの予定の色を変えたい、文字色を変えたい。 1 2022/10/18 21:43
- 物理学 ブリッジ回路回路について質問です。 ブリッジ回路が不平衡な場合は真ん中に電気が入り、平衡な場合は回路 2 2023/07/07 16:21
- 工学 測温抵抗体 2つの温調で利用できますか? 1 2022/11/22 21:18
- その他(趣味・アウトドア・車) FT-747GXの出力調整で、基板上で調整する可変抵抗はどこにあるか教えてください。終段に2SC32 1 2022/11/24 22:25
- 携帯型ゲーム機 Nintendo Switchの充電器について。 純正品の充電器が接触不良か断線で 充電しにくい状態 3 2022/11/13 12:11
- 工学 エミッタ設置増幅回路で下記の要件を満たす増幅器を設計せよ。 要件は必要要件であり、例えば、少なくとも 1 2022/12/16 10:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
EnumとType
-
シーケンスのプログラムについ...
-
スイッチでサーボ制御
-
USBからの電源供給をコントロー...
-
人感センサー、プログラミング...
-
液晶ディスプレィのバックライ...
-
マイコンボード上のポートと端...
-
PIC制御で出力ピンの名前に変数...
-
ディスプレイ上で起こる2重表...
-
ゲーミングPCでの質問です ゲー...
-
HDMIとHDの違いはなんですか? ...
-
【EX2510S】HDMIとDisplayPort...
-
HyperVで仮想マシンがネットワ...
-
サブネットマスクとのAND演算
-
Cpkのk(偏り)値をExcelで出す...
-
ワークグループとドメインの共存
-
TAとルーターの違いって?
-
フーリエ級数展開の問題
-
JEM1425とJEM1225の違いについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
USBからの電源供給をコントロー...
-
シーケンスのプログラムについ...
-
Picマイコンについて質問します...
-
マイコンボード上のポートと端...
-
arduinoで複数のサーボを動かし...
-
EnumとType
-
PCのUSBバスパワーの制御
-
C++でLEDを点灯させるプログラム
-
AVRマイコンの未使用ピンの処理...
-
PIC16F1827でPCとシリアル接続
-
VTRとマイコン
-
<単安定マルチバイブレータ> 単...
-
C言語についてですarduinoでこ...
-
コンピューターでラジコン操作?
-
フィードバック制御とフィード...
-
ATTINY13のリセット端子は無効...
-
三菱シーケンサのプログラムの...
-
Visual BasicでGP-IBの通信を制...
-
液晶ディスプレィのバックライ...
おすすめ情報
みなさん本当に回答ありがとうございます。m(_ _)m
いろいろ教えてもらった結果やはり、スイッチで操作しようということになりまして、スイッチを押すたびにもともとプログラムでプリセットしておいた(固定)色に変わっていくもの(押すたびに赤→橙→黄色→黄緑→緑→水色→青→紫→ピンク→白のように)にしたいと思いました。
これは可能でしょうか?