title0a.gif

Memorandumの小部屋

本ページは金銭授受を伴う行為を含むAuctionや商用Web Pageからの無断リンク・無断参照を禁じます。
無断リンク・無断参照が判明した時点で然るべき処置をとらさせて頂きます。


フラッシャーがウインカーに化けた!!!

2色LEDボードを動かしました。

 

 16×2桁 2色(赤、緑)LEDボードを秋月電子通商で見つけて、いつかフラッシャーを製作しようと衝動買いして、そのままに部品箱のなかに入れっぱなしとなっていました。  しかし、とうとう背中を押して頂く機会があり、フラッシャのつもりで16×2桁 2色(赤、緑)LEDボードを使ったフラッシャを製作してみることにしました。

 

kit169a1.jpg (26183 バイト)


【 基本仕様 】

 一応フラッシャのつもりですので、LEDの点灯パターンを切り替えることができるようにしないとけません。 最初は点灯パターンをプログラムで作成するつもりでしたが、後でパターン変更をするときに 、またプログラムを書き直す必要が出てきます。 このため、予め決まられた幾つかのパターンを繰り返し表示する方法をとることにしました。

 16×2桁 2色(赤、緑)LEDボードの制御をワンチップマイコンPIC16F84Aで行い、点灯パターンはEEPROMに書き込むことにします。 EEPROMは64バイトですので、16×2桁 2色(赤、緑)LEDボードのLED個々に点滅の設定を行うとすれば1パターン当たり8バイト必要になりますので、8バターンの設定対応の仕様とします。 このときのパターン番号をパターン0〜パターン7とします。

点灯パターンの切り替えに関して表1で示す選択ができるようにします。 最大点灯パターンがパターン7より小さい場合でも有効な点灯パターンだけを繰り返し表示できるようにしています。

表1 点灯条件 (8パターン)
電源投入時 全LEDを消灯後、パターン0で表示。
Reset / Start 切り替え Reset 全LEDを消灯状態を保持。 保持からの復帰時にはパターン0から再開する。
Start Free Run Mode/ External Mode 切り替え Free Run Mode HOLD / RUN HOLD

  

現在の点灯パターンの状態でホールド
RUN 点灯パターンを周期的に変更
Forward / Reverse Forward パターン0→1→・・・→MAX→パターン0と正順方向にシーケンシャルに切り替え。
Reverse パターン0→MAX→・・・→1→パターン0と逆順方向にシーケンシャルに切り替え。
Pattern 最大パターンMAXを3ビットで設定。 (*1)
External Mode Write Patternで選択された番号の点灯パターンで点灯する。
Pattern 点灯パターンを3ビットで設定。

(*1) 例 Forward設定で Pattern = 5 の場合

パターン0→パターン1→パターン2→パターン3→パターン4→パターン5→パターン0→・・・・・を繰り返し切り替え。


【 ハードウエア仕様 】

 上記の仕様をもとに製作したマイコン部分の回路図を下記に掲載します。

 点灯パターンの切り替え周期はプログラムで変更できるようにするのではなく、PIC16F84のRC発振周波数を変えることで連続的に可変することができるようにします。 今回のように周期の再現性や精度を特に問わない用途ではRC発振がお手軽です。

 また、16×2桁 2色(赤、緑)LEDボード付属の取扱説明書では緑→赤のデータをRSI入力から32ビットシリアル転送する回路ですが、下記回路では赤と緑それぞれ独立してデータ転送を行うようにしています。

 

 上記回路のPIC16F84Aの入出力ピンの割り当てを表2に示します。

 

表2 PIC16F84A I/Oピン割付  (8パターン)
Pin名称 Pin番号 接続先 信号名称 信号レベル Low 信号レベル High
RA0 17 SW2 - 1 Reset / Start Reset (SW2 - 1 on) Start (SW2 - 1 off)
RA1 18 SW2 - 2 Free Run / External External (SW2 - 2 on) Free Run (SW2 - 2 off)
RA2 1 SW2 - 3 HOLD / RUN HOLD (SW2 - 3 on) RUN (SW2 - 3 off)
RA3 2 SW2 - 4 Forward / Reverse Reverse (SW2 - 4 on) Forward (SW2 - 4 off)
RA4 3 SW1 Write  High(SW1 on)→Low(SW1 off)で、patternで選択されされ た点灯パターンのデータをLED表示する。
RB0 6 SW2 - 5 Pattern -  b0 SW offで論理1  , SW onで論理0

RB2,RB1,RB0で点灯パターン0〜7を設定

