2009年12月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

最近のトラックバック

無料ブログはココログ

役に立ったAVRマイコンの本

« 2009年1月 | トップページ | 2009年3月 »

2009年2月

2009年2月26日 (木)

未成年飲酒喫煙防止カレンダーを作成したい その4

うるう年のチェックはこんな感じ・・・

「400で割り切れる」だの、「100で割り切れる」だのはここ数年関係ないし、今から30年分くらいあればいいだろうし(死んでるかも、笑)

かなり野蛮なプログラム・・・

clock03.JPG


;---------カレンダー用テーブルデータ------------------------------------------------
TB_U    ;うるう年の判断テーブル (YEAR1と比較)
        ADDWF   PCL
        DT      D'92',D'96',D'0',D'4',D'8',D'12',D'16',D'20',D'24',D'28'

TB_TDAY ;うるう年で無い月別日数(DAYの桁上がり)0番目はダミー
        ADDWF   PCL
        DT      D'0',D'32',D'29',D'32',D'31',D'32',D'31',D'32'
        DT      D'32',D'31',D'32',D'31',D'32'
TB_UDAY ;うるう年の月別日数(DAYの桁上がり)0番目はダミー
        ADDWF   PCL
        DT      D'0',D'32',D'30',D'32',D'31',D'32',D'31',D'32'
        DT      D'32',D'31',D'32',D'31',D'32'

---------< 中略 >-------------------------------------------------------------

以下はTMR0の割込ルーチン中で時間とカレンダーのカウントアップを行う。

;------- 時間計算 カウントアップ ------------------------------------------------
                INCF    SEC1,F          ; SEC1+1→SEC1 1秒カウントアップする。
                MOVLW   D'10'           ; 秒1ケタ目
                SUBWF   SEC1,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   SEC1            ; 0 → SEC1
                INCF    SEC10,F         ; SEC10+1→SEC10
                MOVLW   D'6'            ; 秒2ケタ目
                SUBWF   SEC10,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   SEC10           ; 0 → SEC10
                INCF    MIN1,F          ; MIN1+1→MIN1
                MOVLW   D'10'           ; 分1ケタ目
                SUBWF   MIN1,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   MIN1            ; 0 → MIN1
                INCF    MIN10,F         ; MIN10+1→MIN10
                MOVLW   D'6'            ; 分2ケタ目
                SUBWF   MIN10,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   MIN10           ; 0 → MIN10
                INCF    HOUR,F          ; HOUR+1→HOUR
                MOVLW   D'24'           ; 時間2ケタ分まとめて
                SUBWF   HOUR,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   HOUR            ; 0 → HOUR
;----- 日付カウントアップ まずうるう年のチェック---------------------------------------
        CLRF    POINT           ; テーブルポインタのリセット
TB_U_R
        MOVF    POINT,W         ; テーブルポインタの値をWregへロードする(OFFSET)
        CALL    TB_U            ; うるう年テーブルを呼び出す
        SUBWF   YEAR1,W         ; YEAR1-TB_U (例;96-96=0)読み出し値
        BTFSC   STATUS,Z        ; 演算結果がゼロかチェック ゼロ1 ゼロでない0
        GOTO    U_DATE1         ; 1の時一致でうるう年U_DATEへジャンプ
        MOVLW   D'9'            ; 0の時一致しない
        SUBWF   POINT,W         ; POINT-9
        BTFSC   STATUS,Z        ; 演算結果がゼロかチェック ゼロ1 ゼロでない0
        GOTO    DATE1           ; 1の時うるう年でないのでDATE1へ
        INCF    POINT,F         ; 0の時次をチェックの為テーブルポインタ +1
        GOTO    TB_U_R          ; TB_U_R のラベルへ戻り繰り返す
U_DATE1 ;------うるう年----------------------------------------------------
                INCF    DAY,F           ; DAY+1→DAY
                MOVF    MON,W
                CALL    TB_UDAY
                SUBWF   DAY,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   1H
                MOVWF   DAY             ; 1 → DAY
                GOTO    MON1
