En amatörs funderingar...

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Flummo
Inlägg: 301
Blev medlem: 10 november 2005, 02:40:18

En amatörs funderingar...

Inlägg av Flummo »

Till att börja med kan jag säga att jag har noll erfarenhet av programmering förutom några experiment med plc på gymnasiet för ett antal år sedan, och jag vet inte mer om microprocessorer än att det borde gå använda en sån till det jag vill bygga... Kort sagt, jag har inte en aning om vad jag pysslar med :oops: men jag vill lära mig. ;) Angående vanlig elektronik så är det inga problem, den kan jag en del om.

Jag har fått lite pengar över nu, och funderar på om jag ska lägga dem på en beställning från exempelvis elfa. Bland annat de delar som behövs för att bygga en programmerare, och ett antal lämpliga kretsar att programmera. Det jag vill bygga är en enkel styrning till ett tändsystem, i princip ska det fungera såhär:
Insignalen till datorn håller en frekvens på ca 20-200hz, vanlig fyrkantvåg från exempelvis en halleffektswitch eller vilken sensor som råkar vara lämpligast. Signalen ska fördröjas en viss tid (gissningsvis 50-200 millisekunder eller något sånt) beroende på frekvensen på insignalen, exempelvis att 0-20hz ger 150ms fördröjning, 20-40hz ger 130ms och så vidare. Jag vill ha minst 10 olika "steg" när det gäller frekvensen, och gärna ungefär samma antal steg när det gäller tiden.

Jag vet mycket väl att mina nuvarande kunskaper inte räcker till att få allt det att fungera, men jag vill utgå från grejer som räcker hela vägen den dagen jag klarar av det. Till att börja med vill jag bara få det att fungera så jag ser att det är värt att jobba vidare med, kanske med en fast fördröjning eller fördröjning som ändras i två steg eller något sånt.

Så, nu till frågan, eller snarare frågorna.
Vilken/vilka uC är lämplig för ett sånt bygge?
Var kan jag hitta en lämplig programmerare till dem, alternativt var kan jag hitta info om hur jag bygger en sån programmerare?
Och slutligen, var kan jag läsa på om programmering?

Alla tips är välkomna, jag har som sagt inte en aning om vad jag pysslar med... :wink:
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Har du kollat FAQ: "Mikrokontrollers för nybörjare"?
Läs igenom den för att förhoppningsvis bli lite klokare. Är det något du inte förstår så fråga!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Visst, jag är väll inte helt opartiskt, men... :-)

> "Bland annat de delar som behövs för att bygga en programmerare..."

http://www.jescab.se/Wisp628.html

> "och ett antal lämpliga kretsar att programmera..."

http://www.jescab.se/Prod_PIC.html

> "jag har som sagt inte en aning om vad jag pysslar med..."

Det är nog där du måste börja... :-)
Flummo
Inlägg: 301
Blev medlem: 10 november 2005, 02:40:18

Inlägg av Flummo »

Sodjan: Okej, det verkar ju vara vettiga grejer. Kanske. Jag har som sagt ingen aning... :roll: Programmeraren är i alla fall enkel att bygga och rätt billig, så långt gillar jag den.

$tiff: Japp, jag har läst den. Men jag ska titta lite närmare på den igen.
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Man kan ju undra vad Erik håller på och planerar. :evil:

Är det till hondan eller ?

Vet du hur signalen från tändsystemet ser ut ?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Vem är Erik och vilken Honda ?
Flummo
Inlägg: 301
Blev medlem: 10 november 2005, 02:40:18

Inlägg av Flummo »

Erik är det namn jag har på vissa andra forum, och Hondan är en Honda MB5 ("f.d." moped) som med lite tur och ett bra tändsystem kommer ha omkring 20 hästar till sommaren. Något måste man pilla med när man är arbetslös ju... :roll:

Yes, det är Hondan som systemet är avsett för. Men det komer passa mer eller mindre direkt på ett antal andra hojar också, om jag någonsin får det att fungera alltså. Något säger mig att jag har lite hemläxa om programmering att göra...

Signalen från orginalgivaren är en sinusvåg, och tändningen triggas på lågvarv vid toppvärdet, på högre varv triggas den tidigare med hjälp av någon form av elektronik. Jag är mest inne på att skrota orginalgivaren och ersätta med något som ger en lättanvänd 1/0-signal, exempelvis en halleffektswitch.
Användarvisningsbild
lgrfbs
Inlägg: 7311
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

En idé skulle vara att mata en A/D ingång på MCU kretsen och låta programet lagra högsta
värdet och sedan lägga en +/-5% tollerans på det värdet så kan du hålla dig till orginalgivaren.
Flummo
Inlägg: 301
Blev medlem: 10 november 2005, 02:40:18

Inlägg av Flummo »