RB1 7 SW2 - 6 Pattern -  b1
RB2 8 SW2 - 7 Pattern -  b2
RB3 9 SW2 - 8 Pattern -  b3 未使用
RB4 10 LEDボード GSI 16×2桁 2色(赤、緑)LEDボード付属の取扱説明書参照願います。
RB5 11 LEDボード LATCH
RB6 12 LEDボード RSI
RB7 13 LEDボード GCLK/RCLK

 

 実際に製作した基板を下記に掲載します。

 

【 マイコン基板 】

【 全体外観 】


【 ソフトウエア仕様 】

 点灯バーターンが8パターンのプログラムのHEXファイルを下記に掲載します。 下記ファイル名を右クリックして「ファイルに保存する」を選んでダウンロードして下さい。

2led01.hex (3,217byte)

 このときのEEPROMエリアの点灯パターンの割付を以下に記載します。下記の割付にしたがってEEPROMエリアを書き換えてお使い下さい。

表3 EEP−ROM点灯パターン割付  (8パターン)
アドレス パターン LED色 位置 LED No.

LEDのbit割付

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 0 31〜17 D31 D29 D27 D25 D23 D21 D19 D17
1 15〜01 D15 D13 D11 D9 D7 D5 D3 D1
2 32〜18 D32 D30 D28 D26 D24 D22 D20 D18
3 16〜02 D16 D14 D12 D10 D8 D6 D4 D2
4 31〜17 D31 D29 D27 D25 D23 D21 D19 D17
5 15〜01 D15 D13 D11 D9 D7 D5 D3 D1
6 32〜18 D32 D30 D28 D26 D24 D22 D20 D18
7 16〜02 D16 D14 D12 D10 D8 D6 D4 D2
8〜15 1 アドレス0〜7と同じ
16〜23 2 アドレス0〜7と同じ
24〜31 3 アドレス0〜7と同じ
32〜39 4 アドレス0〜7と同じ
40〜47 5 アドレス0〜7と同じ
48〜55 6 アドレス0〜7と同じ
56〜63 7 アドレス0〜7と同じ

 

 また、PIC16F84AのI/Oピン割付は以下のようになります。

表4 PIC16F84A I/Oピン割付  (8パターン)
Pin名称 Pin番号 接続先 信号名称 信号レベル Low 信号レベル High
RA0 17 SW2 - 1 Reset / Start Reset (SW2 - 1 on) Start (SW2 - 1 off)
RA1 18 SW2 - 2 Free Run / External External (SW2 - 2 on) Free Run (SW2 - 2 off)
RA2 1 SW2 - 3 HOLD / RUN HOLD (SW2 - 3 on) RUN (SW2 - 3 off)
RA3 2 SW2 - 4 Forward / Reverse Reverse (SW2 - 4 on) Forward (SW2 - 4 off)
RA4 3 SW1 Write  High(SW1 on)→Low(SW1 off)で、patternで選択されされ た点灯パターンのデータをLED表示する。
RB0 6 SW2 - 5 Pattern -  b0 SW offで論理1  , SW onで論理0

RB2,RB1,RB0で点灯パターン0〜7を設定

RB1 7 SW2 - 6 Pattern -  b1
RB2 8 SW2 - 7 Pattern -  b2
RB3 9 SW2 - 8 Pattern -  b3 未使用
RB4 10 LEDボード GSI 16×2桁 2色(赤、緑)LEDボード付属の取扱説明書参照願います。
RB5 11 LEDボード LATCH
RB6 12 LEDボード RSI
RB7 13 LEDボード GCLK/RCLK

  

 上記HEXファイルのサンプルデータでの点灯パターン実例を右図に掲載します。

 右図の上から点灯パターン0、1,2,3,4,5,6,7です。

 実際に動かして雰囲気を見てみましたが、フラッシャというよりウインカになってしまいました。 めりはりがないようです。

 点灯パターンデータが悪いのかもしれませんが、点灯パターンが8個しかないのも問題ではないかと思い、さらに点灯パターン16パターン版を作成してみることにしました。 これは以下の節に記載します。

 なお、パターン0は点灯するけれども、LEDが変化しないときには以下の確認をして下さい。 本プログラム開発途中でこれを忘れて無駄時間を費やしてしまいました。

  • External設定となっていないか。
  • Free RUNでRunの場合、Pattern設定がLow (SW2-5,6,7がOn)になっていないか。

 

       