DATE1   ;------うるう年でない----------------------------------------------
                INCF    DAY,F           ; DAY+1→DAY
                MOVF    MON,W
                CALL    TB_TDAY
                SUBWF   DAY,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   1H
                MOVWF   DAY             ; 1 → DAY
; --------------------------------------------------------------------------
MON1            INCF    MON,F           ; MON+1→MON
                MOVLW   D'13'           ; 月2ケタ分まとめて
                SUBWF   MON,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   1H
                MOVWF   MON             ; 1 → MON
                INCF    YEAR1,F         ; YEAR1+1→YEAR1
                MOVLW   D'100'          ; 年下2ケタ分まとめて
                SUBWF   YEAR1,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   YEAR1           ; 0 → YEAR1
                INCF    YEAR2,F         ; YEAR2+1→YEAR2
                MOVLW   D'100'          ; 年上2ケタ分まとめて
                SUBWF   YEAR2,W
                BTFSS   STATUS,C
                GOTO    CLKEND
                MOVLW   0H
                MOVWF   YEAR2           ; 0 → YEAR2
CLKEND

---------< 中略 >-------------------------------------------------------------

プログラム書いてる時は集中してるから理解出来るんだけど、注釈付けても後から見返すとサッパリ忘れている(笑)

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

PCBE 16F877Aテストボード その1

ライブラリにいくつか部品を登録したし、そろそろPIC16F877Aのテストボードを作ろうと思う・・・

かなり進んだと思ったがなんか変だぞ?!

test877_01.jpg

部品登録した16F877AのポートCが左右逆転している(笑)

赤×の接続はNG、反転印刷機能があるから表から見た部品にして配線作図してもいいのかも

皆さんやっぱり「裏から見る」で書いてるんでしょうなぁ?

「基板の裏から見る」で錯覚する時あるんだよな・・・画像右のADM3202はOKだ!

test877_02.jpg

部品は作成する時に「部品のファイル」を作って部品登録する前の元を取っといた方が良いと思う。

これを切り張りして別の部品作って登録したり修正したりできるから、どうしてかって、登録した部品を呼び出して逆分解すると完全に分解されてしまう。テキストもラインで判断されるし(笑)移動とかコピーがやりずらいから。

赤丸のテキストを入れ替えて保存すればいいんだが・・・

test877_03.jpg

同一名の部品は上書きされないので、古い部品を一旦削除しなければならない

最初はエディタでライブラリを直接編集してたけど、メニューに「部品削除」ありました(汗)

test877_04.jpg

test877_06.jpg

test877_07.jpg

とりあえず修正した。アースラインだけパターンを変えてみた。アースの塗りつぶしは最終チェック後に・・・

ポートは集中ピンにして、オンボード書込ピンとI2C通信用ピンなどを配置してある。

しかし40ピンのPICはでけえなぁ(笑)

基板が大きいよ(泣)周辺ボードや液晶含めるとまた以前の「スパイ大作戦」みたいなケースになっちゃうんだろうか(笑)

test877_05.jpg

さあうまくいくかな(笑)

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

2009年2月20日 (金)

未成年飲酒喫煙防止カレンダーを作成したい その3 ビデオ

日付表示プログラム部分も追加した。50倍速で動作チェック・・・
うるう年も判断している。詳細は後日に・・・

1997年はうるう年じゃない2月28日の次は3月1日・・・

1996年はうるう年、2月28日の次は2月29日・・・

年替わり表示チェック・・・1999年12月31日の次は2000年1月1日(笑)

2009年2月18日 (水)

未成年飲酒喫煙防止カレンダーを作成したい その2 ビデオ

タイトル変えようかな、なんか恥ずかしくなってきた(笑)

テスト1 10MHzレゾネータで1秒 (20ms×50)

テスト2 液晶表示チェック用に20ms×1にしてみた。50倍速(笑)

つまらん内容ですんません

未成年飲酒喫煙防止カレンダーを作成したい その1

うわ~スゲェータイトルになってしまった(笑)

とりあえずTMR0で1秒作って時計もどき・・・

clock02.JPG

