Arduino a Pionier

Ak máte problém s elektronikou v aute a motorke, alebo proste chcete do auta a motorky niečo zapojiť

Moderátori: mirosne, Moderátori

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Arduino a Pionier

Príspevok od používateľa TomasNM » 20 Aug 2022, 00:06

Pani,

...ano, aj toto ide dohromady.

Pred casom (asi 2 roky spat) som si kupil nostalgicky Jawu 21 (klasicky "sportovy" Pionier), ktory je urceny na vselijake moje bastle - teda nieje urceny ako veteran, ale chcem sa s tym pohrat tak, aby bol spolahlivy a plne pripraveny na prevadzku pre tretie tisicrocie.

Ako prve som sa chcel zbavit nespolahliveho ramienkoveho zapalovania a nahradit to elektronikou.
Zapalovanie Vape mi prislo moc drahe a navyse by to nebola taka sranda, to tam supnut len tak nahotovo.
Tak som sa rozhodol spravit vlastny system zapalovania, ktory som az toto leto dotiahol do plne funkcneho a spolahliveho stavu. Preto sa podelim s mojim riesenim.

Zaklad je (ako inak?) Arduino Nano, ktory prepocitava oneskorenie zapalu benzinu podla otacok. Kedze ma udaj o aktualnych otackach, tak nema problem dynamicky menit aj predstih.
Mal som problem s rusenim z Inducky, ktory Arduinu vyrabal falosne prerusenia, co mi robilo najvacsie problemy. Nakoniec som to vyriesil softwarovo, zablokovanim prerusenia po urcitu dobu po zapaleni.
S originalnym ramienkom som mal tiez problem s rusenim cyklopocitaca, ktory teraz funguje korektne.

Najdolezitejsi je senzor, ktory som mal povodne magneticky (Hallova sonda), fungovalo to spolahlivo, ale nakoniec som to nahradil (pokusne, som si myslel ze to rusenie sposobuju magnety) optickou vidlickou (ale problem to neodstranilo a spat sa mi to uz nechcelo prerabat).
Senzor je nastaveny na LDC (Lower Dead Center), cize nabezna hrana je v DOLNEJ uvrati. Od tohto momentu sa aktivuje oneskorenie, ktore je vypocitane podla RPM a potom sa aktivuje vystup, ktory nabeznou hranou aktivuje iskru.

Indukcna cievka je elektronicka z Favorita/Felicie.
Samozrejme, toto je stavane na 12VDC. Preto tam mam DC-DC buck-boost menic, ktory tych potrebnych 12V vyraba - usmernenim napatia z magneta + orezanim pripadneho prepatia a filtraciou.

Menic sam o sebe je celkom rychly, ale Arduino nenastartuje za kratky cas nakopavania. Preto som pouzil aj podporny 18650 clanok, ktory zabezpeci napajanie pred samotnym startom motora.

Ako bonus, kedze Arduino pozna aktualne RPM a ma kopu vystupov nevyuzitych, tak som tam pridal LED bargraf ako otackomer.

Elektronika sa musela niekam vojst, tak som prerobil drziak filtra, ktory je zmenseny a 3D vytlaceny, pricom som vyuzil iba vlozku bez povodnej krabice.

Ak by si to niekto chcel postavit, tu je schema a dps. Software mozem dodat podla zaujmu.
Realne fotky mozem pridat neskor.

Drziak senzora a disk su 3D vytlacene, najtazsie aktualne je vyrobit nahradu za vacku - ten 6-hran na obrazku. Nastastie, v praci mame ucnov na frezy a sustruhy, takze sa mozu ucit.

Menic DC-DC: https://www.aliexpress.com/item/3280034 ... TKhnWzb5lX
Indukcna cievka: https://www.autorelax.sk/cievka-indukcn ... ia-1-3-1-6

Existujuce napajanie 12VDC planujem vyuzit na zadne LED svetlo, ktore obohatim o brzdove a pre smerovky (mam ho uz pripravene).
Preto Arduino generuje aj 1Hz signal pre pouzitie smeroviek.
image.png
image.png
image.png
0
Naposledy upravil/-a TomasNM v 20 Aug 2022, 00:24, upravené celkom 2 krát.

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Arduino a Pionier

Príspevok od používateľa romiadam » 20 Aug 2022, 00:16

Zakladna otazka:
Kedze toto zapalovanie si meni predstih podla otacok, (s kladivkom je to pevne), je tam pri jazde citit znacny rozdiel vo vykone, alebo ani nie?

Inak s tym menicom a pridavnymi baterkami je to blbost. Radsej si mohol dat 6V indukcnu cievku.

A ked uz mikroprocessor, tak programoval by som to cele v ASM, tam sa da velmi usetrit na zbytocnych cyklov v MCU, co ti moze sposobovat oneskorene spustenie.

Ake mas casy oneskorenia pri volnobehu a pri nominalnych otackach? Odhadujem okolo 0.5 az 1ms ? Som blizko?
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Re: Arduino a Pionier

Príspevok od používateľa TomasNM » 20 Aug 2022, 00:29

To je tazko povedat, nemam moznost vyskusat iny stroj.
Mam tam este dalsiu fintu - manualny predstih (to su tie bledomodre veci na scheme).
Pri zapnuti ak podrzim tlacitko, tak sa Arduino software nastartuje na manualny rezim, kde predstih urcujem potenciometrom a bargraf mi zobrazuje nastaveny predstih. Ak pri urcitych otackach najdem optimalny predstih, tlacitkom si tu hodnotu ulozim do pamate.
Dufal som v to, ze takto vybudujem optimalnu tabulku predstihu, ale realita je taka, ze ak menim uhol predstihu od 20-60 stupnov, moc to neni badatelne.

Arduino tieto casy zvlada bez problemov, tak neriesim premarnene cykly. Navyse, niesom zdatny v asembleri a akosi nemam chut to studovat. Mam tam velakrat pouzity delayMicroseconds() a nerobi to problem. To som si overoval uz pri zakladnej koncepcii na stole.

Ta baterka je tam na to, aby vykryla cas potrebny pre nastartovanie MCU, pretoze pri nakopavani by MCU nestihol nabehnut a teda odpalit. Neni to problem, vydrzi tam cely rok, potom ju nabijem. Navyse 12V potrebujem pre svetlo a smerovky.

Ake su presne casy, to z hlavy neviem, ale pri merani skopom to fungovalo korektne do 9000RPM.
Indikator mam nastaveny do 7200RPM a ten motor tolko neda, alebo len so vsetkou snahou.

Teraz ale bojujem s dalsim problemom a tym je karburator.
Original mi casto dusi v plnej zatazi a robi si celkovo co chce.
0

Používateľov profilový obrázok
Miko6005
Stály člen
Stály člen
Príspevky: 108
Dátum registrácie: 15 Dec 2018, 00:35

Re: Arduino a Pionier

Príspevok od používateľa Miko6005 » 20 Aug 2022, 00:46

Teraz ale bojujem s dalsim problemom a tym je karburator.
Dufam ze sa to bude poberat tam kam myslim :-) mozezes dat aj fotky priamo z motorky, zapalovanie atd.?
0
Nuclear battery for electric cars !!!

Stefan31
Stály člen
Stály člen
Príspevky: 488
Dátum registrácie: 10 Feb 2010, 00:00
Bydlisko: Slovensko

Re: Arduino a Pionier

Príspevok od používateľa Stefan31 » 20 Aug 2022, 09:33

... a s tým karburátorom robil niekto niečo? V akom je stave?

Stefan31
0
Keď som sa narodil, nemal som nič. Polovicu z toho ešte mám.

Daevid
Stály člen
Stály člen
Príspevky: 206
Dátum registrácie: 15 Nov 2007, 00:00

Re: Arduino a Pionier

Príspevok od používateľa Daevid » 20 Aug 2022, 12:09

K tomu štartovaniu arduina, máš v ňom bootloader? Lebo ak áno, tak on spôsobuje oneskorenie štartu cca 500-1000 ms (z hlavy presne neviem). Ak do neho ale nahráš program bez bootloaderu, bude štartovať prakticky hneď... Bootloader to robí kvôli tomu, aby tam bol čas na spustenie nahrávania nového programu po reštarte MCU.

Druhá vec ktorú som si všimol je, že v schéme nemáš na indukčnej cievke blokujúcu diódu. Síce neviem ako sú indukčky do auta skonštruované ale ak v nej ta dióda už nie je integrovaná, tak by som sa vôbec nečudoval tým problémom s rušením. Ty si síce odstránil prejav problému softwarovo ale nie príčinu a v tomto prípade by to mohlo znamenať, že ti to MCU časom odíde...

Písal si, že program poskytneš na vyžiadanie, no já by som ťa poprosil aby si ho sem uverejnil hneď, pretože ak niekoho táto téma zaujme za mesiac, šesť či rok, tak to tu asi nebudeš kontrolovať každý deň či niekto nemá záujem.... A aj keby program nebol na nejakej profi úrovni, tak z tvojho príspevku je to každému jasné ale stále môže niekomu poskytnúť nápovedu ako riešiť problémy pri zapaľovaní motora...

A k tomu asembleru len toľko, že v tejto aplikácii nie je absolútne žiaden dôvod ho používať ak mu C vyhovuje viac...
0

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Re: Arduino a Pionier

Príspevok od používateľa TomasNM » 20 Aug 2022, 17:58

Pripajam par fotiek a software...
Urcite to treba ucesat, ale to je v plane pri celkovej renovacii.
Teraz je to vlastne pojazdny prototyp.

Kód: Vybrať všetko

#include <EEPROM.h>

#define GAUGEperiod 100 //ms
#define BLINKperiod 500 //ms
#define LOWRPMBLINKperiod 250 //ms
#define saturationTime 700 //us
#define sensorTimeout 500000 //us

#define buttonPin 10
#define RPMoutEnablePin 11
#define ignitionPin 12
#define blinkPin 13

//int advanceTable[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,   0 }; // zero
//int advanceTable[]={ 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,   20 }; // 20 const
//int advanceTable[]={ 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,   25 }; // 25 const
//int advanceTable[]={ 0,2,5,10,15,20,25,30,35,37,39,40,41,42,43,44,45,   46 }; // original
//int advanceTable[]={ 10,20,22,24,26,28,30,32,34,36,38,40,41,42,43,44,45,   46 }; // 20 @ 500 max 45
//int advanceTable[]={ 10,20,23,26,29,32,35,38,41,44,47,50,51,52,53,54,55,   56 }; // 20 @ 500 max 55
int advanceTable[]={ 10,20,24,28,30,34,39,43,45,49,53,57,61,62,63,64,65,   66 }; // 20 @ 500 max 65


unsigned long time;
unsigned long GAUGEtime=0;
unsigned long BLINKtime=0;
unsigned long LOWRPMBLINKtime=0;
volatile unsigned long previousMicros=0;
float delayIgnition;
float advanceAngle;
int RPM=0;
int minRange=1000;
int maxRange=7200;
boolean ign,lowrpm,sig;
boolean manual,e;

void setup() 
{ 
  Serial.begin(115200);
  attachInterrupt(0, myinthandler, FALLING);
  pinMode(2,INPUT);//SENSOR
  pinMode(buttonPin,INPUT_PULLUP);//BUTTON
  pinMode(RPMoutEnablePin,INPUT_PULLUP);//RPMoutEnablePin
  pinMode(blinkPin,OUTPUT);//LED
  pinMode(ignitionPin,OUTPUT);//IGNITION
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(A2,OUTPUT);
  pinMode(A3,OUTPUT);
  pinMode(A4,OUTPUT);
  pinMode(A5,OUTPUT);
  ign=true;e=false;sig=true;
  if(!digitalRead(buttonPin)) 
  {
    manual=true;
    Serial.println("--------------");
    for(int i=0;i<20;i++) Serial.println(EEPROM.read(i));
    Serial.println("--------------");
  }
  else manual=false;
} 
 
void loop() 
{ 
  time=millis();
  if(digitalRead(buttonPin)) e=true;

// GAUGE
  if(time-GAUGEtime>=GAUGEperiod) { GAUGEtime = time;updateGauge();}

// IGNITION
  if(ign && micros()-previousMicros>=delayIgnition ) 
  { 
    ign=false;sig=false;
    digitalWrite(ignitionPin,true);
    delayMicroseconds(saturationTime);
    digitalWrite(ignitionPin,false);
    delayMicroseconds(2500);
    sig=true;
  }
  
// STI BLINK
  if(time-BLINKtime>=BLINKperiod) { BLINKtime=time;digitalWrite(13,!digitalRead(13));}

// LOW RPM BLINK
  if(lowrpm && time-LOWRPMBLINKtime>=LOWRPMBLINKperiod ) { LOWRPMBLINKtime=time;digitalWrite(A4,!digitalRead(A4));digitalWrite(A5,!digitalRead(A5));}

// SAVE ADVANCE
  if(manual && !digitalRead(buttonPin) && e) { e=false;saveAdvance();}
}

void updateGauge()
{
  int actual;
  if(!manual) {
    lowrpm=false;
    actual=map(RPM,minRange,maxRange,1,10);
    if(RPM<minRange) { actual=0;lowrpm=true;}
  } else
  {
    lowrpm=false;
    actual=map(analogRead(A0),0,1023,0,10);
  }
  if(actual>0) digitalWrite(3,true );else digitalWrite(3,false ); 
  if(actual>1) digitalWrite(4,true );else digitalWrite(4,false ); 
  if(actual>2) digitalWrite(5,true );else digitalWrite(5,false ); 
  if(actual>3) digitalWrite(6,true );else digitalWrite(6,false ); 
  if(actual>4) digitalWrite(7,true );else digitalWrite(7,false ); 
  if(actual>5) digitalWrite(8,true );else digitalWrite(8,false ); 
  if(actual>6) digitalWrite(A2,true);else digitalWrite(A2,false); 
  if(actual>7) digitalWrite(A3,true);else digitalWrite(A3,false); 
  if(!lowrpm) if(actual>8) digitalWrite(A4,true);else digitalWrite(A4,false); 
  if(!lowrpm) if(actual>9) digitalWrite(A5,true);else digitalWrite(A5,false); 
  if(micros()-previousMicros>sensorTimeout) RPM=0;
  if(!digitalRead(RPMoutEnablePin)) Serial.println(RPM);
}

void calculateDelay()
{
  int a;
  if(RPM>0    && RPM<=500) a=RPM; 
  if(RPM>500  && RPM<=1000) a=RPM-500; 
  if(RPM>1000 && RPM<=1500) a=RPM-1000; 
  if(RPM>1500 && RPM<=2000) a=RPM-1500; 
  if(RPM>2000 && RPM<=2500) a=RPM-2000; 
  if(RPM>2500 && RPM<=3000) a=RPM-2500; 
  if(RPM>3000 && RPM<=3500) a=RPM-3000; 
  if(RPM>3500 && RPM<=4000) a=RPM-3500; 
  if(RPM>4000 && RPM<=4500) a=RPM-4000; 
  if(RPM>4500 && RPM<=5000) a=RPM-4500; 
  if(RPM>5000 && RPM<=5500) a=RPM-5000; 
  if(RPM>5500 && RPM<=6000) a=RPM-5500; 
  if(RPM>6000 && RPM<=6500) a=RPM-6000; 
  if(RPM>6500 && RPM<=7000) a=RPM-6500; 
  if(RPM>7000 && RPM<=7500) a=RPM-7000; 
  if(RPM>7500 && RPM<=8000) a=RPM-7500; 
  if(RPM>8000) a=500; 

  int index=RPM/500;if(index>16) index=16;
  if(!manual) advanceAngle=map(a,0,500,advanceTable[index],advanceTable[index+1]);
  else
  advanceAngle=map(analogRead(A0),0,1023,0,60);

  float timePerRev=60000000.0/RPM;///Megahertz->microseconds
//  delayIgnition=((timePerRev/2.0)*(float(180.0-advanceAngle)/180.0))-float(saturationTime);//ignition on falling
  delayIgnition=((timePerRev/2.0)*(float(180.0-advanceAngle)/180.0));//ignition on rising
}

void myinthandler()
{
  if(!sig) return;
  unsigned long currentMicros = micros();
  unsigned long differenceMicros=currentMicros-previousMicros;if(differenceMicros==0) differenceMicros=1000000;
  previousMicros=currentMicros;
  RPM=60*(1000000.0/float(differenceMicros));
  ign=true;
  calculateDelay();
}

void saveAdvance()
{
  digitalWrite(3 ,false);
  digitalWrite(4 ,false);
  digitalWrite(5 ,false);
  digitalWrite(6 ,false);
  digitalWrite(7 ,false);
  digitalWrite(A2,false);
  digitalWrite(A3,false);
  digitalWrite(A4,false);
  digitalWrite(A5,false);
  int a=(RPM+250)/500;
  EEPROM.write(a,(byte)advanceAngle);
  Serial.print(a);Serial.print(" ");Serial.println(advanceAngle);
  delay(200);
}
Prílohy
20220820_144028.jpg
20220820_144047.jpg
20220820_144110.jpg
20220820_144226.jpg
20220820_144233.jpg
20220820_144406.jpg
20220820_144451.jpg
20220820_144506.jpg
20220820_144854.jpg
20220820_144926.jpg
1
Obrázok 1

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Re: Arduino a Pionier

Príspevok od používateľa TomasNM » 20 Aug 2022, 18:07

Stefan31 napísal:
20 Aug 2022, 09:33
... a s tým karburátorom robil niekto niečo? V akom je stave?

Stefan31
Existuje Pionier, na ktorom by nikto nic nerobil s karburatorom? :)
Tazko povedat v akom je stave, zatial som ho nejak neriesil.
Ale urcite s nim nebude vsetko naporiadku, pretoze ide iba pomaly z vysokych otacok do volnobehu a ked sa tam dostane, tak moc sa mu nechce drzat volnobeh. No a ked idem na plny vykon, po kratkej dobe ho zdusi, akoby mu nedotekal benzin.
Je to na dalsie badanie.
0

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Re: Arduino a Pionier

Príspevok od používateľa TomasNM » 20 Aug 2022, 18:11

Daevid napísal:
20 Aug 2022, 12:09
K tomu štartovaniu arduina, máš v ňom bootloader? Lebo ak áno, tak on spôsobuje oneskorenie štartu cca 500-1000 ms (z hlavy presne neviem). Ak do neho ale nahráš program bez bootloaderu, bude štartovať prakticky hneď... Bootloader to robí kvôli tomu, aby tam bol čas na spustenie nahrávania nového programu po reštarte MCU.

Druhá vec ktorú som si všimol je, že v schéme nemáš na indukčnej cievke blokujúcu diódu. Síce neviem ako sú indukčky do auta skonštruované ale ak v nej ta dióda už nie je integrovaná, tak by som sa vôbec nečudoval tým problémom s rušením. Ty si síce odstránil prejav problému softwarovo ale nie príčinu a v tomto prípade by to mohlo znamenať, že ti to MCU časom odíde...

Písal si, že program poskytneš na vyžiadanie, no já by som ťa poprosil aby si ho sem uverejnil hneď, pretože ak niekoho táto téma zaujme za mesiac, šesť či rok, tak to tu asi nebudeš kontrolovať každý deň či niekto nemá záujem.... A aj keby program nebol na nejakej profi úrovni, tak z tvojho príspevku je to každému jasné ale stále môže niekomu poskytnúť nápovedu ako riešiť problémy pri zapaľovaní motora...

A k tomu asembleru len toľko, že v tejto aplikácii nie je absolútne žiaden dôvod ho používať ak mu C vyhovuje viac...
Mne to takto nevadi, neplanujem to riesit.
Ak by si to niekto chcel upravit, nech sa paci.
Ale dik za rady.

Ta inducka je "elektronicka", netusim, co vsetko je vnutri.
Teraz som si nie celkom isty, ci som k tym dvom kondikom diodu nahodou aj nedaval.
To rusenie som ladil doma na stole a fungovalo to bezproblemovo, ale na masine uz to robilo problem. Mozno kostra samotna sa sprava ako antena.
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Arduino a Pionier

Príspevok od používateľa romiadam » 20 Aug 2022, 23:34

Len taka poznamka ohladom zapalovania,

Ked som sa dostal k pionieru, tak ja som na nom urobil hned generalku, vybrus, novy piest+kruzky, nech ma tlak v poriadku, nove klukovkove loziska aj gufera. Vymenil som kladivko zapalovania za nove (nech tie kontakty nie su opalene, vycistil karburator (ziadne zmeny som na nom nerobil) a pred karburator som dal filter na benzin (nech zachyti vsetok bordel z nadrze - hrdzu).

Po nastaveni predstihu som ten motor nakopol aj rukou ked bol motor teply. Rano ked bol motor studeny som predkopol jemne 2-3krat nech natiahne benzin aj so vzduchom do valca a potom prudko nastartoval a uz si motor krochkal.

Casto zvykla strajkovat sviecka, tak som tam dal neaku od BOSCH a ta uz vydrzala dlho.

Takze ak je vsetko OK, tak ten pionier musi ist. Ale nie som poti ziadnym vylepseniam, vseobecne elektronicke zapalovanie je dobra vec na pionier, lebo ti kontakty kladivka sa casom opotrebuju a treba to nastavovat, smirglovat alebo rovno vymienat.

Ja som tie casy pocital pre 3000 ot/min co je 50hz.
Ak zdvih piesta je 44mm a idealny predstih je 2.8-3.1mm (https://www.jawa-50.cz/wp-content/uploa ... f-1959.pdf) tak ten uhol mi vychadza pre 2.8mm 27.5 stupnov a pre 3.1mm 30.8supnov pred hornym uvratom. Takze ten tvoj system by mal aktivovat indukcnu cievuku cca 30.8 az 27.5 stupnov pred hornu uvratou.
ale realita je taka, ze ak menim uhol predstihu od 20-60 stupnov, moc to neni badatelne.
tie uhly myslis pred hornou uvratou? Ak ano, tak to je velmi cudne.... ze az 60 stupnov a nie je to badatelne.


A pre 3000 ot/min je to 50Hz, teda jedna otacka trva 20ms. Tych 30 stupnov z 360 je 12x -> 20ms / 12 = 1.666ms. Dost kratky cas. Ty mozes to cele aj stym fotosnimacom este pootocit viac a potom s oneskorenim nastavovat cas tak aby ten impulz do indukcnej cievky bol presne tych 27.5 / 30.8 stupnov pred hornou uvratou.

Aky cas potrebuje tvoj program na spracovanie signalu od okamihu detekcie pulzu na vstupnom pine arduina az do okamihu aktivacie indukcnej cievky na vystupnom pine arduina? Meral si to?
Je to stale to stale ta ista hodnota?
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Re: Arduino a Pionier

Príspevok od používateľa TomasNM » 21 Aug 2022, 11:43

Nastavit predstih na mechanickom ramienku je tiez docela umenie.
Vsetky dielenske prirucky spominaju cig.papierik - no strasna blbost.
Najlepsie v dnesnej dobe je to robit osciloskopom.
Ide o to, ze su tam dve moznosti nastavenia - natocenie samotneho magneta ako celku a posun pevneho kontaktu (na starsich bola este moznost pootocit celou platnickou s ramienkom).
To su dva faktory, ktore ovplyvnuju moment iskry.
Ja som to nastavoval skopom tak, ze som hladal pri tych troch milimetroch pred TDC maximalnu amplitudu zo zdrojovej cievky a aby malo kladivko dostatocny zdvih. Ak to bolo spravne, nebolo treba vysoke otacky na nabudenie cievky a slo to nastartovat aj rukou.

Ja som spominal, ze "moc" badatelne to nebolo, hlavne teda pocas jazdy po rovine. Pravdepodobne v kopci by sa to prejavilo viac.

Prikladam aj snimky zo skopu - merane pri 100Hz = 6000RPM.
Iba upresnim: optoclen na vstupe do D2 otaca signal zo senzora, preto je v programe "FALLING" a na skope som Ch1 otocil pre nazornost. Pri merani fazy to otocenie ma vplyv, preto treba zobrazenu hodnotu odpocitat od 180.
Tiez som pre nazornost dal sirku impulzu "senzora" na 50%, ale na jednom z nich je vidno, ze to funguje aj na 1%.
Nastavil som rucne predstih na 0°, 60° a 30°.

Mam tam aj presne definovany cas vystupneho pulzu, na nabudenie inducky - merane pokusne, aby bola silna iskra s co najkratsou dobou saturacie.
Povodne som to bral tak, ze by mala inducka hodit iskru v momente spadnutia signalu, ale z nejakeho dovodu sa to deje opacne - nabeznou hranou vystupneho signalu.
Prílohy
DS1Z_QuickPrint8.png
DS1Z_QuickPrint9.png
DS1Z_QuickPrint10.png
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok