Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
#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


Messages In This Thread
RE: Arduino - tutorijali, pitanja, primjeri i projekti - by Makso - 10-08-2016, 06:07 PM

Forum Jump:


Users browsing this thread: 2 Guest(s)