何がしたいかって?

今日が2009.02.18 だとして 身分証で1989.02.18より後の誕生日だとしたら未成年だよね!それを液晶表示したい・・・

「市販のカレンダー時計を日付ずらして表示すれば」って・・・まぁせっかくのマイコンですから(笑)

前回の車速パルス検出でタイマTMR0で20ms(本当は19.968msなので誤差あり)を作ったからそれを50倍して1秒にしてみた。

1秒の表示変数は10で桁上がり

10秒の表示変数は6で桁上がり

1分の表示は数は10で桁上がり

10分の表示変数は6で桁上がり

時間の変数は2ケタ分で24で桁上がりし表示時10進に変換している。

さらにこれにカレンダー変数を追加する予定・・・

10MHzのレゾネータ(オシレータ)で1秒作ってるのであまり精度は良くない。

超高精度クリスタルモジュールKTXO-18Sってあるよね12.8MHzの・・・これ使えば精度良いし256プリスケーラでも割り切れるし・・・10msが作れて100倍して1秒になる。

時刻、カレンダーセットプログラムも作んなきゃなんないし先が長いな(笑)

なにもかも中途半端ですんません

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

 

葉加瀬太郎いいかも・・・

就職が決まったバイトの入社前研修が始まり、ここんとこシフトが安定しないのでまとまって時間が取れない(泣)

息子が「どっか行きたい」ので先日、松尾の図書館に行って来た。

借りてきたのはこれ

IMG_2198.JPG

私は右の青の6枚組ジャズCD・・・

息子は左のわけわからんヒーリングオムニバスを借りると言う・・・何だそれは???

息子「ハカセタロウだよ」

私「博士太郎だぁ~(何じゃそのふざけた名前は)」

じゃなくて葉加瀬太郎でした(笑)帰りに車で聞いたらこりゃええわ!他のアルバムも聞いてみたい!

破損したファスナーのロック部を再生してみた。

「着たきりすずめ」状態のモンベルのクリマプラスジャケット。正式な名前は忘れた。

mbf_01.JPG

ファスナーのロック部が折れた・・・(泣)

景気悪いしお金ないし新しいの買えないし・・・

ファスナー以外は問題ないがロック部が無いので閉めても下から開いてくる(笑)

mbf_02.JPG

樹脂製なのとL型突起形状なので強度的に弱いんでないかい???

まあ。私が力入れすぎなのかもしれない(笑)イライラしてたし・・・

mbf_03.JPG

アルミで作ろうかと思ったが小さいんで思いついたのがこれ(笑)

mbf_04.JPG

お決まりの万力に挟んで金ノコで切る(笑)

mbf_05.JPG

こんな感じ・・・

mbf_06.JPG

仮合わせ・・・いーんじゃない?!

良く観察すれば構造は理解出来る

mbf_07.JPG

縫いつけようにドリルで穴開けた

mbf_08.JPG

服側の樹脂部にも穴開けるので位置検討中・・・

mbf_10.JPG

エイ!開けてしまえ

mbf_11.JPG

裁縫は得意じゃないんで(笑)とりあえず仮縫いしてみた!

ちゃんとファスナー閉まるしロックされて下から開いてくることは無い!

mbf_12.JPG

金具の余った部分は折り曲げてかしめて強度増してある・・・

mbf_13.JPG

これでまたしばらく使えそう・・・良かった!

参考に、こういった単純形状だと壊れにくい気がする・・・

mbf_14.JPG

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

2009年2月13日 (金)

ヒステリシスのあるコンパレータプログラム その4 完

先のビデオ撮るのに使ったのがこれ(笑)

hyst01.JPG

100円均一のダイソーで買ってきた「ルーレットゲーム」「マグネットダーツの矢4本入り」計200円

矢からマグネットほじくり出して(笑)ルーレット盤に粘着テープで固定。

黒いのは自転車のスピードセンサーです。

回転が渋いので車速コントロールが大変(笑)ですが、ビデオ撮影だけですから(笑)

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

ヒステリシスのあるコンパレータプログラム ビデオ

