Enkele dagen geleden werd ik onprettig verrast toen ik terugkwam uit de supermarkt. Er was een korte hevige stortbui geweest en de zetels en het interieur van mijn auto stonden zeiknat, omdat het dak was blijven open staan. Blijkbaar is "auto rain closing" een feature die Audi, in tegenstelling tot andere merken, niet aanbiedt... De auto (A4 B8 model 2013) is voorzien van een regensensor, dus dacht ik om die functie gewoon eventjes zelf aan te zetten. Maar dat blijkt toch niet mogelijk. Reden: de wagen heeft twee aparte BCM's die elk via LIN hun eigen slaves aansturen. De regensensor (G397) hangt via LIN aan J519 (de BCM aan de stuurkolom). De sluitfunctie van het open dak hangt via een andere LIN bus aan J393 (de andere BCM). Overigens valt het open dak, net als de ramen, wel te sluiten door lang op de sluitknop van de afstandsbediening te drukken. J393 vertelt dan aan de vier deurcontrollers dat ze de ramen moeten dicht doen, en geeft ook aan J245 (de controller van het schuifdak) bevel om te sluiten.
Maar de regensensor kan dus niet praten tegen de controller voor het dak. Beide LIN bussen passeren wel vlakbij elkaar ter hoogte van het plafondlampje. Dus dacht ik aan de volgende oplossing.
Ik zet een soort multiplexer tussen master J393 (BCM 2) en slave J245 (dak). In normale toestand blijven die met elkaar verbonden. Zodra ik vaststel dat het regent (via de reeds aanwezige regensensor of in het slechtste geval via een aparte DHT22 vochtsensor of iets dergelijks), hang ik J245 aan een aparte microcontroller die het commando om te sluiten geeft. Dit commando kan ik gemakkelijk opslaan met een logic analyser en dan door een PIC of zo laten genereren.
Het tweede deel van het verhaal is gelijkaardig. Zodra het contact afgezet wordt (klem 15 valt naar massa), heeft de regensensor niks zinnig meer te melden aan J519 (die op zijn beurt verder via LIN de ruitenwissers aanstuurt). Op dat moment schakel ik de LIN bus van slave G397 (regensensor) over naar een microcontroller. Dit is wel complexer, want nu moet ik weten hoe ik deze regensensor moet pollen naar de aanwezigheid van regen en hoe ik zijn antwoord moet interpreteren. Overigens: deze sensor meet ook het omgevingslicht, dus onder normale omstandigheden zal hij daar ook over ondervraagd worden en op antwoorden. Waarschijnlijk is het zelfs nog complexer en wordt het antwoord niet verstuurd als 1 bit (droog/nat), maar als een waarde in functie van hoe nat de voorruit is.
Heeft iemand hier ervaring mee? Zo'n regensensor pollen en iets met het antwoord doen? Kan je zomaar 'bruutweg' de communicatie tussen master en slave verbreken en die slave met een nieuwe master verbinden? Of bestaan er hier kant-en-klare oplossingen voor?