Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
#61
(07-11-2016, 02:43 PM)Khadgar2007 Wrote: Za DAC gledam čipac koji se odaziva na ime ES9023, 24bita i može ići do 192kHz uz MCLR od 49,152MHz. Osnovna šema je veoma jednostavna i treba malo okolnih komponenti da radi i kineske varijante dođu do 10$. Ono što mi je zanimljivo je da se i sam čipac može naći za 2$ što bi omogućilo da se napravi kvalitetnija verzija nego od kineza za pristupačnu cijenu jer bolje varijante tog DACa dođu do 50$ što mi se ne uklapa u računicu.

Prateći forume, ljudi imaju reči hvale za taj DAC. Lepo svira (u klasi PCM5102), jedino vodi računa da moraš imati obavezno externi kristal a upravo frekvencija koju si naveo je neophodna kako bi koristio I2S konekciju sa samo tri signala ako ti je ovo uopšte potrebno. Moja preporuka je ipak kompletan interfejs MCLK, BCLK, LRCK, DATA

Kao što sam već pomenuo takav interfejs, isprobano, postoji kod A20 procesora, recimo ovaj CPU modul:
https://www.olimex.com/Products/SOM/A20/

Ovde imaš detaljnu analizu u vezi Beagle Bone Black-a i audio DAC-ova:
https://hifiduino.wordpress.com/2014/03/...for-audio/
Reply
#62
Evo da se malo javim ovdje. Kako sam već rekao kupio sam dva komada Arduino NANO čipa sa ebaya od kineza naravno http://www.ebay.com/itm/181846906547?_tr...EBIDX%3AIT ,kodni iznos cijene-skoro džabe.

E sada ali naravno da nije prošlo bez problema. Čipac koji stoji između USB porta i Atmelovog uC nije original već neka zamjena da se ne moraju plaćati autorsa prava. Uglavnom nakon što sam instalirao Arduino sučelje nigdje nisam mogao naći svog Nanoa, piše samo COM1 i to je to. Nakon malo googlanja i traženja okolo našao sam da driver koji dolazi sa original arduino programom ne paše zbog već navedenog razloga. Tako da se mora naći driver koji odgovara CH430G/431G čipu. Našao sam ga na ovoj stranici http://kig.re/2014/12/31/how-to-use-ardu...emite.html i sve šljaka ko po loju.

Upikne se Nano u USB, nađe ga se u device manageru,instalira novi driver i to je to, sve samo za 2$ umjesto tko zna koliko bi platio original. Upravo dok ovo pišem LEDica na mom Nanou veselo blinka u intervalima od 500ms off, 5000ms on. Drugim riječima napravio sam prvu izmjenu u nekom od programčića koji dođu uz Arduino program.

EDIT:
Dodao sam i drivere ako bi netko imao iste probleme kao i ja.


.rar   CH341SER.rar (Size: 133,11 KB / Downloads: 5)
Reply
#63
To sam i ja morao uraditi, još moram sad i na laptopu prebaciti drajvere.
Reply
#64
Da li mi neko može pomoći kako da prepravim ovaj kod, trebalo bi da počne sam brojati čim se Arduino upali ili na uslov tastera, kada se taster pritisne (momentary) počinje brojanje a drugi put pauza?

Da ne moram unositi broj u serialu, nego samo da krene da broji od 0.
Code:
int aPin = 2;  //         A
int bPin = 3;  //      ________
int cPin = 4;  //     |        |
int dPin = 5;  //   F |        |  B
int ePin = 6;  //     |    G   |
int fPin = 7;  //     |________|
int gPin = 8;  //     |        |
int GND1 = 9;  //     |        |
int GND2 = 10; //   E |        |   C
int GND3 = 11; //     |________|
int GND4 = 12; //        
int num;       //         D
int dig1;
int dig2 = 0;
int dig3 = 0;
int dig4 = 0;
int DTime = 4;