やっと撮れました(笑)
速度9km/h以上で赤LEDが消灯し、その後、速度4km/h以下にならないと点灯しません。
先のプログラムでヒステリシスは正常に動作していると思われます。


2009年2月12日 (木)

PCBE プリント基板そろそろ再開・・・(笑)

なんかやってないと気が済まないから(笑)

電子工作がお金掛けずに頭使えるから(笑)

PCBEで作画してるうちにこーやってどんどんライブラリに部品登録してけばいいのだ!

※部品の取付穴はパターンレイヤーで印刷しない部品の形状や文字はシルクのレイヤーを使う。

これはFC-10P LCD用

FC-10P.jpg

74HC14 インバータ

74HC14.jpg

ライブラリの編集も秀丸エディタ

LIB.jpg

追伸;秋月のHP見てたら「8×2のACM0802CBBH」とか「白色LEDのSC2004CSWB」とか出てて欲しくなるよ!(笑)

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

2009年2月10日 (火)

ヒステリシスのあるコンパレータプログラム その3

あまりもったいぶってると怒るよな(笑)

ヒステリシスのあるコンパレータプログラムにしてみた。RA0の出力をコントロール

赤字が変更追加箇所、青字でRA0のLOW/HIGH状態を見ているのだが・・・

;------<中略>-------------
                CLRF    PORTA           ;※ポートA出力OFF
;------<中略>-------------
;-------------コンパレータ追加 ※ヒステリシス追加 --------------------------
                BTFSS   PORTA,0         ;※ポートAの0ビット(RA0) 状態を見る
                GOTO    COMP_DN         ;※RA0=0出力offならCOMP_DNへ
                MOVLW   D'9'            ;※RA0=1出力onの時、比較値を9とする。
 
               SUBWF   CONT3,W         ;
                BTFSS   STATUS,C        ; CONT3-9≧0→C=1,CONT3-9<0→C=0
                GOTO    COMP_ON         ; C=0なら「COMP_ON」へ
                CLRF    PORTA           ; C=1ならポートA出力OFF
                GOTO    COU_0           ; COU_0へジャンプ
COMP_DN         MOVLW   D'5'            ;※比較値を5とする。
                SUBWF   CONT3,W         ;※
                BTFSS   STATUS,C        ;※CONT3-9≧0→C=1,CONT3-9<0→C=0
                GOTO    COMP_ON         ;※C=0なら「COMP_ON」へ
                CLRF    PORTA           ;※C=1ならポートA出力OFF
                GOTO    COU_0           ;※COU_0へジャンプ
COMP_ON         MOVLW   B'00001'        ; C=0でポートA出力ON
                MOVWF   PORTA
;--------------コンパレータ終了----------------------------------------------
;----------パルスカウント用CONTを10進変換----------------------------------------
COU_0           MOVLW   0
;------<中略>-------------

車速4km/h以下でで出力ON、車速9km/hに上がったら出力OFFする。

さあ一発でクリアできたら

砂漠でのバクゥ戦でストライクの接地圧プログラムを戦闘中に変更するキラヤマト並か(笑)

って実は一発じゃなかったが、テストして、これで正常に動作してると思います。ビデオは後日にでも・・・

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

ノアのルームランプ・・・

なんか検索ワードに「ノアのルームランプコネクター」が含まれてたので、古いネタですが・・・

赤が「バッテリー電源線」、黒はドア連動の「ドアスイッチ経由のアース」だったと思う・・・

単独ONスイッチのアースは取付ネジで車体アース。

flu03.JPG

flu04.JPG

後部ルームランプはヨット・クルーザー用蛍光灯をスイッチ改造して換装してある(笑)

fluled06.JPG

fluled04.JPG

flu08.JPG

flu09.JPG

蛍光灯を頻繁にON/OFFすると黒ずんで寿命が早い・・・

fluled02.JPG

ので空きスペースにLEDを追加して普段はこっちを使い・・・

蛍光灯は運転席から遠隔で点灯するように変更しました。

fluled13.JPG

LEDのみ点灯

