www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Pomoč pri programiranju arduinota
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Sob Mar 25, 2017 6:40 pm    Naslov sporočila:   Odgovori s citatom

Ok bom uporabil te BIPe in bom videl kaj bo. pa verjetno za vsak injektor svoj arduino in dal na testeranje za 24 ur da vidim ce je kolikortoliko zaneslivo to. Potem pa test na avtomobilu. Sedaj pa itak cakanje na arduinote da jih kitajci dostavijo.
Aja na breadboardu imam sedaj 4 ledice in 4 vhode delujejo pa lepo razen prekrivanja ne dovolijo.
Nazalost se pa tudi ne spoznam toliko da bi lahko sam izbrav IGBT kateri bi bil primeren zame, lahko pa dodam da ce je minimalna razlika v ceni bi nabaviv taksne da bi lahko se na vsakega dodal po 1 injektor Very Happy
Ker ni izkljucena moznost da bosta kasneje 2 plinska injektorja na cilinder
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Mar 25, 2017 7:16 pm    Naslov sporočila:   Odgovori s citatom

To bo zmogel gnati en Arduino. Če boš vseeno dal 4, ima morda kdo na forumu kakega viška.

Če je lahko duty-cycle izhodov 25%, je stvar rutinska in poraba večino časa precej gladka (razen med 1,3 ms impulzi je dvojna).

Pri 30% pa je malo manj hecno oziroma je frekvenca PWM malce manjša, pa tudi tok iz akumulatorja je vse prej kot gladek.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Sob Mar 25, 2017 7:28 pm    Naslov sporočila:   Odgovori s citatom

Aja no to bi bilo super da bi 1 arduino poganjal vse skupaj ampak kode sam nebom znal prilagoditi. Sem pa sedaj odprl orginalni plinski ECU ampak nažalost na drajverjih ni nobenih številk da bi jih lahko identificeru.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Mar 25, 2017 7:44 pm    Naslov sporočila:   Odgovori s citatom

Koda bo takšna, da jo boš znal prilagoditi.
Samo določil boš številke _ v za oznake pinov
#define pinVH1 _
#define pinVH2 _
#define pinVH3 _
#define pinVH4 _
#define pinIZH1 _
#define pinIZH2 _
#define pinIZH3 _
#define pinIZH4 _
in zvezal.

Potem bo PWM 25% in precej hitro bo krožilo.

Nekaj še počnem zraven ... in precej počasi tipkam program ...

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Sob Mar 25, 2017 7:47 pm    Naslov sporočila:   Odgovori s citatom

igo je napisal/a:
Koda bo takšna, da jo boš znal prilagoditi.
Samo določil boš številke _ v za oznake pinov
#define pinVH1 _
#define pinVH2 _
#define pinVH3 _
#define pinVH4 _
#define pinIZH1 _
#define pinIZH2 _
#define pinIZH3 _
#define pinIZH4 _
in zvezal.

Potem bo PWM 25% in precej hitro bo krožilo.

Nekaj še počnem zraven ... in precej počasi tipkam program ...


Shocked Am zdaj pa cisto nic ne razumem.

Zdej imam to :
Koda:


void setup() {
//start serial connection
//Serial.begin(9600);
//configure pin2 as an input and enable the internal pull-up resistor
pinMode(2, INPUT_PULLUP);
pinMode(3, OUTPUT);
pinMode(7, INPUT_PULLUP);
pinMode(5, OUTPUT);
pinMode(8, INPUT_PULLUP);
pinMode(6, OUTPUT);
pinMode(12, INPUT_PULLUP);
pinMode(9, OUTPUT);
}

void loop() {
GlavnaZanka: // najhitrejša oblika zanke

//////////////////////////////////////////////////////////////////// VALJ 1
  if (digitalRead(2) == LOW)  // Če je vhod aktiven ...
  {
    digitalWrite(3, HIGH); // ... gre izhod na "1" ...
    delayMicroseconds(1300);   // ... za 1300 us ...
    digitalWrite(3, LOW); // ... nato gre prvič na "0".

    while(digitalRead(2) == LOW) // Vhodni signal pa je še vedno "1", zato se ponavlja zanka ...
    {
      delayMicroseconds(100); // ... najprej čakanje z "0" na izhodu  ...
      digitalWrite(3, HIGH); // ... nato izhod skoči na "1" ...
      delayMicroseconds(40); // ... lepo čaka na "1" ...
      digitalWrite(3, LOW); // ... spet pade na "0"...
    } // while ... ter skoči na preverjanje vhoda. Tam preveri vhod in ponovi zanko, dokler je vhod aktiven, sicer leti ven.
  } // if ... Če je prišel sem, vhod ni (več) aktiven.
//////////////////////////////////////////////////////////////////// VALJ 1

//////////////////////////////////////////////////////////////////// VALJ 2
if (digitalRead(7) == LOW)  // Če je vhod aktiven ...
  {
    digitalWrite(5, HIGH); // ... gre izhod na "1" ...
    delayMicroseconds(1300);   // ... za 1300 us ...
    digitalWrite(5, LOW); // ... nato gre prvič na "0".

    while(digitalRead(7) == LOW) // Vhodni signal pa je še vedno "1", zato se ponavlja zanka ...
    {
      delayMicroseconds(100); // ... najprej čakanje z "0" na izhodu  ...
      digitalWrite(5, HIGH); // ... nato izhod skoči na "1" ...
      delayMicroseconds(40); // ... lepo čaka na "1" ...
      digitalWrite(5, LOW); // ... spet pade na "0"...
    } // while ... ter skoči na preverjanje vhoda. Tam preveri vhod in ponovi zanko, dokler je vhod aktiven, sicer leti ven.
  } // if ... Če je prišel sem, vhod ni (več) aktiven.
//////////////////////////////////////////////////////////////////// VALJ 2

//////////////////////////////////////////////////////////////////// VALJ 3
if (digitalRead(8) == LOW)  // Če je vhod aktiven ...
  {
    digitalWrite(6, HIGH); // ... gre izhod na "1" ...
    delayMicroseconds(1300);   // ... za 1300 us ...
    digitalWrite(6, LOW); // ... nato gre prvič na "0".

    while(digitalRead(8) == LOW) // Vhodni signal pa je še vedno "1", zato se ponavlja zanka ...
    {
      delayMicroseconds(100); // ... najprej čakanje z "0" na izhodu  ...
      digitalWrite(6, HIGH); // ... nato izhod skoči na "1" ...
      delayMicroseconds(40); // ... lepo čaka na "1" ...
      digitalWrite(6, LOW); // ... spet pade na "0"...
    } // while ... ter skoči na preverjanje vhoda. Tam preveri vhod in ponovi zanko, dokler je vhod aktiven, sicer leti ven.
  } // if ... Če je prišel sem, vhod ni (več) aktiven.
//////////////////////////////////////////////////////////////////// VALJ 3

//////////////////////////////////////////////////////////////////// VALJ 4
if (digitalRead(12) == LOW)  // Če je vhod aktiven ...
  {
    digitalWrite(9, HIGH); // ... gre izhod na "1" ...
    delayMicroseconds(1300);   // ... za 1300 us ...
    digitalWrite(9, LOW); // ... nato gre prvič na "0".

    while(digitalRead(12) == LOW) // Vhodni signal pa je še vedno "1", zato se ponavlja zanka ...
    {
      delayMicroseconds(100); // ... najprej čakanje z "0" na izhodu  ...
      digitalWrite(9, HIGH); // ... nato izhod skoči na "1" ...
      delayMicroseconds(40); // ... lepo čaka na "1" ...
      digitalWrite(9, LOW); // ... spet pade na "0"...
    } // while ... ter skoči na preverjanje vhoda. Tam preveri vhod in ponovi zanko, dokler je vhod aktiven, sicer leti ven.
  } // if ... Če je prišel sem, vhod ni (več) aktiven.
//////////////////////////////////////////////////////////////////// VALJ 4

  goto GlavnaZanka; // najhitrejša oblika zanke
} // loop()
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Mar 25, 2017 8:04 pm    Naslov sporočila:   Odgovori s citatom

Potem bo pa tako:
#define pinVH1 2 // PIN VHODNI za cilinder 1
#define pinIZH1 3 // PIN IZHODNI za cilinder 1
#define pinVH2 7
#define pinIZH2 5
#define pinVH3 8
#define pinIZH3 6
#define pinVH4 12
#define pinIZH4 9

in v setup()

pinMode(pinVH1, INPUT_PULLUP);
pinMode(pinIZH1, OUTPUT);
pinMode(pinVH2, INPUT_PULLUP);
pinMode(pinIZH2, OUTPUT);
pinMode(pinVH3, INPUT_PULLUP);
pinMode(pinIZH3, OUTPUT);
pinMode(pinVH4, INPUT_PULLUP);
pinMode(pinIZH4, OUTPUT);

in v programu digitalWrite(pinIZH1, HIGH); ... digitalRead(pinVH3); ...

Je bolj varno uporabljati imena pinov, ker številke se hitro pomeša. Še posebej hudo je, če se spomneš prestaviti pin drugam in je treba popravljati po celem programu (jasno, na enem mestu vedno pozabiš Smile ), z imeni pa samo na enem mestu zgoraj definiraš in na novo povežeš.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Sob Mar 25, 2017 8:13 pm    Naslov sporočila:   Odgovori s citatom

Aia ja saj prilagoditev časov ni problem ampak to da bi delala koda na enem arduinotu in podpirala prekrivanje injektorjev tega ne znam popraviti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Mar 25, 2017 8:18 pm    Naslov sporočila:   Odgovori s citatom

Saj program jaz pišem.


Vidim, da si pri vhodih povsod spremenil HIGH v LOW.

if (digitalRead(2) == LOW) // Če je vhod aktiven ...

Se pravi, da je na izhodih motornega računalnika ves čas "1", razen v času impulza, ko je "0"?

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Sob Mar 25, 2017 8:22 pm    Naslov sporočila:   Odgovori s citatom

Motorni racunalnik vklaplja injetorje z maso, zato imam na arduinotu na vhodih pullup in LOW pomeni vbrizg.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Mar 25, 2017 8:37 pm    Naslov sporočila:   Odgovori s citatom

Aha. OK.

Imaš osciloskop? Bi bilo dobro preveriti, če je signal res čisti
"""""""""l_______________l"""""""""""""""" ...
da nima kakšnih
"""""""""l_______l"l_l"l_l"l_l"""""""""""""" vmes, ker tudi injektorji bencina se morajo hitro odpreti, nato pa lahko držijo z manjšim PWM.
V programu bi to naredilo celo zmedo.

Zaenkrat predpostavljam čist signal.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Sob Mar 25, 2017 8:43 pm    Naslov sporočila:   Odgovori s citatom

Imam osciloscop ampak nima kaksnega PWM za bencinske injektorje tudi ce bi bil bi ga lahko izklopil.

Uporablajm ta ECU:

https://www.diyautotune.com/product/megasquirt-iii-ems-system-with-ms3x-expansion-v3-57-assembled/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Mar 25, 2017 10:17 pm    Naslov sporočila:   Odgovori s citatom

Tale program omogoča prekrivanje.
Na aktiven vhod se načeloma odzove v < 10 us in postavi izhod na "1".
Začetnih 1300 us je lahko med 1280 in 1320 us, saj šteje 33 prekinitev, ki se pojavljajo vsakih 40 us.
Nato sledi 25% PWM (40on+120off), dokler je vhod aktiven.
Ko vhod ni več aktiven, se načeloma odzove v < 10 us in postavi izhod na "0".

Koda:


// PLIN verzija 1

// igo 25.03.2017

//==================
//==================
//==================
#define pinIMP1 2 // PIN IMPULZ za cilinder 1
#define pinINJ1 3 // PIN INJEKTOR za cilinder 1
#define pinIMP2 7
#define pinINJ2 5
#define pinIMP3 8
#define pinINJ3 6
#define pinIMP4 12
#define pinINJ4 9
//==================
//==================
//==================
volatile byte IzhodiMUX; // Vsaka prekinitev ima svojo številko po kateri se orientira 1320 us aktivnega izhoda, nato pa se z njimi multipleksira izhode za PWM 25%

byte IzhodiMUX1; // Števec prekinitev, po 33 prekinitvah je minilo 1320 us
byte IzhodiMUX2;
byte IzhodiMUX3;
byte IzhodiMUX4;

byte StanjeINJ1; /// Stanje INJektorja_ //0 = "0" in čaka na "1" /// 1 = "1" in traja 1320 us /// 2 = PWM 25%
byte StanjeINJ2;
byte StanjeINJ3;
byte StanjeINJ4;
//==================
//==================
//==================
void setup()
{
  cli();//stop interrupts

pinMode(pinIMP1, INPUT_PULLUP);
pinMode(pinINJ1, OUTPUT);
pinMode(pinIMP2, INPUT_PULLUP);
pinMode(pinINJ2, OUTPUT);
pinMode(pinIMP3, INPUT_PULLUP);
pinMode(pinINJ3, OUTPUT);
pinMode(pinIMP4, INPUT_PULLUP);
pinMode(pinINJ4, OUTPUT);

//set timer1 interrupt
  TCCR1A = 0;// set entire TCCR1A register to 0
  TCCR1B = 0;// set entire TCCR1B register to 0
  TCNT1 = 0;//initialize counter value to 0
// Set CS10 and CS12 bits for 1024 prescaler
  //TCCR1B |= (1 << CS12) | (1 << CS10);
  TCCR1B = TCCR1B | B00000001;  // PREDDELILNIK 1:1
// enable Timer1 overflow interrupt:
  TIMSK1 |= (1 << TOIE1);

  TCNT1=0;  // (65535 - TCNT1)*0,000001s do prve prekinitve = 65535 us = 65,535 ms = 0,065535 s
  sei();//allow interrupts

} // void setup()

//==================
//==================
//==================

ISR(TIMER1_OVF_vect)  // P R E K I N I T E V timer1 overflow
{
/* PREDDELILNIK
001 = 1
010 = 8
011 = 64
100 = 256
101 = 1024
*/
  TCNT1 = 65495; // Naslednja timer prekinitev bo čez (65535-65495=40) * 1 * 1/16000000 = (...) * 1 us = 40 us
  IzhodiMUX++;  // Vsaka prekinitev ima svojo številko po kateri se orientira 1320 us aktivnega izhoda, nato pa se z njimi multipleksira izhode za PWM 25%
} // ISR Timer 1 OVF

//==================
//==================
//==================

void loop() {
GlavnaZanka: // najhitrejša oblika zanke

//////////////////////////////////////////////////////////////////// VALJ 1
  if (digitalRead(pinIMP1) == LOW)  // Če je vhod aktiven ...
  {
    switch (StanjeINJ1)
    {
      case 2: // PWM 25 %
        if((IzhodiMUX & B00000011) == B00000000) // Samo vsaka četrta prekinitev sme vklopiti izhod, ostale 3 vklapljajo ostale 3 injektorje
        {
          digitalWrite(pinINJ1, HIGH); // izhod na "1"
        }
        else
        {
          digitalWrite(pinINJ1, LOW); // izhod na "0"
        }
        break;
      case 1: // Čakanje 1320 us
        if(IzhodiMUX1 == IzhodiMUX) // 33 prekinitev je minilo
        {
          StanjeINJ1 = 2; // Konec 1320 us, vklopi PWM
        }
        break;
      case 0: //
        digitalWrite(pinINJ1, HIGH); // izhod na "1"
        StanjeINJ1 = 1; // Vklopil je na "1", sedaj mora počakati 33 prekinitev (33*40=1320 us)
        IzhodiMUX1 = IzhodiMUX + 33; // Pripravi si "budilko" čez 33 prekinitev in počaka v novem stanju StanjeINJ1
        break;
    }// switch
  } // if
  else
  {
    digitalWrite(pinINJ1, LOW); // izhod na "0"
    StanjeINJ1 = 0; // pripravljen za naslednjič
  }
//////////////////////////////////////////////////////////////////// VALJ 1

//////////////////////////////////////////////////////////////////// VALJ 2
  if (digitalRead(pinIMP2) == LOW)  // Če je vhod aktiven ...
  {
    switch (StanjeINJ2)
    {
      case 2: // PWM 25 %
        if((IzhodiMUX & B00000011) == B00000001) // Samo vsaka četrta prekinitev sme vklopiti izhod, ostale 3 vklapljajo ostale 3 injektorje
        {
          digitalWrite(pinINJ2, HIGH); // izhod na "1"
        }
        else
        {
          digitalWrite(pinINJ2, LOW); // izhod na "0"
        }
        break;
      case 1: // Čakanje 1320 us
        if(IzhodiMUX2 == IzhodiMUX) // 33 prekinitev je minilo
        {
          StanjeINJ2 = 2; // Konec 1320 us, vklopi PWM
        }
        break;
      case 0: //
        digitalWrite(pinINJ2, HIGH); // izhod na "1"
        StanjeINJ2 = 1; // Vklopil je na "1", sedaj mora počakati 33 prekinitev (33*40=1320 us)
        IzhodiMUX2 = IzhodiMUX + 33; // Pripravi si "budilko" čez 33 prekinitev in počaka v novem stanju StanjeINJ2
        break;
    }// switch
  } // if
  else
  {
    digitalWrite(pinINJ2, LOW); // izhod na "0"
    StanjeINJ2 = 0; // pripravljen za naslednjič
  }
//////////////////////////////////////////////////////////////////// VALJ 2

//////////////////////////////////////////////////////////////////// VALJ 3
  if (digitalRead(pinIMP3) == LOW)  // Če je vhod aktiven ...
  {
    switch (StanjeINJ3)
    {
      case 2: // PWM 25 %
        if((IzhodiMUX & B00000011) == B00000010) // Samo vsaka četrta prekinitev sme vklopiti izhod, ostale 3 vklapljajo ostale 3 injektorje
        {
          digitalWrite(pinINJ3, HIGH); // izhod na "1"
        }
        else
        {
          digitalWrite(pinINJ3, LOW); // izhod na "0"
        }
        break;
      case 1: // Čakanje 1320 us
        if(IzhodiMUX3 == IzhodiMUX) // 33 prekinitev je minilo
        {
          StanjeINJ3 = 2; // Konec 1320 us, vklopi PWM
        }
        break;
      case 0: //
        digitalWrite(pinINJ3, HIGH); // izhod na "1"
        StanjeINJ3 = 1; // Vklopil je na "1", sedaj mora počakati 33 prekinitev (33*40=1320 us)
        IzhodiMUX3 = IzhodiMUX + 33; // Pripravi si "budilko" čez 33 prekinitev in počaka v novem stanju StanjeINJ3
        break;
    }// switch
  } // if
  else
  {
    digitalWrite(pinINJ3, LOW); // izhod na "0"
    StanjeINJ3 = 0; // pripravljen za naslednjič
  }
//////////////////////////////////////////////////////////////////// VALJ 3

//////////////////////////////////////////////////////////////////// VALJ 4
  if (digitalRead(pinIMP4) == LOW)  // Če je vhod aktiven ...
  {
    switch (StanjeINJ4)
    {
      case 2: // PWM 25 %
        if((IzhodiMUX & B00000011) == B00000011) // Samo vsaka četrta prekinitev sme vklopiti izhod, ostale 3 vklapljajo ostale 3 injektorje
        {
          digitalWrite(pinINJ4, HIGH); // izhod na "1"
        }
        else
        {
          digitalWrite(pinINJ4, LOW); // izhod na "0"
        }
        break;
      case 1: // Čakanje 1320 us
        if(IzhodiMUX4 == IzhodiMUX) // 33 prekinitev je minilo
        {
          StanjeINJ4 = 2; // Konec 1320 us, vklopi PWM
        }
        break;
      case 0: //
        digitalWrite(pinINJ2, HIGH); // izhod na "1"
        StanjeINJ4 = 1; // Vklopil je na "1", sedaj mora počakati 33 prekinitev (33*40=1320 us)
        IzhodiMUX4 = IzhodiMUX + 33; // Pripravi si "budilko" čez 33 prekinitev in počaka v novem stanju StanjeINJ4
        break;
    }// switch
  } // if
  else
  {
    digitalWrite(pinINJ4, LOW); // izhod na "0"
    StanjeINJ4 = 0; // pripravljen za naslednjič
  }
//////////////////////////////////////////////////////////////////// VALJ 4

  goto GlavnaZanka; // najhitrejša oblika zanke
} // loop()


Popravljeno iz:
if((IzhodiMUX && B00000011) == B000000xy)
v:
if((IzhodiMUX & B00000011) == B000000xy)

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor


Nazadnje urejal/a igo Ned Mar 26, 2017 1:14 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Ned Mar 26, 2017 12:32 am    Naslov sporočila:   Odgovori s citatom

Hm zdaj pa nevem v cem je probelm.
Ko aktiveram prvi vhod na izhodu ledica nakljucno utripa, ko aktiveram drugi par mislim da deluje pravilno ampak bom jutri pomeril z osciloscopom, ko aktiveram tretji par ledica samo utripne za trenutek in ugasne vcasih mocneje vcasih bol slabo, ko pa aktiveram 4 vhod pa utripne ledica na izhodu 2 vcasih mocneje ucasih slabse... :/

Ko sem ta del:
if((IzhodiMUX && B00000011) == B00000001)

kopiral iz cilindra 2 v ostale cilindre pa ledice delujejo takokot naj bi, kako se pa vse skupaj obnaša pa nevem.
Ce bo jutri kaj casa bom vrjetno povezu vse skupaj tako da vidim kako se bodo injektorji obnašali.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Ned Mar 26, 2017 1:04 am    Naslov sporočila:   Odgovori s citatom

Aaaahhhh ... d'oh!
Tam pri && mora biti samo en &.

Prav je:
if((IzhodiMUX & B00000011) == B000000xy)
in seveda 00 , 01 , 10 , 11 namesto xy.


Najprej sem imel drugačen pogoj in je potem ostal dvojni && Rolling Eyes

Sem tudi zgoraj popravil.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
beny1989
Član
Član



Pridružen-a: Sob 26 Jan 2013 15:34
Prispevkov: 35
Aktiv.: 0.26
Kraj: Prevalje

PrispevekObjavljeno: Ned Mar 26, 2017 10:46 am    Naslov sporočila:   Odgovori s citatom

Še vedno ne deluje tako kot naj bi prilagam pa tudi video kjer se vidi da nekatere ledice mal utripajo.
Ko se prizge sam prva se vidi da malo utripa, ko prizgem se drugo tudi prva nega utripati... itd
https://youtu.be/El-G-y7o5AE
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
Stran 2 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 47 dni


Powered by phpBB © 2001, 2005 phpBB Group