void setup()
{
 pinMode(aPin, OUTPUT);
 pinMode(bPin, OUTPUT);
 pinMode(cPin, OUTPUT);
 pinMode(dPin, OUTPUT);
 pinMode(ePin, OUTPUT);  
 pinMode(fPin, OUTPUT);
 pinMode(gPin, OUTPUT);
 pinMode(GND1, OUTPUT);
 pinMode(GND2, OUTPUT);
 pinMode(GND3, OUTPUT);
 pinMode(GND4, OUTPUT);
 Serial.begin(9600);
}
void loop()
{
 digitalWrite( GND1, HIGH);
 digitalWrite( GND2, HIGH);
 digitalWrite( GND3, HIGH);
 digitalWrite( GND4, HIGH);

if (Serial.available() > 0)
{
 num = Serial.parseInt();
 Serial.println(num);
 dig1 = num / 1000;
 num = num - (dig1 * 1000);
 dig2 = num / 100;
 num = num - (dig2 * 100);
 dig3 = num / 10;
 dig4 = num - (dig3 *10);
}
 
 
 digitalWrite( GND4, LOW);    //digit 4
 pickNumber(dig4);
 delay(DTime);
 digitalWrite( GND4, HIGH);
 
 digitalWrite( GND3, LOW);    //digit 3
 pickNumber(dig3);
 delay(DTime);
 digitalWrite( GND3, HIGH);
 
 digitalWrite( GND2, LOW);   //digit 2
 pickNumber(dig2);
 delay(DTime);
 digitalWrite( GND2, HIGH);
 
 digitalWrite( GND1, LOW);   //digit 1
 pickNumber(dig1);
 delay(DTime);
 digitalWrite( GND1, HIGH);

}
 
void pickNumber(int x){
  switch(x){
    case 1: one(); break;
    case 2: two(); break;
    case 3: three(); break;
    case 4: four(); break;
    case 5: five(); break;
    case 6: six(); break;
    case 7: seven(); break;
    case 8: eight(); break;
    case 9: nine(); break;
    default: zero(); break;
  }
}

void clearLEDs()
{  
 digitalWrite(  2, LOW); // A
 digitalWrite(  3, LOW); // B
 digitalWrite(  4, LOW); // C
 digitalWrite(  5, LOW); // D
 digitalWrite(  6, LOW); // E
 digitalWrite(  7, LOW); // F
 digitalWrite(  8, LOW); // G
}

void one()
{
 digitalWrite( aPin, LOW);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, LOW);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, LOW);
}

void two()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, LOW);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, HIGH);
}

void three()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, HIGH);
}

void four()
{
 digitalWrite( aPin, LOW);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, LOW);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void five()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, LOW);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void six()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, LOW);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void seven()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, LOW);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, LOW);
}

void eight()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void nine()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void zero()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, LOW);
}
Reply
#65
(10-05-2016, 01:36 PM)Makso Wrote: Da li mi neko može pomoći kako da prepravim ovaj kod, trebalo bi da počne sam brojati čim se Arduino upali ili na uslov tastera, kada se taster pritisne (momentary) počinje brojanje a drugi put pauza?

Da ne moram unositi broj u serialu, nego samo da krene da broji od 0/

na Vrhu programa
Code:
int keyStart = "[pin na koji kacis taster]"; //deklarises i inicijalizujes globalnu promenljivu za taster
boolean toggleKey = true;                            //promenljiva za status tastera dali ako je stisnut menja vrednost START/PAUSA
int num = 0;                                              //tvoja promenljiva za broj samo sto je sad inicijalizujemo

u void setup()
Code:
pinMode(keyStart, INPUT); // ovo stavis u void setup()
pinMode(keyStart, HIGH) ; // ovom komandom palis interne pullup otpornike..

u void loop()... ovde sam nkucao samo deo programa koji se menja...
Code:
if (digitalRead(keyStart) == LOW) {  // Svaki put kad se pritisne taster menja se status START ili  PAUSA
   toggleKey = !toggleKey;
}

if (toggleKey) {            //u zavisnosti ako je true(START) onda broj se uvecava i prikazuje novi
num ++;                   //ako je false(PAUSE) onda se broj ne uvecava i prikazuje se stalno zadnji
Serial.println(num);     //broj tj pauzirano je brojanje...
}

dig1 = num / 1000;
num = num - (dig1 * 1000);
dig2 = num / 100;
num = num - (dig2 * 100);
dig3 = num / 10;
dig4 = num - (dig3 *10);
.
.
.
.
.