【 16パターン対応 】

 点灯バーターンが8パターン ではやはりパターン数が不足していそううです。 このため、上下のLEDを同時に点灯させることにして点灯パターン当たりの必要バイト数を8バイトから4バイトにして点灯パターンを16パターンに増やしたプログラムも作成しました。

 このプログラムのHEXファイルを下記に掲載します。 下記ファイル名を右クリックして「ファイルに保存する」を選んでダウンロードして下さい。

2led02.hex (3,111byte)

 このときのEEPROMエリアの点灯パターンの割付を以下に記載します。下記の割付にしたがってEEPROMエリアを書き換えてお使い下さい。

表5 EEP−ROM点灯パターン割付  (16パターン)
アドレス パターン LED色 位置 LED No.

LEDのbit割付

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 0
32〜17 D31
D32
D29
D30
D27
D28
D25
D24
D23
D24
D21
D22
D19
D20
D17
D18
1
16〜1 D15
D16
D13
D14
D11
D12
D9
D10
D7
D8
D5
D6
D3
D4
D1
D2
2
31〜17 D31
D32
D29
D30
D27
D28
D25
D24
D23
D24
D21
D22
D19
D20
D17
D18
3
16〜1 D15
D16
D13
D14
D11
D12
D9
D10
D7
D8
D5
D6
D3
D4
D1
D2
4〜7 1 アドレス0〜3と同じ
8〜11 2 アドレス0〜3と同じ
12〜15 3 アドレス0〜3と同じ
16〜19 4 アドレス0〜3と同じ
20〜23 5 アドレス0〜3と同じ
24〜27 6 アドレス0〜3と同じ
28〜31 7 アドレス0〜3と同じ
32〜35 8 アドレス0〜3と同じ
36〜39 9 アドレス0〜3と同じ
40〜43 10 アドレス0〜3と同じ
44〜47 11 アドレス0〜3と同じ
48〜51 12 アドレス0〜3と同じ
52〜55 13 アドレス0〜3と同じ
56〜59 4 アドレス0〜3と同じ
60〜63 15 アドレス0〜3と同じ

 

 このときのPIC16F84AのI/Oピン割付は以下のようになります。

表6 PIC16F84A I/Oピン割付  (16パターン)
Pin名称 Pin番号 接続先 信号名称 信号レベル Low 信号レベル High
RA0 17 SW2 - 1 Reset / Start Reset (SW2 - 1 on) Start (SW2 - 1 off)
RA1 18 SW2 - 2 Free Run / External External (SW2 - 2 on) Free Run (SW2 - 2 off)
RA2 1 SW2 - 3 HOLD / RUN HOLD (SW2 - 3 on) RUN (SW2 - 3 off)
RA3 2 SW2 - 4 Forward / Reverse Reverse (SW2 - 4 on) Forward (SW2 - 4 off)
RA4 3 SW1 Write  High(SW1 on)→Low(SW1 off)で、patternで選択されされ た点灯パターンのデータをLED表示する。
RB0 6 SW2 - 5 Pattern -  b0 SW offで論理1  , SW onで論理0

RB3,RB2,RB1,RB0で点灯パターン0〜7を設定

RB1 7 SW2 - 6 Pattern -  b1
RB2 8 SW2 - 7 Pattern -  b2
RB3 9 SW2 - 8 Pattern -  b3
RB4 10 LEDボード GSI 16×2桁 2色(赤、緑)LEDボード付属の取扱説明書参照願います。
RB5 11 LEDボード LATCH
RB6 12 LEDボード RSI
RB7 13 LEDボード GCLK/RCLK

 

 上記HEXファイルのサンプルデータでの点灯パターン実例を右図に掲載します。

 右図の上から点灯パターン0、1,2,3,4,5,6,7,8,9,10,11,12,13,14,15です。

 残念ながらフラッシャというよりウインカになってしまいました。 ただ、LEDの変化が8パターンよりは滑らかになったように感じます。 ガクガク感は確かに減ってきています。 まあ、現状のコンセプトではこれ以上の改善は見込めないの、とりあえずウインカーディスプレイを製作したことに目標を変えました。あれ?

 なお、8パターンと同様に、パターン0は点灯するけれども、LEDが変化しないときには以下の確認をして下さい。

  • External設定となっていないか。
  • Free RUNでRunの場合、Pattern設定がLow (SW2-5,6,7,8がOn)になっていないか。

 

       

【プログラム書き込みサービス】 

 本ページで紹介しましたPICマイコンの書き込みサービスを行っています。 詳細はプログラム書き込みサービスのページを参照願います。


 Memorandumの小部屋 へ戻る      ホームページへ戻る


End of This Page.