vividさんのPICプログラム その1

記事の表示に欠落がありました、逆に混乱させることになり申し訳ありませんでした。

私の記事の誤りであり、vividさんのプログラムには間違いはありません。

え〜、本日は思いっきり他人のふんどしで相撲を取るを実演しますw

何かと言うと、実は先日vividさんのブログであるプログラムが公開されたのですが、これが実に使いやすくて便利なのです。

2016_05_15_16_52_56.jpg

最近の模型は電飾が花盛りで、ただ単に点灯させるだけでなく点滅させたりして色々な工夫がされてきていますよね。実際私もAVRを用いて色々なものを仕込んでいます。そのためPICを使い始める方が増えているとは思うのですが、最大の問題は自分の欲しい点滅をさせるプログラムを如何にするかですよね〜。

私も初期の頃(格好つけていますが現在もですw)はネットで使えそうなプログラムを探して来てはそれを少しいじって使うということがほとんどでした。そのいじるためにもやはりプログラムの勉強をしないとチンプンカンプンです。

で、今回vividさんが作成されてプログラムは、PICの書き込みとかできる知識はあるけど、プログラムがチンプンカンプンという方にはすごく便利だと思います。点灯様式は定期的な点滅、順番に点滅、ランダムな点滅の3種類です。

 

詳細はこちら「趣味を楽しむEnjoy your hobby」をご覧ください。

できたらコメント欄まで読まれることをお勧めします。

ここで公開されているプログラム中の「 点滅設定定義エリア」の数字を書き換えるだけで色々な動作をしてくれます。

とりあえずまずはvividさんオススメのこちらのサイトや検索して配線やプログラムの書き込み方法はマスターしてください。実は私もPICの使用はほとんど初めてみたいなもので、配線の仕方から勉強し直しました^^;

では実際に使って行ってみます。

2016_05_15_16_52_48.jpg

20ピンVDDには電極のプラス

8,19ピンVSSには電極のマイナス

1ピンMCLRには電極のプラス

9,10ピンにはセラロックの20MHz

2~6ピンRA0~RA4、21~28ピンRB0~RB7に抵抗をつけたLEDを接続しますが、プログラムは負理論でできているのでPIC側にカソードを接続します。アノード側は直接電源のプラスに接続します。

以上を接続していきます。

2016_05_15_16_52_44.jpg

分かりにくいかもしれませんがこんな感じになります。(下の方のマイコンはまったく関係ありません。)

で、提示いただいているプログラムの「 点滅設定定義エリア」の数字を変えて試してみました。

まずは全てのLEDを定期点滅で時間を3つずつ変更した物を試してみます。

つまり{x,y,z}のx=13、zを3つずつ3、6、9、12に設定してみました。

yは触らないでください。ちゃんと動作しなくなります。

2016_05_15_16_52_59.jpg

実際の動作はこんな感じです。

それぞれ3つずつ定期的な点滅をしています。もちろんパラメーターを変えることで点滅させる時間と個数の変更ができます。

 

次に流れる点滅です。これは順番に流れるようにしていますが、途中から流れる速さを変えています。

xは流れる順番にzははじめは3で途中から6、9とスピードが遅くなるように設定しました。

2016_05_15_16_53_03.jpg

実際の動作はこんな感じです。

順番に流れて途中からスピードが変化していますね。もちろん時間のパラメーターを同じ数字にすれば同じ速度で最後まで流れます。

 

次にランダム点滅です。これはランダムな点灯で点灯の切り替わりの時間を変えることができます。

x=0でzの時間は右の6個は速い切り替えで、左の6個は遅い切り替えです。

2016_05_15_16_53_07.jpg

実際の動作はこんな感じです。

右側と左側のLEDのランダムな切り替え時間が違うのがわかると思います。

 

で、最後に上記のものが混ざった動作もできます。ここがこのプログラムのありがたいところで、タイマー割り込みなどのプログラムがわかなくても、動作してくれるんですよ〜。

まずは右LEDの5個は順次点灯(xが1〜5)で中央のLED4個は点滅の周期が違う2つづつの定期点滅(x=13)で左のLED4つがランダム点灯(x=0)です。

時間(z)はそれぞれ順次点滅には3、定期点滅には5と12、ランダムには8を代入しています。

2016_05_15_16_53_10.jpg

実際の動作はこんな感じです。

それぞれのLEDの動きと上記の数字の関係が理解できると思います。

つまりこれひとつあれば大概の点滅がまかなえます。

正直なところこれらを同時に動かすのには私の知識では対応できないので、いつもマイコンの数を増やして対応していましたwこれがあるとファルコンのあの点滅回路もこれひとつにまとめられます。

vividさんのご好意で公開されていますので、人様のプログラムですがあまりにも便利なのでご紹介させていただきました。PICに興味あるけどプログラムがな〜という方にはうってつけのプログラムだと思います。

関連すると思われる記事:

12 comments

  1. こんばんは!

    自慢ではありませんが、“まったく”チンプンカンプンです…^^;
    電飾をやっていると最終的にはここに行き着くのだろうなと思いますが、それが自分に当てはまるイメージは一向に湧きません…^^;(笑
    でもきっといつかは… という希望だけは持っていようと思います!

  2. 早速Vividさんのプログラムを実験していらっしゃいますね!
    ホントVividさんは素晴らしく便利なものを作って下さいましたよね~!
    感謝感激です!
    6jiroさんはAVRもPICもCも使いこなしていらっしゃるので凄いです(-o-;)

  3. おはようございます!

    小ブログの記事をご紹介頂き、ありがとうございました。
    ちょっと恥ずかしいような、、、、
    でもお役に立てて良かったです。
    また、いろいろ考えて見ますね。
    宜しくお願いします。

  4. こんにちは!

    タイマーIC555を使ってLED2個点滅にてファルコンコックピットの電飾を制作していましたが
    今回この記事を見てPIC挑戦してみようと思いました!(^O^)
    秋月さんに早速注文して挑戦します!
    電源の質問ですが12V1.25AのACアダプターでは減圧しないとダメなのでしょうか?
    12V1.25Aと12V2AのACアダプターが仕事の関係で手持ちに捨てるほどあるのでPICでも利用できればと思っています。

  5. Quasimodoさん こんばんは!

    ごめんなさい!記事の途中がごっそり抜け落ちて表示されている部分がありました。欠落しているのですが、よく知らない人が見ると「そういうもんなんだ~」と思えるような文章のつながりしていまして混乱させて申し訳ありませんでした。

    やはり電飾しているといろいろな欲がでてきますからね~。そうなるとPIC等のマイコンがあると便利ですよね~。ただ、現在はいろいろな回路が売っていますのでそれでも十分な効果が出るとは思います。
    実際レッサーかずさんは市販の物であそこまで素晴らしい電飾やギミックの仕込みをされていますしね^^。

  6. yangminさん こんばんは!

    ホントvividさんには感謝ですよね~。プログラムの提示も凄くありがたいですが、そのプログラムを私やyangminさんが理解できるまで色々と教えてくださるので凄くありがたいですよね。私たちのプログラミングの師匠ですね^^。

    AVRはだいぶ慣れてきたのですが、PICの方は今回ようやく配線の仕方がわかりましたwそんなレベルですのでとても使いこなしているとは言えません^^;
    cは、初めの設定部分のみPICとAVRでお作法が違いますが、そのほかの部分では共通なので何とか理解することが出来る程度で、自分でプログラミングなんてまだまだです^^;

  7. Vividさん こんばんは!

    Vividさんのふんどしで相撲を取らせていただきました^^;。
    すみません。
    あのプログラムホント便利で、皆さんにもご紹介したかったので記事にさせていただきました。

    色々といじらせていただきましたが、実に簡単に動作を変えることができて、時間も自由に選べるのはホントありがたいです。

    あと…・PWMも何とかなりませんかねwと図々しいお願いをしてみますw

  8. mitachi39さん こんばんは!

    おっ!PIC挑戦されてみますか!
    頑張ってください!!!
    正直なところ、c言語等を理解するのは初めはかなり難しいです。
    実際私も独学でいろいろと勉強しましたが、かなり大変でした^^;。
    ただ、プログラムを書けなくても今回ご紹介したvividさんのプログラムでしたら、数字を変えるだけでいろいろな点滅が可能です。
    ぜひトライしてみてください!
    とりあえず、PICにプログラムを書き込めるところまでいけば(ここに到達するのは意外と簡単です。ネットの情報どうりやればできるようになります。)いろいろな道が開けると思います。
    さらに、プログラム言語を少し勉強して弄ることができるようになれば、それこそ無限の可能性が広がります!(言い過ぎかw)
    ガンバです!

    電圧についてですが、今回のPIC16F876は4~5.5Vの様ですので、12vを使用される場合は減圧が必要ですね。

    取り合えず
    ブレッドボード
    ブレッドボード用の配線
    PIC16F876A
    抵抗各種(今回は2kΩ使用しました。)
    5Vアダプター
    ブレッドボード用のアダプタージャック
    セラロック20MHz
    LED
    があれば今回のテスト回路が組めます。
    全部秋月電子で購入しました^^。
    すみません 肝心な物忘れたいました。
    PICライター(書き込み用のセットです、私はPICKIT3を使用しています。)です。
    それと秋月さんの「Pickit対応ICSP書き込みアダプターキット」も使用していますが、なければブレッドボード上でも書き込みできます。

  9. 6jiroさん

    PWMの御希望、承知しました!(笑)
    動作としては、1-2秒周期で、LEDがじわっと点滅を繰り返す感じでしょうか?
    あるいは、指定の周期とデューティー比で、PWMパルスを出力する感じでしょうか?

    コマンドが、あと一つ分取れますので、何とかできると思います。
    PIC16F876AにはせっかくPWMが内蔵されていますので。

  10. vividさん こんばんは!

    うわw図々しいお願いを受けてくださりありがとうございます!
    指定の周期とデューティー比でPWMパルスが出せればどんな点灯でもできますよね。その分プログラムが大変な事になりそうですが^^;
    もし可能・・・・いえvividさんなら間違いなく可能だと思います。お手数がかかると思いますが、できましたらよろしくお願い致します。

  11. こんにちは!

    何から何まで細かく教えて頂きありがとうございます。
    秋月さんに本日注文しました。
    がんばって挑戦してみます。
    また何かわからないことがあればどうぞよろしくお願いします

  12. mitachi39さん こんばんは!

    ガンバです!
    とにかくPICに書き込みができるところまでさえ行けば何とかなります^^。
    その先はいろいろと楽しく、難しいプログラムが待っていますが、vividさんのプログラムを活用すれば大丈夫です!
    私もPIC初心者なので一緒に頑張りましょう^^。

Leave a Reply

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

wp-puzzle.com logo