Testiraj pa javi. Pisem onako iz glave bez provere sinaksni gresaka...
Lp,
YuMERA
Reply
#66
Kod radi, sve je uredu što se tiče uslova tastera, samo ima problem što se ledice ne gase skroz nego samo smanji za nijansu i tako mjenjaju brojeve samo za nijansu smanji svjetlost kada je ugašena?
Samo se G segment gasi do kraja?
Reply
#67
Nisam analiziro ceo program ali tako se u praksi ne radi multiplex ovo je primer da bi se shvatilo kako radi 7seg display.
Probaj u Void clearLEDs() da na kraju stavis malo delay-a cisto da se primeti kad su segmenti pogaseni...
Lp,
YuMERA
Reply
#68
Malo mi je čudno a i buni me, zato što na ovom osnovnom kodu gasi normalno, probao sam sa delay-om ali ništa ne mjenja.?
Reply
#69
Ovo :
Code:
if (digitalRead(keyStart) == LOW) {  // Svaki put kad se pritisne taster menja se status START ili  PAUSA
  toggleKey = !toggleKey;
}

if (toggleKey) {            //u zavisnosti ako je true(START) onda broj se uvecava i prikazuje novi
  num ++;                   //ako je false(PAUSE) onda se broj ne uvecava i prikazuje se stalno zadnji
  Serial.println(num);     //broj tj pauzirano je brojanje...
}

dig1 = num / 1000;
num = num - (dig1 * 1000);
dig2 = num / 100;
num = num - (dig2 * 100);
dig3 = num / 10;
dig4 = num - (dig3 *10);
.
.
.
.
.

Probaj ovako :
Code:
int taster = digitalRead(keyStart);
if (taster == 0 ){  // Svaki put kad se pritisne taster menja se status START ili  PAUSA
  toggleKey = !toggleKey;
}

if (toggleKey) {            //u zavisnosti ako je true(START) onda broj se uvecava i prikazuje novi
num ++;                   //ako je false(PAUSE) onda se broj ne uvecava i prikazuje se stalno zadnji
Serial.println(num);     //broj tj pauzirano je brojanje...
}

dig1 = num / 1000;
num = num - (dig1 * 1000);
dig2 = num / 100;
num = num - (dig2 * 100);
dig3 = num / 10;
dig4 = num - (dig3 *10);
.
.
.
.
.

Ako nece ni tako onda treba odraditi i Debounce tastera...
Lp,
YuMERA
Reply
#70
Ista stvar, moram probati sa Debounce pa vidjeti šta će se dešavati, ali nastavljam sutra/danas, sad je već kasno...
Reply
#71
Stavi na kraju void loop() jedan delay(100);
Jer u tvom prvom primeru ispisivanje cifara je cekalo sa Serial-a da uneses neki broj koji se prikazuje.
Sad se broj uvecava programski i loop() se izvrsava previse brzo da bi nase oko moglo da vidi te brze promene po ciframa...
Lp,
YuMERA
Reply
#72
Probao sam sa dodavanjem delay-a u loop-u, probao sam u svakom dijelu loop-a i samo dobijem 0 i blinka a ne počinje brojati.?

Pokušavao sam sa debounce-om, kad sve upišem, onda idu brojevi samo kada je taster pritisnut, možda nisam dobro sve ispoštovao?
Reply
#73
Stavi negde poslednju verziju softvera koju si probao.
Reply
#74
Da u pravu je gorankg postavi ceo kod da vidimo gde 'zapinje' to je prost primer i ne bi trebalo da ne radi.

U onom tvom prvom primeru nigde ne vidim da pozivas void clearLEDs() tokom izvrsavanja programa..
Lp,
YuMERA
Reply
#75
Evo ova verzija sa poslednjim dodacima koje je @YuMERA napisao, bez debounce-a:

Code:
int keyStart = 13;             //deklarises i inicijalizujes globalnu promenljivu za taster
boolean toggleKey = true;      //promenljiva za status tastera dali ako je stisnut menja vrednost START/PAUSA
int num = 0;                   //tvoja promenljiva za broj samo sto je sad inicijalizujemo
int aPin = 2;  //         A
int bPin = 3;  //      ________
int cPin = 4;  //     |        |
int dPin = 5;  //   F |        |  B
int ePin = 6;  //     |    G   |
int fPin = 7;  //     |________|
int gPin = 8;  //     |        |
int GND1 = 9;  //     |        |
int GND2 = 10; //   E |        |   C
int GND3 = 11; //     |________|
int GND4 = 12; //        
              //         D
