ハンドルスイッチ変更計画

マルチファンクション付き左スイッチ バイク
マルチファンクション付き左スイッチ

純正タコメータ基板製作を作業を進める上で根本的に間違ってるのではないかとの考えが頭をよぎる。シャントレギュレータTLV431とオペアンプの理解が進まず、別の項目に逃げて一時的に頭を冷やすの巻。

当方のRRはウィンカーポジション仕様だ。
純正ではヘッドライトポジションだが、余りにも自己主張が弱かったのでXJRの純正ウィンカーボディ使ってウィンカーポジションに変更している。
フロントダブル球仕様、RRのウィンカーレンズと同じ部品だったので違和感がなかったというのと購入当時、新車外し部品がヤフオクで安価に流れていて、かなり安かったというのが理由だ。
送料が高かったのだけ覚えていてフロント2個分、XJR新車外しの新品同様品を100円くらいで落としている。

ウィンカーポジションは一度法律が変わっているので分かりづらいところもあるかもしれない。(変更点:ウィンカーと同一機能動作であるウィンカーポジションは橙色でもOK)バイクは当たり前だが車はポジション=白色のみと一時規定されたが、括弧内の変更点と同じにコッソリ条文が追加されているので、今更、色ええ?と思ってる人もいるかもしれない。

また、ウィンカーポジション点灯時、ウィンカー動作が入ると点滅している方と反対側は消灯または点灯している必要がある。ヤマハ車は消灯、ホンダ車は点灯していることが多いので誤解が生じ易い。当方は面倒なのでウィンカー動作時はポジション点灯OFFとしている。

当方のRRはウィンカーが動作するときにポジション回路がOFFになるようにハンドルスイッチを改造している(ウィンカースイッチが上下二回路分存在していてウィンカーが使われるとポジション回路が切れる仕様)、3XVと同じスイッチだと言えば分かりやすいかと思う(実際はXJR1200のスイッチ)を改造していた。

まずは、ウィンカー動作中、反対側がONになる機能は電子部品を数個付けることで機能するが、OFFだと前出の2段スイッチ以外は結構面倒に思っている。

当初はメカニカルリレーを使ってA接とB接が2回路あるというC接リレー2回路を使おうと考えていた(ONOFF動作左右二回路)。原理は簡単、ウィンカーが点灯している間はリレーがON、次の消灯してる間もリレーを動かすために容量の大きい電解コンデンサを繋げてON状態を続け、ウィンカー用電源が切れるとリレーがOFFになる単純な仕組みだが、リレーを回路を考えてる最中に8ピンPICを使えばリレー制御が簡単では?と思いついた。思いつくのが遅すぎるとは思うけど、爺だから仕方がないのだ。

既にウィンカーは全てLED化してるので消費電力も電球のように考えなくて良いがその後の汎用性を持たせるためにリレーでの制御としている。
勢いに任せて作ったプログラムと回路図は以下になるが、当然のごとくノーチェックなので真似て燃えても当局は一切関知しない。(完了報告後に作ってくれると嬉しい)
よくよく考えるとこれは遅延OFF回路じゃんと気が付く。汎用性を持たせれば、いかようにも使えるなと思った次第です。表示回路では5VリレーをMOSFETでドライブしているが、実際の回路は手持ち部品で作った試作品なので12Vのリレーをトランジスタで駆動してます。

以下の動作項目で作ったプログラム・・・間違っていませんように(笑)
✅ 常時:Timer0 が 1ms ごとに信号の無い時間を計測
✅ ウィンカー信号(RA2立ち上がり)が来れば即座に MOSFET を OFF
✅ 赤 LED:ON
✅ 信号が 1 秒以上来なければ MOSFET を ON に戻す
✅ 緑 LED:ON

赤・緑LEDはオマケでプログラムの動作チェック用

//12F683
#define _XTAL_FREQ 4000000

#define MOSFET_OUT RA0
#define LED_GREEN  RA1
#define LED_RED    RA4

volatile uint16_t no_signal_timer = 0;

void __interrupt() isr(void) {
    // INT割り込み(RA2立ち上がり)
    if (INTF) {
        no_signal_timer = 0;      // ウィンカー検出 → タイマーリセット
        MOSFET_OUT = 0;           // 電源遮断(MOSFET OFF)
        LED_GREEN = 0;
        LED_RED = 1;
        INTF = 0;
    }

    // Timer0割り込み(1ms周期)
    if (T0IF) {
        no_signal_timer++;
        if (no_signal_timer > 1000) {  // 1秒以上信号なし
            MOSFET_OUT = 1;           // 電源供給(MOSFET ON)
            LED_GREEN = 1;
            LED_RED = 0;
        }
        T0IF = 0;
    }
}

void main(void) {
    // 初期化
    TRISIO0 = 0;  // RA0: MOSFET制御
    TRISIO1 = 0;  // RA1: 緑LED
    TRISIO4 = 0;  // RA4: 赤LED
    TRISIO2 = 1;  // RA2: ウィンカー入力

    ANSEL = 0;
    CMCON0 = 0x07;

    // INT設定(RA2立ち上がり)
    OPTION_REGbits.INTEDG = 1;
    INTCONbits.INTE = 1;

    // Timer0設定(1ms割り込み)
    OPTION_REGbits.T0CS = 0;     // 内部クロック
    OPTION_REGbits.PSA = 0;      // プリスケーラ割当
    OPTION_REGbits.PS = 0b111;   // 1:256(4MHz → 約1ms)
    TMR0 = 0;
    INTCONbits.T0IE = 1;

    // グローバル割り込み
    INTCONbits.GIE = 1;

    // 初期状態:電源供給(ウィンカー停止中)
    MOSFET_OUT = 1;
    LED_GREEN = 1;
    LED_RED = 0;

    while (1) {
        // メインループは待機
    }
}

コネクタ状況

防水コネクタ4ピン、もう片方は10ピン
4ピン(桃、緑/黒、黄/赤、黒/黄)
マルチファンクションSW用なのでここだけ防水スイッチなどと納得
10ピン(緑、黒/赤、黒、橙、茶/白、赤/黄、ー、黒/赤、灰、黒/白)
機能は以前のページにあるので当てはめてほしい
コネクタの種類は共に住友電線HMシリーズの090型と思われる。
090型4極防水コネクタ 
090型10極非防水コネクタ

RRとの変換コネクタハーネスを作成予定

2ピン ホーンかな? (黒、黒/茶)保護カバーが随分と劣化して面倒なので250型Lタイプの平端子に換装予定

コメント