fluled14.JPG

LED+蛍光灯点灯

fluled16.JPG

実車LED点灯です。

fluled17.JPG

蛍光灯用遠隔スイッチです。

fluled18.JPG

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

 

2009年2月 9日 (月)

昨日は神奈川の境川・引地川沿いの藤沢・大和自転車道を走ってきました。

早朝、6時30分に千葉を出発。

途中、東名高速の港北PAで朝食、浜丼?を食う

 sakai01.JPG

横浜町田ICを出て246号沿いの泉の森公園の第2駐車場にノアをデポ

駐車場9:00~17:00ですが10分前で開いてました。

 sakai04.JPG

自転車を降ろして準備・・・

 sakai05.JPG

書籍の指示通り246を上らずに迂回路の鶴間駅前を抜けて境川へ出る。

車道を走り慣れてれば246号の方が良いのかも知れないが・・・パイパスでトンネル立体交差化されてるからどーかな?

 sakai08.JPG

藤沢・大和自転車道のカンバンです。

 sakai09.JPG

藤沢に向けてGO、最初は薄曇りでした

 sakai12.JPG

路面にも表示あり

 sakai13.JPG

走り易い道だと思います

 sakai16.JPG

途中、一般道も走ります

sakai10.JPG

また専用道路になります。

 sakai21.JPG

 sakai22.JPG

sakai23.JPG

sakai25.JPG

sakai28.JPG

以前、川崎に住んでた子供の頃に行ったことがある閉園したドーリンムランドに併設の妙な形の高層ホテル・・・

今は横浜薬科大学のシンボルタワーらしい・・・

sakai31.JPG

そろそろサイクリングロードの終点、右の東屋にはサイクリストが一杯。

sakai32.JPG

サイクリングロードは境川・引地川で赤の部分しかない。後は一般道か川沿いを目指して走ることになるが帰りはとんでもなかった。

sakai33.JPG

sakai34.JPG

桜?咲いてる

sakai36.JPG

sakai37.JPG

梅は当然(笑)

sakai38.JPG

 藤沢橋からは道が良く解らず

sakai39.JPG

車道は走ったり川沿いに無理矢理復帰したり・・・

sakai40.JPG

ちょっとコンビニで休憩

sakai41.JPG

最初、川の右へ出て間違えましたが東海道線は川の左の踏切わたります。

sakai43.JPG

踏切わたると川があって錯覚しますが右が境川です。

黄色の矢印へ向かいます。

sakai44.JPG

未舗装路もあって走りにくいですが、プレジャーボートも見えてきて海が近い。

sakai49.JPG

走りにくいタイル貼もある。

sakai50.JPG

もう近い?

sakai51.JPG

一部住宅街を抜けると江ノ島駅

sakai52.JPG

江ノ島へ渡って自転車をデポ。土曜日なので観光客が多い

sakai54.JPG

sakai55.JPG

わたしは「しらす丼」、息子は「えのしま丼」を喰らう

sakai56.JPG

sakai57.JPG

帰りは引地川で・・・これが失敗だった。サイクリングロードは少ししかなく未舗装路やわけわからん道の連続・・・ひとんち入っちゃったりして(笑)

素直に境川往復の方がいいと思いました。

sakai58.JPG

引地川も短いですがサイクリングロードあります。

sakai59.JPG

sakai62.JPG

sakai63.JPG

未舗装路は走るのに精一杯で写真撮れませんでした。住宅街も道間違えるとアップダウンの連続(笑)

sakai64.JPG

なんとか厚木基地までたどり着いた、あー疲れた(笑)

ここまで来ればゴールの泉の森自然公園は近い

sakai66.JPG

ここからは疲れて画像ありません。泉の森自然公園内は広くいくつか駐車場があるので迷子にならないように駐車場の位置を把握しておいた方が良いでしょう。

この後、よせばいいのに横浜町田IC近くのクランベリーモールへ寄って映画見てリターンしました。

で翌日娘に眼がはれぼったいと言われました(笑)

私は車の運転があるので寝てしまおうかと思ったのですが・・・SF好きなので見ちゃいました(笑)

sakai67.JPG

軟弱で冬用のサイクルウエアが無い、調達しないと・・・何がいいんだろう?

今回私ははミズノブレスサーモ極寒地用にスキーウエア、息子はアンダーアーマーにジャージとスキーウエア、ごわごわしてかえって疲労が激しいと思う(笑)

 

2009年2月 7日 (土)

江ノ島に居る

江ノ島に居る
江ノ島に居る
泉の森公園から境川サイクリングロードで

2009年2月 5日 (木)

土曜日に神奈川の境川と引地川サイクリングロードを走ろうかと思っている・・・

息子の高校が決まったが、野球部引退してから受験で運動してなかったせいか

「お前、腹出てきてないかい?」

「うるさいな!わかってんだよ!早く自転車乗ろうぜ!」

「---(笑)---」

sakai01.JPG

 

何か報告しに来たぞ・・・

「わかれました」って・・・計画が大幅に狂ってないかぃ?

かわいそうだよなぁ、不謹慎になるので(笑)は入れません。

週末の数学の勉強は大丈夫だろか?・・・

2009年2月 4日 (水)

ヒステリシスのあるコンパレータプログラム その2

と言いながら、とりあえずヒステリシスの無いコンパレータプログラム部です(笑)

誤記あるかもよ!

----<中略>-------------------------
;-------------コンパレータ追加----------------------------------------------
                MOVLW   D'9'            ; 比較値を9とする。
                SUBWF   CONT3,W
                BTFSS   STATUS,C        ; CONT3-9≧0→C=1,CONT3-9<0→C=0
                GOTO    COMP_ON         ; C=0なら「COMP_ON」へ
                CLRF    PORTA           ; C=1ならポートA出力OFF
                GOTO    COU_0           ; COU_0へジャンプ
COMP_ON         MOVLW   B'00001'        ; C=0でポートA(RA0)出力ON
                MOVWF   PORTA
;--------------コンパレータ終了----------------------------------------------
;----------パルスカウント用CONTを10進変換----------------------------------------
COU_0           MOVLW   0
----<中略>-------------------------

これにヒステリシスを追加すればいいんだが・・・(笑)

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

車速信号検出、中間まとめ2

追記です。画像からも判ると思いますが、速度表示変更してます。

先行き3桁7セグメントLED表示するかもしれないし(笑)

「変更前」 「変更後」

005  →   5

047  →  47

108  → 108

CALLするTABLEを A’0123456789’ と B’ 123456789’ の2種類用意し、3桁目はB、1桁目はAで2桁目は

3桁目が0ならBをCALL、3桁目が0以外ならAをCALLするようにプログラムしました。

下記、抜粋プログラム載せたって意味ないよな(笑)プログラム全体633行もあるから載せられない・・・

 

-----------------<中略>------------------------------------------------------
                MOVLW   D'1'            ; 100以下の時10の位が0なら
                SUBWF   XX_100,W        ; ブランクとなるように
                BTFSC   STATUS,C        ; XX_100-1≧0→C=0、XX_100-1<0→C=1
                GOTO    SPD10_0         ; C=0ならSPD10_0へ
        CALL    LCD_BUSY_4              ; C=1なら0の時10の位ブランク表示
        MOVF    XX_10,W
        CALL    DAT_X100_BL
        CALL    LCD_DATA_4
        GOTO    SPD1_0                  ; SPD10_0をスキップ

SPD10_0 ;--------0の時10の位0表示
        CALL    LCD_BUSY_4      ;
        MOVF    XX_10,W
        CALL    DAT_X100
        CALL    LCD_DATA_4      ;
-----------------<中略>------------------------------------------------------

DAT_X100                        ; 10進表示0有り
        ADDWF   PCL
        DT      "0123456789"

DAT_X100_BL                     ; 10進表示0をブランク表示
        ADDWF   PCL
        DT      " 123456789"

まあこんな感じ(笑)です。

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

自粛モード継続中3・・・

自分の子供じゃないが、自分の子供以上に難しい・・・うちら夫婦だけで考えてても答えが出せなかっただろう・・・

世の中には立派な人物がいるもんだ、知人の夫婦が協力してくれている。

その娘も自身が問題を抱えているにも係わらず協力しようとしている・・・電子コンパスを作ってあげた娘である。

仕事の姿勢見てても判ってたけど、やっぱりもの凄くいい娘なんだな・・・

自粛モード継続中2・・・

重たい話しばかりなので押しつぶされそうだが・・・

あのB型の子と話してると何故か癒される・・・会話は相変わらず支離滅裂ですが(笑)1時間半もよく話せるなぁ・・・

しかし、「私、禁煙してるんです偉いでしょ」っておまえなぁ~あたり前だろ(笑)

もっと凄い会話あるけど書けない(笑)

なんかのギャグじゃないんだから、難しい話しすると後ろ向いてるうちにいなくなるのやめろよな!独りでしゃべってるわしバカみたいじゃん(笑)

ジムニー車速信号読み取りビデオ

ジムニーに液晶SD1602オレンジバックライト装着。液晶表示プログラムを1ms待ちからビジーチェックに変更し、コンパレータ追加。車速110km/hまで表示確認。
ブレてます、すんません。

車速信号検出、中間まとめ

本題は「自作のノアのフロントカメラ切替器を車速で制御したい」が目的なので、大分逸脱してしまってますが、色々解ったことまとめて置きます。

簡単なフローチャートを書くソフトがあれば良いのですが、プログラム作成の大体の流れは下記です。

媒体はPIC16F84A

1.テストで液晶表示プログラムを完成させた。しかしビジーチェックは初期化のみ行っていて1文字書いた後に1msの待ち(WAIT)を設けていた。

2.書籍を参考に入力の立ち上がりと下がりを検出して信号をカウントする単純なプログラム作成、10進に変換して液晶表示させることに成功した。

3.TMR0による割込で20msのタイマーを追加、その倍数の間、信号をカウントして分解能が車速1km/hとなるプログラム追加。

4.74HC14を介して実車の車速信号が読みとれるか実験しとりあえず信号を読みとれた。車速信号の発生メカニズムがジムニーとノアで異なり、74HC14のインターフェースは2種類となった。

5.ジムニーの高速走行で車速表示のズレ発生、1回転で4パルスでなく6パルスであることを検証。

これは偶然解ったことで大きな間違いがあった。1回転4パルスだと20ms×102の間信号をカウントすることになる。1回転6パルスだと20ms×68のところ×102カウントしたら実際の車速より表示車速でかくならないか(笑)あ~キラヤマトにはほど遠い(笑)

そう、単純なカウント表示に待ち時間の長い液晶表示プログラムをくっつけたので信号の取りこぼしが生じているのではないか(笑)

下表は車速と信号の周期を表したもの、1文字1msで16文字更新するのに16msかかると車速70km/hまでしか表示できないのではないか?

3文字表示くらいだったらこのプログラムでも読めるかも(笑)

文字数
km/h mm/s p d(mm) mm/p p/s s/p ms/p 16 3
160 44444.4 6 700 366.3 121.32 0.0082 8.2  
150 41666.7 6 700 366.3 113.74 0.0088 8.8    
140 38888.9 6 700 366.3 106.16 0.0094 9.4    
130 36111.1 6 700 366.3 98.57 0.0101 10.1    
120 33333.3 6 700 366.3 90.99 0.0110 11.0    
110 30555.6 6 700 366.3 83.41 0.0120 12.0    
100 27777.8 6 700 366.3 75.83 0.0132 13.2    
90 25000.0 6 700 366.3 68.24 0.0147 14.7    
80 22222.2 6 700 366.3 60.66 0.0165 16.5    
70 19444.4 6 700 366.3 53.08 0.0188 18.8  
60 16666.7 6 700 366.3 45.50 0.0220 22.0    
50 13888.9 6 700 366.3 37.91 0.0264 26.4    
40 11111.1 6 700 366.3 30.33 0.0330 33.0    
30 8333.3 6 700 366.3 22.75 0.0440 44.0    
20 5555.6 6 700 366.3 15.17 0.0659 65.9    
10 2777.8 6 700 366.3 7.58 0.1319 131.9    
9 2500.0 6 700 366.3 6.82 0.1465 146.5    
8 2222.2 6 700 366.3 6.07 0.1649 164.9    
7 1944.4 6 700 366.3 5.31 0.1884 188.4    
6 1666.7 6 700 366.3 4.55 0.2198 219.8    
5 1388.9 6 700 366.3 3.79 0.2638 263.8    
4 1111.1 6 700 366.3 3.03 0.3297 329.7    
3 833.3 6 700 366.3 2.27 0.4396 439.6    
2 555.6 6 700 366.3 1.52 0.6594 659.4    
1 277.8 6 700 366.3 0.76 1.3188 1318.8    


