BWM fog light after market controleris
BWM fog light after market controleris
Sveiki,
Mano moce R1200RT LC nebuvo priešrūkinių. Tikslas buvo:
1. Sumontuoti originalią BMW knopkę
2. Sudėti kinietiškus fog light
3. Realizuoti, kad fog light veiktu kaip gabaritai plius papildomos funkcijos nuo ezCan. (jei neaktualu, t.y pas jus nėra papildomo priedų valdymo tada ignoruoti)
Problema: priešrūkiniai BMW moce valdomi per CAN sąsają. Todėl reikia 1. nupirkti bmw originalią knopkę (tinka ir GS), ją prijungti prie bmw pravodkės (jei nėra jau paruošta pravodkė orirignaliai) tada ją prijungti prie priekinės lempos laidų: reikalingi 3 laidai: BR, R/BL, V.
Toliau valdymui reikia suburti kontrolerį, kuris skaitytų CAN ir atitinkamai įjungtų/išjungtų priešrūkines. Tiesa, taip pat tai reikia moco komplektacijoje base unit ir prietaisų skydelyje enablinti šias funkcijas su bmw dyleriniu softu (man kainavo 70 eur, atvažiavo ir vietoje perkodavo kompus) tam kad įjungus fog light skydelyje užsidegtų signalinė lemputė.
Toliau jungiame arduino. Reikės:
Arduino R4 minima: https://www.anodas.lt/arduino-uno-r4-mi ... 4%20minima
CAN transceiverio modulio: https://www.anodas.lt/sn65hvd230-can-pl ... HEQAvD_BwE
Arduino valdomos rėlės: https://www.lemona.lt/reles-modulis-1-k ... duino.html
Mano schema:
Kaip pajungti pravers paprasčiausias manualas: https://docs.arduino.cc/tutorials/uno-r4-minima/can
Toliau į arduino supučiam kodą(modifikuoti pagal save ir pajungimo PIN'us) :
P.S. kodas parašytas remiantis šiuo CAN manualu, turėtų tikti K51/52 modeliams: Motorrad CanBUS
Kodas į arduino:
#include <Arduino_CAN.h>
int fogStateLast = 2;
int fogStateCurrent = 0;
const int RELAY_CAN_PIN = 7;
void setup() {
Serial.begin(115200);
pinMode(RELAY_CAN_PIN, OUTPUT);
if (!CAN.begin(CanBitRate::BR_500k))
{
Serial.println("CAN.begin(...) failed.");
for (;;) {}
}
}
void loop() {
if (CAN.available())
{
CanMsg const msg = CAN.read();
if (msg.id == 720){
fogStateCurrent = msg.data[7];
if (fogStateCurrent == 2 && fogStateLast != 2){
Serial.println("Fog lights-> ON");
digitalWrite(RELAY_CAN_PIN, HIGH); // turn on fog lights
}else if (fogStateLast == 2 && fogStateCurrent != 2){
Serial.println("Fog lights-> OFF");
digitalWrite(RELAY_CAN_PIN, LOW); // turn off fog lights
}
fogStateLast = fogStateCurrent;
}
}
}
Visą konstrukciją sumontavau į dėžutę su papildoma knopke (Fog light switch) atjungti ezCan, tada kai važiuosiu į TA, kad be reikalo nesikabintų kodėl dega kaip gabaritai.
Darbo rezultatas:
1. Galiu jungti aftermarket (ne BMW) priešrūknius, nes jiems paduodama +12V tada, kai įjungiu juos nuo originalios BMW knopkės (tuo pačiu užsidega ir skydelyje indikatorius).
2. Kai priešrūkinių knopkė išjungta, tuomet juos valdo ezCan. t.y. pas mane pastoviai dega 10% arba reaguoja į hazard light ir mirksi priešingai. Taip pat veikia kitos papildomos ezCan funkcijos. Kam tai neaktualu tiesiog priešrūkinės bus išjungtos.
3. Turėdamas noro galiu pridėti papildomus CAN pranešimus ir valdyti kitas rėles.
Mano moce R1200RT LC nebuvo priešrūkinių. Tikslas buvo:
1. Sumontuoti originalią BMW knopkę
2. Sudėti kinietiškus fog light
3. Realizuoti, kad fog light veiktu kaip gabaritai plius papildomos funkcijos nuo ezCan. (jei neaktualu, t.y pas jus nėra papildomo priedų valdymo tada ignoruoti)
Problema: priešrūkiniai BMW moce valdomi per CAN sąsają. Todėl reikia 1. nupirkti bmw originalią knopkę (tinka ir GS), ją prijungti prie bmw pravodkės (jei nėra jau paruošta pravodkė orirignaliai) tada ją prijungti prie priekinės lempos laidų: reikalingi 3 laidai: BR, R/BL, V.
Toliau valdymui reikia suburti kontrolerį, kuris skaitytų CAN ir atitinkamai įjungtų/išjungtų priešrūkines. Tiesa, taip pat tai reikia moco komplektacijoje base unit ir prietaisų skydelyje enablinti šias funkcijas su bmw dyleriniu softu (man kainavo 70 eur, atvažiavo ir vietoje perkodavo kompus) tam kad įjungus fog light skydelyje užsidegtų signalinė lemputė.
Toliau jungiame arduino. Reikės:
Arduino R4 minima: https://www.anodas.lt/arduino-uno-r4-mi ... 4%20minima
CAN transceiverio modulio: https://www.anodas.lt/sn65hvd230-can-pl ... HEQAvD_BwE
Arduino valdomos rėlės: https://www.lemona.lt/reles-modulis-1-k ... duino.html
Mano schema:
Kaip pajungti pravers paprasčiausias manualas: https://docs.arduino.cc/tutorials/uno-r4-minima/can
Toliau į arduino supučiam kodą(modifikuoti pagal save ir pajungimo PIN'us) :
P.S. kodas parašytas remiantis šiuo CAN manualu, turėtų tikti K51/52 modeliams: Motorrad CanBUS
Kodas į arduino:
#include <Arduino_CAN.h>
int fogStateLast = 2;
int fogStateCurrent = 0;
const int RELAY_CAN_PIN = 7;
void setup() {
Serial.begin(115200);
pinMode(RELAY_CAN_PIN, OUTPUT);
if (!CAN.begin(CanBitRate::BR_500k))
{
Serial.println("CAN.begin(...) failed.");
for (;;) {}
}
}
void loop() {
if (CAN.available())
{
CanMsg const msg = CAN.read();
if (msg.id == 720){
fogStateCurrent = msg.data[7];
if (fogStateCurrent == 2 && fogStateLast != 2){
Serial.println("Fog lights-> ON");
digitalWrite(RELAY_CAN_PIN, HIGH); // turn on fog lights
}else if (fogStateLast == 2 && fogStateCurrent != 2){
Serial.println("Fog lights-> OFF");
digitalWrite(RELAY_CAN_PIN, LOW); // turn off fog lights
}
fogStateLast = fogStateCurrent;
}
}
}
Visą konstrukciją sumontavau į dėžutę su papildoma knopke (Fog light switch) atjungti ezCan, tada kai važiuosiu į TA, kad be reikalo nesikabintų kodėl dega kaip gabaritai.
Darbo rezultatas:
1. Galiu jungti aftermarket (ne BMW) priešrūknius, nes jiems paduodama +12V tada, kai įjungiu juos nuo originalios BMW knopkės (tuo pačiu užsidega ir skydelyje indikatorius).
2. Kai priešrūkinių knopkė išjungta, tuomet juos valdo ezCan. t.y. pas mane pastoviai dega 10% arba reaguoja į hazard light ir mirksi priešingai. Taip pat veikia kitos papildomos ezCan funkcijos. Kam tai neaktualu tiesiog priešrūkinės bus išjungtos.
3. Turėdamas noro galiu pridėti papildomus CAN pranešimus ir valdyti kitas rėles.
BWM fog light after market controleris
Kiek kainavo viso bendrai?
Keturi ratai vežioja kuną, o du ratai - sielą.
BWM fog light after market controleris
draginoid rašė:Žinutės nuoroda Kiek kainavo viso bendrai?
Arduino Uno R4 Minima 35 eur
CAN plokštė 7 eur
Relės modulis 3 eur
Dėžutė 6 eur
Jungiklis 1 eur
Sandarios jungtys 4 vnt. 10 eur
Kitas jungtis naudojamas vidiniam modulyje turėjau iš anksčiau, bet ten kokie max 5 eur vertė. Taip pat keletą išorinių jungčių panaudojau iš kitos donorinės bmw pravodkės.
Tai sakykime apie 60-70 eurų išėjo.
Grįžti į “Pasidaryk pats, naudingi patarimai”
Dabar prisijungę
Vartotojai naršantys šį forumą: Registruotų vartotojų nėra