Jo, jag har tänkt på det också, men jag är inte helt övertygad om att det ger tillräckligt hög noggranhet för min motor. På högre varv ska som sagt gnistan komma innan signalens topp, och i det läget förmodar jag att man får utgå från den förra signalen när man räknar ut när gnistan ska avges. Tändningsinställningar anges i grader av vevaxelns varv, och ett varv är ju 360 grader. Om vi säger att tändningen ska inträffa exempelvis 18 grader före signalens topp skulle det betyda att datorn får fördröja tändningen 95% av den tid ett helt varv tar. I det fallet skulle ett fel på 0,5% (orsakat av temperaturförändring eller vad som helst) förskjuta tändningen sisådär 1,7 grader, acceptabelt på en standardmotor men skulle troligtvis orsaka ett motorras på en så vass motor som det ska användas på. En bra MCU med extern kristall skulle förhoppningsvis hålla bättre toleranser än så (eller?), men då jag verkar vara förföljd av Murphys lag vill jag ogärna chansa. Dessutom, orginalgivaren är en spole som har utsatts för fukt, värme, kyla och kemikalier under 20 år, det finns inte ens någon garanti att den fungerar när motorn ska startas i år.

Om man istället sätter en annan givare vid den punkt där tändningen inträffar som tidigast (på lågvarv) och sedan fördröjer tändningen exempelvis 18 grader på högvarv så skulle samma fel på 0,5% innebära ett fel på 0,09 grader - inget att bry sig om. Dessutom, det borde väl vara betydligt enklare att programmera om man utgår från en insignal som växlar mellan 0 och 1 istället för att använda en sinusvåg som man ska hitta toppvärdet på?

I och för sig, man borde ju kunna trigga på sinus-signalens nollgenomgång, och fördröja tändningen därifrån. Så som denna orginaltändning är uppbyggd inträffar det 45 grader före toppvärdet, så ett eventuellt fel skulle inte bli så farligt stort då... Tål att tänkas på.


Rätta mig om jag har fel någonstans, det är absolut inte omöjligt... :oops:

Men i alla fall, tack för tipset! Det kanske kommer till användning, antingen på denna hojen eller på någon med tamare motor.

Och en brasklapp: jag använde 18 grader bara som exempel eftersom det var lätt att räkna med (5% av ett helt varv), 10-15 grader är troligare att det blir i verkligheten.
Användarvisningsbild
lgrfbs
Inlägg: 7311
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

En snabb MCU med kristall verkar vara minimum till ditt projekt, undra hur kristallen mår i -20 grade?
De 5% jag skrev var bara ett exempel värde, sedan när man programmerar MCU kretsar så brukar
det inte bli rätt på första kodningen.
Jag tog 5% i fall signalen inte var exakt lika stark som förra varvet, och är spolen sliten så är det nog en bra idé att byta.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Om man istället sätter en annan givare...

Eller en extra krets (komparator) som ger en snygg 1/0 signa i.s.f sinus signalen. Antagligen skulle jag stoppa in någonting mellan givaren och PICen i alla fall för att skydda mot störningar. Eller använda en PIC med komparator, då får man en smidig koppling till interrupt också...

Jag skulle undvika ADC'n i detta fall, jag tror att det tar för lång tid.

Man skulle kunna använda föregående varv för at beräkna tändpunkten för kommande varv. Hur mycket ändras varvtalet melln två varv ?
Flummo
Inlägg: 301
Blev medlem: 10 november 2005, 02:40:18

Inlägg av Flummo »

Kristallen kommer aldrig utsättas för -20 grader, dels undviker jag att gå utanför dörren då, och dels är det så gott som självmordsförsök att köra den hojen när det är halt... Så länge grejerna funkar ner till 0 grader kommer det funka fint.

Jag börjar nog nästan bli övertalad till att använda orginalgivaren på ett eller annat sätt. Det har ju sina fördelar. Att ha en komparator som växlar vid signalens nollgenomgång bör fungera? Nollgenomgången är ju ganska stabil att utgå från, när det gäller toppvärdet ändras det med varvtalet och antagligen ett antal andra faktorer. Ju färre värden man måste ta hänsyn till vid konstruktion och programmering, desto bättre.

Att utgå från förra varvets signal skulle säkert fungera, men frågan är om det inte skulle kunna orsaka lite startproblem. Motorn skulle behöva gå ett varv bara för att tändningen ska ha ett hum om när gnistan ska komma, och när man försöker kicka igång motorn förändras varvtalet rätt mycket från varv till varv.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Du får väll springa som f-n och kasta dig upp på "limpan" så att det blir lite snurr på det hela... :-)
Flummo
Inlägg: 301
Blev medlem: 10 november 2005, 02:40:18

Inlägg av Flummo »

Det skulle vara aldeles för enkelt... :P

Titta vad google kan hitta: http://www.freescale.com/files/microcon ... AN4006.pdf
Fel tändkurva och fel typ av signal, men grundidén är någorlunda rätt. :D
Skriv svar