Sida 8 av 15

Re: Arduino styrning av automatlåda (4l80e)

Postat: 13 november 2014, 22:25:55
av Bosen
Ja... Nu tänker jag lite fel... Mina kontakter i lådan jordar ju när dom sluter....

Re: Arduino styrning av automatlåda (4l80e)

Postat: 13 november 2014, 22:32:52
av hanzibal
Iofs bara att vända på det i mjukvaran så det bör inte vara ngt är problem i sig.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 07:16:32
av TomasL
För dina brytare använder du lämpligen en sådan här http://www.freescale.com/files/analog/d ... C33972.pdf
Fixar allt för dig, hanterar både brytare mot jord och brytare mot plus.
Billigare och enklare än optokopplare.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 08:12:14
av hanzibal
Verkar bökigt att övervaka 3 (väl?) switchar med ett chip via 5 pinnar (spi + interrupt). Mer och komplexare kod ger fler felkällor.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 09:08:56
av TomasL
Faktiskt inte, eftersom du har en hel del vettiga funktioner i kretsen, och du behöver bara tre trådar MISO, MOSI och Klocka.
Kretsen i fråga ger dig bl.a. avstudsning och wetting.
Du får in statusen via SPI.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 09:27:00
av Icecap
Och de 3 trådar kan man likaväl ta in i µC'n direkt och göra exakt samma sak i mjukvaran, helt utan problem.

Hade det varit fler knappar hade läget varit ett annat men det känns väldigt mycket som att gå över ån efter vatten.

Knapparna via var sin optokopplare, sedan klarar mjukvaran resten, enklare och billigare blir det knappast.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 09:48:16
av hanzibal
TomasL skrev:Faktiskt inte, eftersom du har en hel del vettiga funktioner i kretsen, och du behöver bara tre trådar MISO, MOSI och Klocka.
Jo, CS kan man ju hårdvira men interrupten lär du väl behöva om du inte vill polla chipet i tid och otid?

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 09:48:52
av TomasL
Nja, visst kan man göra det manuellt, med både digitala och elektriska filter, dock är det så mycket enklare att använda färdiga lösningar för detta, samt att just "Contact-wetting" är svårt att åstadkomma, med "manuella" metoder.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 09:50:49
av TomasL
hanzibal skrev:
TomasL skrev:Faktiskt inte, eftersom du har en hel del vettiga funktioner i kretsen, och du behöver bara tre trådar MISO, MOSI och Klocka.
Jo, CS kan man ju hårdvira men interrupten lär du väl behöva om du inte vill polla chipet i tid och otid?
Tja, polla i tid och otid, i detta fallet räcker det väl lite då och då.
Eftersom main troligen är en loop, så kan ju man göra det varje gång man surrar i loopen eller var tionde gång, eller var....

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 09:55:56
av hanzibal
Beror på kraven men chipet kräver minst 4 pinnar för att slippa polling (5 om bussen skall delas nu eller senare).

Vi har en kaffemaskin på jobbet, den strobar sina knappar vilket gör att den missar knapptryck för jämnan till allmänt förtret så nej, polling bör alltid undvikas, om inte annat så av ren princip tycker jag :-)

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 10:02:01
av TomasL
Jo, men om man använder kretsen ifråga, så har den ju register för knapparna i fråga.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 10:21:09
av hanzibal
Ja och deras värden läses lämpligen av så snart som möjligt efter att en eller flera switchar bytt tillstånd, dvs då interruptpinnen signalerar detta.

Anm: Personligen tycker jag att den som skrev programvaran till vår kaffemaskin borde piskas till döds :D EDIT: Detta kunde ju få bli den allmänna straffsatsen vid brottsrubriceringen "användande av polling där interrupthantering finnes". :badgrin:

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 10:40:49
av Icecap
Knappar avkänns såklart i en timer-interrupt rutin. Att polla är bara användbart i synnerligt få fall.

Har man en timer-interrupt var 50ms och har två lika avläsningar av knapp-porten är det en godkänd tryckning. Rutinen läser knapp-porten en gång per varv!

Jag lägger ofta till en n-key rollover rutin också och finns det en + och en - knapp brukar jag lägga till autorepeat.

Ibland lägger jag in en buffer för knapptryckningar också, kanske 16 steg.

Men i detta fall skulle jag definitivt avråda från denna krets som Tomas rekommenderar! Inte för att den är dålig eller så men för att den är onödig.

Knapparna som ska styra det hela kommer ganska säkert att sitta "utanför" kretskortet varför det finns störningshänsyn att ta, speciellt i ett fordon. Därför hade jag vald optokopplar-input och låtit knapparna köra med 12V signalering till optokopplarna.

Detta ger i sig en lite filtrering då det inte är ett spänningsnivå på en ingång som ger en "knapptryckning" men istället en ström som ska gå genom LED'n i optokopplaren. Detta tar bort en hel del störningar redan där.

Såklart ska signalen avkodas enl. ovan, alltså i en timer-interrupt och det ska ske 2 exakt lika avläsningar efter varandra innan den är giltig.

Jag har testat en del och kommit fram till att jag inte kan trycka snabbare än 1/10 sek på en knapp så avkänner man med minst 10Hz fångar man alla. Men då jag kräver 2 identiska avläsningar efter varandra får jag då avkänna minst 20gg/sek - och detta har fungerat riktigt bra i väldigt många projekt.

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 10:44:55
av hanzibal
Här är det väl dessutom inga knappar utan switchar/givare i växellådan som aktiveras/deaktiveras maskinellt?

Re: Arduino styrning av automatlåda (4l80e)

Postat: 14 november 2014, 11:39:05
av TomasL
Desto viktigare då med en riktig krets.
Förstår inte riktigt Icecaps motstånd till att göra det enkelt, varför komplicera saker med en massa optokopplare motstånd och kondensatorer.
Keep it simple stupid, dvs så lite diskreta komponenter som möjligt.