ただ単に左右をON/OFFするだけでは面白く無いので、明るさも制御出来るようにしようかと思っています。
ベースクロックかタイマー周期を上げて高速にON/OFFさせ、ON/OFFの比率を変えれば、明るさが変えられます。
専門的にはPWM制御の事ですね。
2008-05-02
2008-04-30
2008-04-29
流れるウインカー基板 予備基板
せぃさんバージョン以外にもう1個作成しました、色々テストをするための予備基板です。
マイコンを抜き出ししやすいようにスペースを空けています。
LEDのプラス側も2系統制御して片側だけで8連にならないかと考え中です。
良く考えると左右とも同じパターンなのでプラス側をON OFFするだけで大丈夫なのではと思っています。
基板のサイズは変わらずトランジスタの追加だけで考えています。
頭の中ではバッチリなのですがどうかなぁ。
マイコンを抜き出ししやすいようにスペースを空けています。
LEDのプラス側も2系統制御して片側だけで8連にならないかと考え中です。
良く考えると左右とも同じパターンなのでプラス側をON OFFするだけで大丈夫なのではと思っています。
基板のサイズは変わらずトランジスタの追加だけで考えています。
頭の中ではバッチリなのですがどうかなぁ。
2008-03-29
ICウインカーリレー
流れるウインカー基板をテストしているとウインカーの様にON/OFFさせるのがめんどくさくなり作ってしまいました。
パワーMOS-FETを使用しているので車やバイク(12V)でもしっかり使える本格的なものです。
タイトルのリンク先に詳しく製作記事が載っています。
ICやMOS-FETの説明が無いのでぐぐってデータシートを取り寄せて作成しました。
100kΩの抵抗を半固定にして4.7μFのコンデンサを10μFに変更して点滅速度を変更できるようにしてみました。
これでテストが楽になりました。
2008-03-25
流れるウインカー基板 せぃさんVer PG作成中
ウインカーSWの回路変更のプログラム修正をして動作確認しました。
とりあえずKAYOちゃんバージョンと同じ動きはできました。
パターン追加の要望があったので、その対応とせぃさんバージョンのウェイクアップを考えないといけませんね。
とりあえずKAYOちゃんバージョンと同じ動きはできました。
パターン追加の要望があったので、その対応とせぃさんバージョンのウェイクアップを考えないといけませんね。
2008-03-24
流れるウインカー基板 せぃさんバージョン 基板完成
流れるウインカー基板 せぃさんバージョン 完成です。
ウインカーSWの回路を変更しているのでプログラムも変更が必要です。
とりあえずKAYOちゃんバージョンと同じ動きをするところまで直したいと思います。
ウインカーSWの回路を変更しているのでプログラムも変更が必要です。
とりあえずKAYOちゃんバージョンと同じ動きをするところまで直したいと思います。
2008-03-23
流れるウインカー基板 せぃさんバージョン 基板作成中
基板のパターンも決まり作成に着手しました。
両面スルーの基板は半田が反対側に流れて意外に使いにくかった、用途を考えて選択する必要があるようですね。
そんな感じで部品はつけたけどパターンの配線ができていません。
2008-03-18
流れるウインカー基板 せぃさんバージョン 着手
第1作目(KAYOちゃんバージョン)が上手くできたので、2作目に着手しました。
こんどはせぃさんバージョンになります。
まったく同じでは面白くないのでバージョンアップを考えています。
今考えているのは。
・基板はガラスエポキシで両面スルー(ちょっと高級?)を使う。
・ウインカーSWの入力部にフォトカプラ-を使用する。
・基板の配線パターンの最適化。
・ワンタッチウインカー
(ちょんとSWを入れるだけで一定時間ウインカー動作する)
この機能は本人に確認しないといけませんね。
部品はほとんどそろったので基板の配線パターンの見直しをしています。
基板の配線パターンを考えるのはパズルみたいで面白いですよ。
きれいにパターンが出来た時には、ちょっとうれしいですね。
こんどはせぃさんバージョンになります。
まったく同じでは面白くないのでバージョンアップを考えています。
今考えているのは。
・基板はガラスエポキシで両面スルー(ちょっと高級?)を使う。
・ウインカーSWの入力部にフォトカプラ-を使用する。
・基板の配線パターンの最適化。
・ワンタッチウインカー
(ちょんとSWを入れるだけで一定時間ウインカー動作する)
この機能は本人に確認しないといけませんね。
部品はほとんどそろったので基板の配線パターンの見直しをしています。
基板の配線パターンを考えるのはパズルみたいで面白いですよ。
きれいにパターンが出来た時には、ちょっとうれしいですね。
2008-03-14
流れるウインカー基板 作成後記
今回、作成してみて一番はまったのが動作クロックですね。
内部クロックをF88ではプログラムで設定しないといけない。ということに気づかなかった。
プログラムの先頭に4MHzで動作させる場合は次のコマンドが必要です。
OSCCON = %01100100
当然、OPTIONレジスタの設定も必要です。
タイマー割り込み関係のみを抜き出してみました。
参考にしてください。
(空白に全角文字を使っているのでコピペには注意)
program F88WINKER
dim counter as word
’割り込み処理
sub procedure interrupt
'ここで割り込み処理を記述します。
inc(counter) ' Increment value of counter on every interrupt
TMR0 = 64
INTCON = $20 ' Set T0IE, claer T0IF
end sub
’初期処理
sub procedure init_rtn
OPTION_REG = $82 ' Assign prescaler to TMR0
counter = 0 ' Initialize counter
TMR0 = 64
INTCON = $A0 ' Enable TMRO interrupt
end sub
main:
OSCCON = %01100100 ' 内部クロックを4MHzに設定
init_rtn ’初期処理
while true
’メイン処理
if counter = 200 then ' if counter is 200, then
' ここで一定周期ごとの処理をする
counter = 0
end if
wend
end.
内部クロックをF88ではプログラムで設定しないといけない。ということに気づかなかった。
プログラムの先頭に4MHzで動作させる場合は次のコマンドが必要です。
OSCCON = %01100100
当然、OPTIONレジスタの設定も必要です。
タイマー割り込み関係のみを抜き出してみました。
参考にしてください。
(空白に全角文字を使っているのでコピペには注意)
program F88WINKER
dim counter as word
’割り込み処理
sub procedure interrupt
'ここで割り込み処理を記述します。
inc(counter) ' Increment value of counter on every interrupt
TMR0 = 64
INTCON = $20 ' Set T0IE, claer T0IF
end sub
’初期処理
sub procedure init_rtn
OPTION_REG = $82 ' Assign prescaler to TMR0
counter = 0 ' Initialize counter
TMR0 = 64
INTCON = $A0 ' Enable TMRO interrupt
end sub
main:
OSCCON = %01100100 ' 内部クロックを4MHzに設定
init_rtn ’初期処理
while true
’メイン処理
if counter = 200 then ' if counter is 200, then
' ここで一定周期ごとの処理をする
counter = 0
end if
wend
end.
2008-03-05
流れるウインカー基板 最終調整
ちょっと、修正して色んなパターンに対応できるようにしました。
・ウェイクアップ動作後、現在の設定パターンがわかるようにハザード動作をするようにした。
・モード切替時に、設定パターンがわかるようにハザード動作をするようにした。
・ON/OFF動作を続けて行うパターンも可能にした。
・パターンを3種類から6種類に増やした。
動作は下記の動画を参照してしてください(重いよ!30MB)
・ウェイクアップ動作後、現在の設定パターンがわかるようにハザード動作をするようにした。
・モード切替時に、設定パターンがわかるようにハザード動作をするようにした。
・ON/OFF動作を続けて行うパターンも可能にした。
・パターンを3種類から6種類に増やした。
動作は下記の動画を参照してしてください(重いよ!30MB)
| 流れるウインカー |
2008-03-02
2008-02-28
流れるウインカー基板 スイッチ入力処理
複数のパターン処理対応も済み、スイッチ入力の処理に取り掛かっています。
スイッチ入力の骨組みが出来ました。
モード切替、ウインカー右、ウインカー左の入力の処理を作ればほぼ完成のところまできました。
スイッチ入力はチャタリングというものがあり、ONにしただけなのに接触不良当でON/OFFを繰り返す症状をいいます。
これがあるとPICマイコンは処理が早いのでその都度処理が走ってしまい、たとえばモード切替をしたつもりでも何回もボタンを押したことになり、正常に処理が出来ません。
短時間でのON/OFFは処理しないようにプログラムが必要です。
頭の中で一気に考えてコーディングしましたが、すんなり動きました。(良かった!)
週末には一度お披露目できるかも?
スイッチ入力の骨組みが出来ました。
モード切替、ウインカー右、ウインカー左の入力の処理を作ればほぼ完成のところまできました。
スイッチ入力はチャタリングというものがあり、ONにしただけなのに接触不良当でON/OFFを繰り返す症状をいいます。
これがあるとPICマイコンは処理が早いのでその都度処理が走ってしまい、たとえばモード切替をしたつもりでも何回もボタンを押したことになり、正常に処理が出来ません。
短時間でのON/OFFは処理しないようにプログラムが必要です。
頭の中で一気に考えてコーディングしましたが、すんなり動きました。(良かった!)
週末には一度お披露目できるかも?
2008-02-27
流れるウインカー基板 パターン処理
パターン処理も骨組みが出来ました。
複数パターンを考慮しスイッチ入力の処理をつければ全体的な骨組みが出来ます。
スイッチ入力が簡単なようで難しいのです、これはちょっと後回しにしています。
参考資料・・・
const ptntbl as byte[15] = ($00,$18,$3C,$7E,$FF,$E7,$C3,$81,$00,$00,$00,$00,$00,$00,$00)
const ptnctl as byte[15] = (1,2,3,4,5,6,7,0,0,0,0,0,0,0,0)
const ptntim as byte[15] = (2,1,0,0,0,0,1,2,0,0,0,0,0,0,0)
こんな感じでパターンの情報をもたせます。
ptntblの変数が実際のパターンを管理します。
上記の場合こんな感じで点灯します。
○○○○○○○○ $00 0番目
○○○●●○○○ $18 1番目
○○●●●●○○ $3C 2番目
○●●●●●●○ $7E 3番目
●●●●●●●● $FF 4番目
●●●○○●●● $E7 5番目
●●○○○○●● $C3 6番目
●○○○○○○● $81 7番目
以下繰り返し
データは16進でセットしています。
ptnctlが次のパターンを示しています。
1,2,3,4,5,6,7,0と順に7番目までセットすると次は0番目に戻りぐるぐる繰り返すように設定しています。
ptntimが時間(回数)です。設定された数値+1回セットします。
これを考慮して説明すると
○○○○○○○○ $00 0番目 2
○○○○○○○○ $00 0番目
○○○○○○○○ $00 0番目
○○○●●○○○ $18 1番目 1
○○○●●○○○ $18 1番目
○○●●●●○○ $3C 2番目 0
○●●●●●●○ $7E 3番目 0
●●●●●●●● $FF 4番目 0
●●●○○●●● $E7 5番目 0
●●○○○○●● $C3 6番目 1
●●○○○○●● $C3 6番目 1
●○○○○○○● $81 7番目 2
●○○○○○○● $81 7番目 2
●○○○○○○● $81 7番目 2
こんな感じになります。
メインの処理です、あくまでも参考です。
main:
init_rtn
while true
if counter > speed then ' if counter is speed, then
led = ptntbl[ptnstep]
inc(ptncnt)
if ptncnt>ptntim[ptnstep] then
ptnstep=ptnctl[ptnstep]
ptncnt=0
end if
counter = 0
end if
sw_chk
PORTB =led
wend
end.
複数パターンを考慮しスイッチ入力の処理をつければ全体的な骨組みが出来ます。
スイッチ入力が簡単なようで難しいのです、これはちょっと後回しにしています。
参考資料・・・
const ptntbl as byte[15] = ($00,$18,$3C,$7E,$FF,$E7,$C3,$81,$00,$00,$00,$00,$00,$00,$00)
const ptnctl as byte[15] = (1,2,3,4,5,6,7,0,0,0,0,0,0,0,0)
const ptntim as byte[15] = (2,1,0,0,0,0,1,2,0,0,0,0,0,0,0)
こんな感じでパターンの情報をもたせます。
ptntblの変数が実際のパターンを管理します。
上記の場合こんな感じで点灯します。
○○○○○○○○ $00 0番目
○○○●●○○○ $18 1番目
○○●●●●○○ $3C 2番目
○●●●●●●○ $7E 3番目
●●●●●●●● $FF 4番目
●●●○○●●● $E7 5番目
●●○○○○●● $C3 6番目
●○○○○○○● $81 7番目
以下繰り返し
データは16進でセットしています。
ptnctlが次のパターンを示しています。
1,2,3,4,5,6,7,0と順に7番目までセットすると次は0番目に戻りぐるぐる繰り返すように設定しています。
ptntimが時間(回数)です。設定された数値+1回セットします。
これを考慮して説明すると
○○○○○○○○ $00 0番目 2
○○○○○○○○ $00 0番目
○○○○○○○○ $00 0番目
○○○●●○○○ $18 1番目 1
○○○●●○○○ $18 1番目
○○●●●●○○ $3C 2番目 0
○●●●●●●○ $7E 3番目 0
●●●●●●●● $FF 4番目 0
●●●○○●●● $E7 5番目 0
●●○○○○●● $C3 6番目 1
●●○○○○●● $C3 6番目 1
●○○○○○○● $81 7番目 2
●○○○○○○● $81 7番目 2
●○○○○○○● $81 7番目 2
こんな感じになります。
メインの処理です、あくまでも参考です。
main:
init_rtn
while true
if counter > speed then ' if counter is speed, then
led = ptntbl[ptnstep]
inc(ptncnt)
if ptncnt>ptntim[ptnstep] then
ptnstep=ptnctl[ptnstep]
ptncnt=0
end if
counter = 0
end if
sw_chk
PORTB =led
wend
end.
2008-02-26
2008-02-16
流れるウインカー基板
流れるウインカー基板出来ました。
PICマイコンのプログラムはこれからです。
PICマイコンのプログラムはこれからです。
全部半田で基板のパターンを作ったのでちょっと大変でした。
動作確認用のLED基板も作成して準備完了です、プログラム作成頑張ります。
2008-01-26
流れるウインカー バイク編
本拠地で普通車のウインカーを流すの製作記事をのせていましたが、せいさんと力を合わせて今度はバイクのウインカーを流してみたいと思っています。
普通車のウインカーを流すでは、ロジックIC(シフトレジスタ)を使いましたが、自由なパターンでできるようにPICマイコンで制御を考えています。
制御系は自分が担当で実装系はせいさん担当になるのではと思います。
PICの開発はmikroBASICを使う予定ですが、思うようにならないときはアセンブラで切り替える予定です。
いままで色々やりかけましたが、実装系が面倒で挫折していましたが、今回は力を合わせてできるのでいいものができるのではと楽しみにしています。
普通車のウインカーを流すでは、ロジックIC(シフトレジスタ)を使いましたが、自由なパターンでできるようにPICマイコンで制御を考えています。
制御系は自分が担当で実装系はせいさん担当になるのではと思います。
PICの開発はmikroBASICを使う予定ですが、思うようにならないときはアセンブラで切り替える予定です。
いままで色々やりかけましたが、実装系が面倒で挫折していましたが、今回は力を合わせてできるのでいいものができるのではと楽しみにしています。
登録:
投稿 (Atom)



