Denna gång är det ett interface för att omvandla en analog signal från en vinkellägesgivare fäst på växellådans växelväljararm till fyra digitala ingångar på elmotorinvertern.
Jag har lite förkärlek till Microchips 8-bitars mikroprocessorer, så ett gammalt demokort med en PIC18F2585 fick duga till detta interface. Det visade sig att det nu finns en gratis utvecklingsmiljö MPLAB-X att ladda ner till Win, MacOS och Linux. Fint!
![]() |
Underbara MPLABX |
Förutom det 28-pinnars demokortet så är det faktiskt inte så många fler komponenter.
En vettig 5V spänningsregulator behövdes, här fick det bli en L387 som lämpar sig väl när det gäller 12V-omvandling i bil-miljö. För att driva utgångarna tänkte jag att en klassisk array driver, ULN2003, funkar nog. 5st 12V lysdioder för att visa växellägena: P, R, N, D och E samt en för att indikera fel (om givaren hoppat loss eller om någon av dess tre anslutningar lossat). Förutom detta sitter det en tryckkontakt för att kunna hoppa in i kalibrerings-mode och lära upp växellägena. Mikroprocessorn har inbygd RC-oscillator, så någon kristall behövs inte. Denna applikation ställer inga högre krav på tidsnoggrannhet.
![]() ![]() |
L387A och ULN2003 |
Applikationen läser kontinuerligt den analoga spänningen från givaren. Denna är mellan 0,5 och 4,5V för 90grader rotation. Om spänningen är utanför dessa gränser tänds en felindikering på interfacet och N (Neutral) väljs som aktiv växel. Mellan P och E är det 70grader, vilket borde fungera att fånga upp med givaren.
Kalibreringsläget kommer man in i om en knapp på interfacet hålls inne samtidigt som tändningen slås på. Lysdioderna blinkar för att visa kalibrerings-mode och sen samlas värden in för P-läget följt av de andra lägena med ett par sekunders mellanrum. Tanken är att "jucka"lite lätt med växelväljaren i varje läge för att hitta min/max positionen. Fyra värden(positioner) mellan de verkliga växellägena sparas sen undan i EEPROM som nivåer för lägesdetekteringen.
![]() |
Skärmdump från kodandet av interfacemjukvaran |
Mer om elektroniken och test av interfacet kommer...
Hmmm, innebær detta att du inte får någon møjlighet att kontrollera giltigheten av din læsta vinkel? Kan ju ge problem med att den hoppar i væxel från neutral, eller går till back från framåt o.s.v. De fyra brytarna du førsøker ersætta ger ju ett visst skydd i form av redundans.
SvaraRaderaDu kanske bør lægga till någon form av kontroll att det bara kan ændra ett steg i taget i alla fall, så førhindrar du ju det ena felet?
Bra kommentar Björn, som alltid.
SvaraRaderaJag implementerar en monitor som kollar att ett växelläge ändra i taget.