int dig1;
int dig2 = 0;
int dig3 = 0;
int dig4 = 0;
int DTime = 4;


void setup()
{
 pinMode(keyStart, INPUT); // ovo stavis u void setup()
 pinMode(keyStart, HIGH) ; // ovom komandom palis interne pullup otpornike..
 pinMode(aPin, OUTPUT);
 pinMode(bPin, OUTPUT);
 pinMode(cPin, OUTPUT);
 pinMode(dPin, OUTPUT);
 pinMode(ePin, OUTPUT);  
 pinMode(fPin, OUTPUT);
 pinMode(gPin, OUTPUT);
 pinMode(GND1, OUTPUT);
 pinMode(GND2, OUTPUT);
 pinMode(GND3, OUTPUT);
 pinMode(GND4, OUTPUT);
 Serial.begin(9600);
}
void loop()
{
 digitalWrite( GND1, HIGH);
 digitalWrite( GND2, HIGH);
 digitalWrite( GND3, HIGH);
 digitalWrite( GND4, HIGH);

int taster = digitalRead(keyStart);
if (taster == 0 ){  // Svaki put kad se pritisne taster menja se status START ili  PAUSA
 toggleKey = !toggleKey;
{
 if (toggleKey) {            //u zavisnosti ako je true(START) onda broj se uvecava i prikazuje novi
 num ++;                   //ako je false(PAUSE) onda se broj ne uvecava i prikazuje se stalno zadnji
 Serial.println(num);     //broj tj pauzirano je brojanje...
 }  
}
 dig1 = num / 1000;
 num = num - (dig1 * 1000);
 dig2 = num / 100;
 num = num - (dig2 * 100);
 dig3 = num / 10;
 dig4 = num - (dig3 *10);
}
 
 
 digitalWrite( GND4, LOW);    //digit 4
 pickNumber(dig4);
 delay(DTime);
 digitalWrite( GND4, HIGH);
 
 digitalWrite( GND3, LOW);    //digit 3
 pickNumber(dig3);
 delay(DTime);
 digitalWrite( GND3, HIGH);
 
 digitalWrite( GND2, LOW);   //digit 2
 pickNumber(dig2);
 delay(DTime);
 digitalWrite( GND2, HIGH);
 
 digitalWrite( GND1, LOW);   //digit 1
 pickNumber(dig1);
 delay(DTime);
 digitalWrite( GND1, HIGH);

}
 
void pickNumber(int x){
  switch(x){
    case 1: one(); break;
    case 2: two(); break;
    case 3: three(); break;
    case 4: four(); break;
    case 5: five(); break;
    case 6: six(); break;
    case 7: seven(); break;
    case 8: eight(); break;
    case 9: nine(); break;
    default: zero(); break;
  }
}

void clearLEDs()
{  
 digitalWrite(  2, LOW); // A
 digitalWrite(  3, LOW); // B
 digitalWrite(  4, LOW); // C
 digitalWrite(  5, LOW); // D
 digitalWrite(  6, LOW); // E
 digitalWrite(  7, LOW); // F
 digitalWrite(  8, LOW); // G
}

void one()
{
 digitalWrite( aPin, LOW);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, LOW);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, LOW);
}

void two()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, LOW);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, HIGH);
}

void three()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, HIGH);
}

void four()
{
 digitalWrite( aPin, LOW);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, LOW);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void five()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, LOW);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void six()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, LOW);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void seven()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, LOW);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, LOW);
 digitalWrite( gPin, LOW);
}

void eight()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void nine()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, LOW);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, HIGH);
}

void zero()
{
 digitalWrite( aPin, HIGH);
 digitalWrite( bPin, HIGH);
 digitalWrite( cPin, HIGH);
 digitalWrite( dPin, HIGH);
 digitalWrite( ePin, HIGH);
 digitalWrite( fPin, HIGH);
 digitalWrite( gPin, LOW);
}
.

Ne vidim ni ja da se poziva void clearLEDs(), ali je radilo najnormalnije, možda zato što je pisao broj iz seriala.?
Reply
#76
Funkcija void pickNumber(int x) nije dobra. Treba da izgleda ovako:


void pickNumber(int x){
  switch(x){
    case 0: zero(); break;
    case 1: one(); break;
    case 2: two(); break;
    case 3: three(); break;
    case 4: four(); break;
    case 5: five(); break;
    case 6: six(); break;
    case 7: seven(); break;
    case 8: eight(); break;
    case 9: nine(); break;
    default: break;
  } 
}
Reply
#77
Funckiju void clearLEDs(void) treba da pozoveš ispred ovog dela:

digitalWrite( GND4, LOW);    //digit 4
 pickNumber(dig4);
 delay(DTime);
 digitalWrite( GND4, HIGH);
 
 digitalWrite( GND3, LOW);    //digit 3
 pickNumber(dig3);
 delay(DTime);
 digitalWrite( GND3, HIGH);
 
 digitalWrite( GND2, LOW);   //digit 2
 pickNumber(dig2);
 delay(DTime);
 digitalWrite( GND2, HIGH);
 
 digitalWrite( GND1, LOW);   //digit 1
 pickNumber(dig1);
 delay(DTime);
 digitalWrite( GND1, HIGH);
Reply
#78
Ubacio sam dio sa void pickNumber(int x), nije se ništa promjenilo.

Onda sam ubacio void clearLEDs(void), na sve načine sam pokušao, ovako kao što sam napisao, pa sam dodavao i vitičaste zagrade da obuhvatim sve digitalWrite-e, i svaki put ista stvar a ništa se ne mjenja?

Postaje mi baš čudno šta se dešava, jer od kako smo ubacili uslov za taster od tada se to dešava, nije mi jasno šta je problem, a vjerujem da je neka obična glupst koja je uvijek prisutna.?
Reply
#79
Tvoja promenljiva num se uvećava za jedan na pritisak tastera ali joj malo niže menjaš vrednosti izrazima:

 num = num - (dig1 * 1000);

 num = num - (dig2 * 100);

Što ne bi smeo raditi.

dodaj jednu pomoćnu promenljivu koja će ti služiti za izračunavanje dig1...dig4.

deklariši je ovako:

int tmp = 0;

Sada loop treba da izgleda ovako:

void loop()
{
   digitalWrite( GND1, HIGH);
   digitalWrite( GND2, HIGH);
   digitalWrite( GND3, HIGH);
   digitalWrite( GND4, HIGH);

   int taster = digitalRead(keyStart);
   if(taster == 0 ) // Svaki put kad se pritisne taster menja se status START ili  PAUSA
   {  
      toggleKey = !toggleKey;
      {
         if(toggleKey) //u zavisnosti ako je true(START) onda broj se uvecava i prikazuje novi
         {
            if(++num > 9999)                   //ako je false(PAUSE) onda se broj ne uvecava i prikazuje se stalno zadnji
   {
               num = 0;
            }

            Serial.println(num);     //broj tj pauzirano je brojanje...
         }  
      }

      dig1 = num / 1000;
      tmp = num - (dig1 * 1000);
      dig2 = tmp / 100;
      tmp = tmp - (dig2 * 100);
      dig3 = tmp / 10;
      dig4 = tmp - (dig3 *10);
   } 

   digitalWrite( GND4, LOW);    //digit 4
   pickNumber(dig4);
   delay(DTime);
   digitalWrite( GND4, HIGH);
 
   digitalWrite( GND3, LOW);    //digit 3
   pickNumber(dig3);
   delay(DTime);
   digitalWrite( GND3, HIGH);
 
   digitalWrite( GND2, LOW);   //digit 2
   pickNumber(dig2);
   delay(DTime);
   digitalWrite( GND2, HIGH);
 
   digitalWrite( GND1, LOW);   //digit 1
   pickNumber(dig1);
   delay(DTime);
   digitalWrite( GND1, HIGH);
}
Reply
#80
Stalno ista stvar, broji, ali ne gasi potrebne ledice kako treba. Definitivno odustajem i od ovog koda, nije vrijedno da vas opterećujem.

Još mi je preostalo da kupim Arduino Mega, i da sa njim probam da svaki segment odradim posebno bez multipleksinga, značo jedan broj 8 izlaza + drugi broj 8 izlaza . . . i tako do nekih 4 ili 5 brojeva, možda bi bilo lakše napisati, šta mislite o tome?

Naravno, hvala Vam puno što se uporno trudite da mi pomognete.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)