6.大きな問題があること解っていながら、最悪、液晶表示プログラムを外せばこのプログラムでも車速判断ユニットは製作出来るのでそのままコンパレータプログラムを追加し確認した。

7.TMR0のタイマーは使用済みなのでTMR1や2の無い16F84Aではパルスカウンタを追加することはできないよね?16F877Aを使ってみるか?いやちょっと待てよ液晶表示プログラムで1文字1msの待ちをきちんとしたビジーチェックにすれば時間短縮できないか?

ちょっと手こずりましたが待ち無しのビジーチェックプログラムに変更出来ました。1文字ごとにビジーチェックしてます。累積時間は不明ですが車速110km/hくらいまで実車で表示できました。しかしどこで信号取りこぼしが出るか解らないのがネックです(笑)

さらにもう一つ解りました、待ち1msのときは正常に表示出来ていた延長ハーネス液晶がビジーチェックでは表示出来ません。ハーネスを短くしたら表示できました。ビジーチェックプログラムの方が高速に動いているのでしょう。

ビデオも撮りましたがジムニーの場合、相変わらずブレます(笑)

画像は途中で信号線外して液晶表示フリーズして停車時撮影したものです。

busy_c01.JPG

表をメンテしたもの、現在1バイトしか扱えないので距離計265のところ255でカウントしてます。

速度計 距離計  
条件名称 円周率 タイヤ動荷重直径
(いい加減値)
タイヤ1回転のパルス数 1パルスが
1km/h
となる時間
オシレータ TMR0
タイマー時間
必要サイクル数 100(m)走行時
パルス数
  備考
π d(mm)

n(pu

lse)

x(s) f(MHz)

(ms)

c=x*

1000/z

P=100/(πd/(n

*1000)

 
テストプログラム **** **** ** **** 10 20 100 13    
ジムニー誤
185/85R16
3.14152 722 4 2.04 10 20 102 176    
ジムニー
185/85R16
3.14152 722 6 1.36 10 20 68 265 10 255以上
ジムニー
175/80R16
3.14152 690 6 1.30 10 20 65 277 22 255以上
ノア
195/60R15
3.14152 616 4 1.74 10 20 87 207    
自転車
700C
3.14152 700 1 7.92 10 20 396 45   255以上

 

単純なプログラムなので解ったことがもう一つありました。ジムニーの車速信号はリードスイッチによるものなので、タイヤ位置によって信号がHIGHの状態で停止することがあります。ノアはスキッドコントロールコンピュータが信号を出しているのでこういったことはないでしょう。

jimny_pulse_high.jpg

まあ、こんなところです(笑)

HP「ジムニーおや爺の部屋」
http://homepage3.nifty.com/jimny-oyaji/

自転車 サイクリング 電子工作
PIC 16F84A
プリント基板
ジムニー JA12W ノア AZR65G

自粛モード継続中・・・

恵方巻は無事終了したのだが・・・・

仕事に関係ないところで問題発生、自粛モード継続中・・・

プログラムみたいに答えが出せれば苦労しないんだが(苦笑)

内容は重すぎて書けない、解決したら書こう・・・

« 2009年1月 | トップページ | 2009年3月 »

フォト

役に立ったPIC書籍リスト