
マイコン(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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
USBからの電源供給をコントロー...
-
H8マイコンの端子の数字の端子...
-
Picマイコンについて質問します...
-
nsecオーダーの信号の時間計測...
-
ディスプレイ上で起こる2重表...
-
RS232C 通信でエラー(受信が正...
-
HDMIとHDの違いはなんですか? ...
-
ゲーミングPCでの質問です ゲー...
-
プリント基板のパターンの修復方法
-
HDMI接続のパソコン液晶モニタ...
-
DVIと、HDMIの切り替え
-
J-COMでルータ導入後、プロキシ...
-
ZCTの比率について
-
はんだ揚りってなんでしょう。
-
USB・シリアル変換ケーブル...
-
新しくNUROを引いたらlot機器や...
-
富士通デスクトップパソコンに...
-
HyperVで仮想マシンがネットワ...
-
VMware のネットワーク設定につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
マイコンボード上のポートと端...
-
USBからの電源供給をコントロー...
-
シーケンスのプログラムについ...
-
振幅スペクトル、位相スペクト...
-
Picマイコンについて質問します...
-
MFCのシリアル通信でCTS/DSR取得
-
AVRマイコンの未使用ピンの処理...
-
pic始めたいです
-
マイコン(PIC)を使って可変抵抗...
-
マイコンを使った時のセンサー...
-
組み込み マイコン 部品をミス...
-
C++でLEDを点灯させるプログラム
-
コンピューターでラジコン操作?
-
ラダープログラムについて
-
デジタル時計(アラーム付)を...
-
VBでUSBポートからの入力を制御...
-
AVRでサーボモータの制御プログ...
-
H8/3052マイコンを使ってホパル...
-
PIC16F1827でPCとシリアル接続
おすすめ情報
みなさん本当に回答ありがとうございます。m(_ _)m
いろいろ教えてもらった結果やはり、スイッチで操作しようということになりまして、スイッチを押すたびにもともとプログラムでプリセットしておいた(固定)色に変わっていくもの(押すたびに赤→橙→黄色→黄緑→緑→水色→青→紫→ピンク→白のように)にしたいと思いました。
これは可能でしょうか?