Inhoudsopgave:

Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus - Ajarnpa
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus - Ajarnpa

Video: Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus - Ajarnpa

Video: Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus - Ajarnpa
Video: CAN Bus Verification 2024, November
Anonim
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus
Toerenteller/scanmeter met Arduino, OBD2 en CAN-bus

Elke eigenaar van een Toyota Prius (of een ander hybride/speciaal voertuig) weet dat er misschien een paar wijzerplaten op hun dashboard ontbreken! Mijn prius heeft geen motortoerental of temperatuurmeter. Als je een prestatiegerichte man bent, wil je misschien dingen als timing van tevoren en brandstofgegevens in realtime weten. Als u een hypermiler bent, wilt u misschien meer informatie over uw brandstofverbruik.

Al deze waarden worden berekend door de motorcomputer van uw auto. Er is gewoon een scantool nodig om de gegevens te lezen. Veel nieuwsgierige autobezitters wenden zich tot commerciële oplossingen zoals een Scan Gauge. Ze kunnen ook een scantool gebruiken die ELM327 via USB of Bluetooth gebruikt. Populaire kanshebbers zijn de Carista, BlueDriver of een gewone diagnostische scantool van Innova/Bosch.

Ik wilde een permanente installatie in mijn voertuig met speciale hardware, dus besloot ik mijn eigen weg te gaan! Ik ben verheugd om mijn aangepaste scantoolontwerp te delen.

Benodigdheden:

Belangrijk -

  • Arduino-bord (kan Nano, Teensy, Pro Micro, Uno… gebruiken) [Amazon]
  • Zekeringkraan+extra zekering (Let op de juiste maat) [auto parts store]
  • OBD II-connector (ik heb er een gered van een oude scantool) [Amazon]
  • CAN-bus MCP2515-module [Amazon]
  • OLED-display (of ander display naar keuze) [Amazon]
  • Buck converter (of andere schakelende / lineaire spanningsregelaar) [Amazon]
  • 4-aderige kabel voor uw display (gebruik oude USB-kabel, lintkabel, enz.)
  • Voldoende jumperdraden om alles aan te sluiten

Gereedschap -

  • Voltmeter
  • Soldeerapparatuur
  • Draadstrippers

Behulpzaam -

  • 3D-printer (of toegang tot een) om de volgende onderdelen te maken:

    • Behuizing voor arduino
    • Schermrand/dashboardmontage
  • Bevestigingsmiddelen voor behuizing
  • Zelfklevend

Stap 1: Over de CAN-bus (en disclaimer)

Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)
Over de CAN-bus (en disclaimer)

JE OPENEN HIER EEN ERNSTIG BLIK WORMEN… Knoeien met je voertuig/can-bus kan schade en/of onbedoelde bediening van je voertuig veroorzaken! Ik geef u deze code en instructie zonder garantie of garantie. U aanvaardt alle risico's. Probeer dit terwijl het voertuig EERST GEPARKEERD is! Dit project is eigenlijk redelijk veilig als je gewoon een beetje onderzoek doet naar wat je doet. Als u niet weet wat een deel van de instructies of code betekent, is dit waarschijnlijk een teken dat u niet aan het elektrische systeem van uw auto moet knoeien! Neem dit project niet aan. Koop een vooraf gemaakte bluetooth OBD-dongle en gebruik die in plaats daarvan. Ik wens je veel succes.

Nu de disclaimer uit de weg is.. Klinkt KAN bekend in de oren? Misschien vergelijkbaar met LAN (Ethernet) of WLAN (WiFi) dat u misschien thuis hebt…dat komt omdat het allemaal netwerken zijn. CAN staat voor Controller Area Network. Het is een digitaal communicatieplatform dat uw auto gebruikt om met zichzelf te praten. In plaats van draden van de motorcomputer naar elke sensor, lamp en apparaat in uw auto te leiden, worden ze allemaal digitaal bestuurd via het netwerk.

De CAN-bus is een differentieel communicatieprotocol. Dat betekent dat er maar twee draden nodig zijn! Er is geen Tx/Rx zoals je zou kunnen vinden in traditionele seriële communicatie, en geen directe overdracht tussen twee apparaten. Het wordt meestal gevonden als een gedraaid paar in uw voertuig. U krijgt toegang via de OBD-poort. U hoeft niet per se te begrijpen hoe dit protocol op fundamenteel niveau werkt, maar u moet het voldoende begrijpen om de Arduino-code te kunnen schrijven of wijzigen.

Als je dit project wilt volgen, zorg dan dat je voertuig een CAN-bus heeft! Bijna elk voertuig op de weg heeft tegenwoordig een OBD II-poort. Ze hebben allemaal dezelfde elektrische aansluiting onder het dashboard. Er zijn echter enorm verschillende protocollen voor communicatie op basis van uw autofabrikant. Elk voertuig dat na 2008 in de Verenigde Staten is verkocht, maakt gebruik van ISO 15765 CAN-bus. Daar willen we voor dit project gebruik van maken. Controleer of uw voertuig een CAN-bus heeft. Houd er rekening mee dat elke auto uniek is. Je hebt een specifieke CAN-bussnelheid, bepaalde OBD-codes die je moet aanvragen en diverse eigenaardigheden die je onderweg moet verminderen.

Stap 2: Bedradingsschema

Schakelschema
Schakelschema

Dit is het moment om te beginnen met het plannen van uw behuizing en installatie. Mijn auto heeft een zekeringkast in de motorkap en een rechts onder het dashboard. Waar is die van jou? Tijd om te gaan nadenken.

Ik heb een zekeringkraan op het ruitenwissercircuit gebruikt, omdat mijn Prius veel circuits heeft die direct naast de OBD-poort zijn gefuseerd. U kunt de Vbatt op de OBD-poort gebruiken, maar let op! Die zit vastgehaakt aan de accu, dus het toestel gaat nooit uit. Slecht idee. Afhankelijk van de huidige trekking van de Arduino, kan het uw batterij binnen enkele dagen of weken doden als u uw auto laat staan! Als u een OLED-scherm gebruikt, kunt u overmatig inbranden als uw apparaat altijd aan staat. Het is erg belangrijk dat het apparaat op uw contact staat.

Misschien heb je een makkelijke oplossing! Mogelijk hebt u een voertuig met een ACC/ontstekingsstroompen op de OBD-poort. Veel pinnen zijn fabrikantspecifiek. Dat betekent dat uw OBD-poort mogelijk een stroompen heeft die is overgeschakeld naar ontsteking. Probeer echter niet alleen de multimeter en sluit je arduino aan op alles met 12 volt! Uw voertuig heeft mogelijk een J1699 of een andere seriële bus die 12v logisch niveau gebruikt. Wie weet wat een huidige trekking zou doen! Controleer met een oscilloscoop of uw "12 volt-bron" een constante gelijkstroomvoeding is, geen signaal, voordat u arduino-voeding aansluit op een andere pin dan batt op de OBD-poort.

Stap 3: OBD-poort aansluiten op CAN-kaart

Bedrading OBD-poort naar CAN-kaart
Bedrading OBD-poort naar CAN-kaart
Bedrading OBD-poort naar CAN-kaart
Bedrading OBD-poort naar CAN-kaart

Kijk op de pinout voor uw OBD-poort voor CAN Low en CAN High. Verbind die draden met de High en Low op je board.

Gebruik nu de grond van uw OBD-poort als uw grond voor dit project! Verbind alle aardingsdraden met elkaar en zorg ervoor dat ze geaard zijn op deze OBD-poort.

We zullen ons in een paar stappen concentreren op de rest van de SPI-interface van het CAN-bord.

Stap 4: Zekeringkraan en DC naar DC-converter

Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter
Zekeringkraan en DC naar DC-converter

Sla de DC step-down converter niet over! Ik heb dit project al een keer per ongeluk vernietigd omdat ik besloot de Arduino op 12 volt uit de zekeringkast te laten lopen. Ik denk dat er ergens een spanningspiek van een spoel was (Arduino was aangesloten op dezelfde zekering als de ruitenwissermotor), en het heeft mijn Nano gebakken.

Aanbevolen: