2016-03-04 Fri
組み立てをするのに、キャップスクリューをよく使います。近くのHCでもだいたい手に入るのですが、専用の座金は、
HCでは手に入りません。
私は、よく、ねじNO1COMを利用します。
まとめて買えば安いのですが、品物によって購入の最低数
が決まってます。
今回も、M3のキャップスクリューのスプリングワッシャを購入
しましたが、最低購入数が119個でした。
キャップスクリュー用のスプリングワッシャは、座繰りのなか
におさまるように、径が少し小さくなってます。
値段は、一個2円なので、たいした額ではないのですが、
必要数以上に購入しないとだめです。それこそ、一生分の
個数ですね。
今回は、きりよく120個注文しました。それだけでは、240円
です。
2016-02-20 Sat
動作の確認をしていて、いくつか不具合がありましたので、多少、プログラムの変更をしました。
ほとんどといっていいほどコメントをいれていませんでした
ので、自分で作ったプログラムの解釈に時間がかかりました。
以下の変更をしました。
延長のブザーを鳴らす時間 1分→→30秒
スタート・ストップに出力のON・OFFを合わせる。
キットで遊ぼうで、PICのプログラムを覚えて、初めて作った
長めのプログラムです。プログラム領域のおよそ
70パーセントを使ってます。備忘録のために、掲載して
おきます。
HANDA-TIMER.txt
ところどころ、なんで、こんな変数使ったのか、分からない
のが沢山あります。
2016-02-19 Fri
追加の自己保持回路を組み込み、思った動作できるようになりました。
時間の設定→スタート→1分延長(ブザー)→電源OFF
の動作です。
動作時間の設定後、スタートボタンを押すと、カウントダウン
が始まって、設定時間だけ、半田ごてに電源が入ります。
設定の時間のカウントダウンが終了して0になると、ブザー
がなり始め、1分間続きます。このブザーの鳴っている1分間
の間にスタートボタンを押すと最初に設定した時間で
カウントダウン(延長)を始めます。
ブザーが鳴ってる時にスタートボタンを押さないでそのままに
すると半田ごての電源も自分自身の電源もOFFになります。
4年越しに思った動作ができるようになりました。
2016-02-11 Thu
なめらかにスクロールする方法について、いろいろアドバイスいただきました。
ハードルが高い部分もあって、なかなか実現できません。
とりあえず、当初の目的である、PCからの入力を表示する
ことができました。
PICを初めてから、いつも迷ってたのが、文字のキャラクター
コードの扱いです。
VB等では、キャラクターコード得るには、
Asc('A')
のように「Asc」の関数を使うようです。プログラムを初めて
覚えたBasicでも同じような関数を使ったと思います。
このことが頭に残っていて、関数を使わなければ、と思い
こんでいました。
なんのことはない、コンピューター上では、同じ、数字で扱わ
れるんですね。ですから、アスキーコードを得て、演算をする
には、端に「int」型にキャストすればいいということがやっと
わかりました。
char c1 = 'a';
int code1 = (int)c1;
これで、code1には、’a’のキャラクターコードの0x61を得る
ことができました。
キーボードからの入力を表示するにあたって、大文字のデータ
しかいれていませんので、小文字は、0x20を引いて、
char c1 = 'a';
int code1 = (int)c1-0X20;
大文字に変換しました。
2016-02-05 Fri
諸兄のHPを参考に、PICを使ってサインボードを作りました。何の使用目的もない、ただのおもちゃです。
ただ、諸兄のHPで使ってる74HC154は製造中止でしたの
で、これまた、諸兄のHPを参考に、74LS138二つで置き換
えて作りました。
三日ぐらいかかって、配線を終えて、どのような形で、流れる
サインボードを実現するか考えました。
参考になるC言語によるプログラムがみあたらなかったので、
過去の7セグLEDを使った工作を思い出しながら、
ダイナミック点灯を基本にプログラムを組むことにしました。
8×8のLEDが4枚ですので、8×32列のLEDがならんでます。
この黄色い□から黄色い□までのLEDに、タイマー割り込みを
使って、このLEDとダブるように準備したメモリーの内容を
書き出すことにしました。
テレビで使われている走査線のイメージでしょうか。
メモリーには、縦に8個並んでいるそれぞれのLEDの
ON-OFFの情報を書き込みます。
右にスクロールさせるには、メモリーの左側の山吹色の部分
に表示させる文字のデーターを書き込みます。
左にスクロールさせるには、メモリーの右側の青色の部分に
表示させる文字のデーターを書き込みます。
「A」の表示をさせるには、
16進数7個をメモリーに書き込みます。
左側に書いてある数字が、上から左端の縦の列の情報に
対応します。
これをスクロールさせるには、メモリーに書いてある情報を
それぞれ、一つ右側のメモリに移動する、ということで、実現
します。
多分、このほかにもスクロールの方法があるのでしょうが、
自己流で、作製しました。
実際に動かして見ると、すーっと流れるような表示には、
なっていません。
なめらかにするには、もう少し、工夫が必要なんでしょうね。
アルファベットのA~Zまでの大文字のデーターを入れると、
それだけで、ほぼメモリーが満杯です。
倍のメモリーのある16F1939に変更してみようと思います。
USARTを使って、PCのデータをスクロールさせるのが目標
です。
2016-01-10 Sun
震災の前にDIYで実家に建てた工房(12畳)ですが、外壁の痛みが進んできました。
特に、日の当たる東側が激しいです。
外壁は節約のため野路板を使って、テーブルソーで
ラベッティング加工して、外壁にしました。
はじめからラベテッィング加工してあるのは、確か、3倍以上
の値段がしてたと思います。ただ、安かった分なのか、
木材自体がまだ生乾きで、テーブルソーで、加工しているとき
もダドカッターにしめった切りくずがこびりつきました。
そのままぴったりの間隔で外壁として組み合わせたので、
そのまま乾いて、かなり収縮して、隙間が大きくできた所
もでてきました。
野路板の下には、一応防水紙がはってあるので、直接は
雨水はかからないと思いますが・・・・・・。
収縮したために、所々浮いている場所が見られましたので、
プチ修理ということで、ステンレスのビスでとめ直しました。
キシラデコートも薄くなってきたので、そのうち再塗装するよう
かなと思います。
2016-01-08 Fri
XIDEに開発環境を移した時はv3.10でしたが、まもなくv3.15がでたので、ちょっとたってからVUPしました。
2.3日前でしょうかXIDE操作してるとv3.20のリリースの
バルーンがでてきました。
まだ、VUPはしていませんが、バグフィックス版なのでしょうか、
それとも新しい機能が追加されたのでしょうか。近々VUP
してみようと思います。
PICのプログラムをするのに困ってたのが、「congif」の設定
で、PICの種類ごとに特有?の設定をするのが面倒でしたが
XIDEでは、以下の方法で、自動設定できます。
Window-PIC Memory Views-Configration Bits
とたどります。
すると下記の画面になりますので、
矢印のOPTIONの各項目をクリックします。すると、ON、OFF
等の選択ボックスがでますので、設定に応じて選択をします。
設定が全部おわったら、右クリックをして、
Configration Source Code Outputをクリックすると、
設定してあるPICのConfigのコードが生成されます。
これを全部コピペするとConfigのできあがりです。
2015-12-07 Mon
道のりは、長いです。自作手パの無線化を進めてきましたが、一つ、疑問だったこ
とが解決できそうですので、仕様?を変更してみたいと思い
ます。
今までの無線手パでは、A相B相の信号は、直接送っていま
せんでした。A相とB相の信号から、CWの信号とCCWの信号
に変換して、CWの信号とCCWの信号を送りました。
受信側で、CWとCCWの信号に応じて、パルスを生成してい
ました。
このようにしてたのは、A相・B相の立ち上がりの検出はでき
たのですが、立ち下がりの検出方法が分からなかったから
です。
NANDゲート等を使ってNOT・A相を作ればいいというアドバイ
スをいただきました。下記のような回路で、試作してみようと
思います。
CWやCCWのの判定をするのに、立ち上がりでの外部
割り込みを使いましたが、NOT・A相、NOT・B相を作ることで
A相B相の立ち下がりを立ち上がりとして検出できそうですの
で、状態変化割り込みでNOT・A相、NOT・B相の検出を追加す
るだけですから、それほど大きな変更はしなくてすみ
そうです。
2015-12-04 Fri
以前アドバイスいただいたことを試してみようと、下記のような実験回路を組みました。
この回路で、
while(1){
PORTA=~PORTA
WaitTime(20000);
}
初期設定はありますが、このプログラムを走らせました。
すると、最初は、思った動作をしますが、
途中で、止まってしまいます。プログラム的には、間違いは
ありません。
PICの足に触ると、動き出したり、止まったり、動作が安定し
ません。
通常は、○ドウインの基板を使ってテストしてますが、
この基板で動いて、ブレッドボードで実行すると、回路は、
間違ってないのに動かないという事象に遭遇しました。
違いを考えると、○ドウインの回路は、リセットの回路が組まれ
ていますが、ブレッドボードでは、組まれていません。
NETで検索するとありました。MCLRと呼ばれるリセットに使わ
れる端子を有効にしておくと、リセットの回路がない状態で
は、不安定になるとありました。
そこで、前述のプログラムのconfigの設定を、
MCLREN→MCLRDIS
にして、再度コンパイル、それで、動かしてみました。
あっけなく動きました。
アドバイスいただいた通りの動作でした。
LEDの極性を反対にして、ポートにつなぐのが味噌です。
プログラムでは、時間をおいて、HIGHとLOWを繰り返して
るだけです。
こうすることで、PICがHIGHになると吸い出し?でLEDが
点灯し、LOWになると吸い込みでLEDがつきます。
私には、目から鱗でした。
PICのポートが少ない時は、応用ができ
そうです。
TOP PAGE △