• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Ograniczenia funkcji counter
#5
Coś mi działa ten kod i nie wiem czy go jakoś źle nie zaimplementowałem...



Poniżej wklejam swój kod i proszę o sugestię co w nim dopisać by działało jak trzeba. Dodam, że program steruje poprzez dwa przyciski 9 diodami i naciskanie jednego przycisku powoduje sekwencyjne włączanie diód.



Kod:
int ledPin1 = 4;
int ledPin2 = 5;
int ledPin3 = 13;
int ledPin4 = 12;
int ledPin5 = 11;
int ledPin6 = 10;
int ledPin7 = 9;
int ledPin8 = 8;
int ledPin9 = 7;
int ledPin10 = 6;
int switchPin1 =2;
int switchPin2 =3;
int counter = 1;
int val1 = 0;
int val2 = 0;
int currentState = 0;
int previousState = 0;
int count = 0;


void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(ledPin8, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(switchPin1, INPUT);
pinMode(switchPin2, INPUT);
digitalWrite(switchPin1, HIGH);
digitalWrite(switchPin2, HIGH);
Serial.begin(9600);
}


void loop(){
val1 = digitalRead(switchPin1);
val2 = digitalRead(switchPin2);

if (val1 == LOW && val2 == HIGH) {
digitalWrite(ledPin1, LOW);
currentState = 1;
 }
 else if (val1 == HIGH && val2 == LOW) {
digitalWrite(ledPin2, LOW);
currentState = 2;
}
else {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
currentState = 0;
}
if(currentState != previousState){
if(currentState == 1){
 if(counter != 15){
counter = counter + 1;
 
Serial.println(counter);
  if (counter == 1){                 //1
  digitalWrite(ledPin3, HIGH);
  }
  else{
  digitalWrite(ledPin3, LOW);
 
  if (counter == 2){                 //1,2
  digitalWrite(ledPin3, HIGH);
  digitalWrite(ledPin4, HIGH);
  }
  else{
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
 
  if (counter == 3){                 //2
  digitalWrite(ledPin4, HIGH);
  }
  else{
  digitalWrite(ledPin4, LOW);
 
  if (counter == 4){                 //2,3
  digitalWrite(ledPin4, HIGH);
  digitalWrite(ledPin5, HIGH);
  }  
  else{
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
 
  if (counter == 5){                 //3
  digitalWrite(ledPin5, HIGH);
  }
  else{
  digitalWrite(ledPin5, LOW);
 
  if (counter == 6){                 //3,4
  digitalWrite(ledPin5, HIGH);
  digitalWrite(ledPin6, HIGH);
  }
  else{
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, LOW);
 
  if (counter == 7){                 //4
  digitalWrite(ledPin6, HIGH);
  }
  else{
  digitalWrite(ledPin6, LOW);
 
  if (counter == 8){                 //4,5
  digitalWrite(ledPin6, HIGH);
  digitalWrite(ledPin7, HIGH);
  }
  else{
  digitalWrite(ledPin6, LOW);
  digitalWrite(ledPin7, LOW);
 
  if (counter == 9){                 //5
  digitalWrite(ledPin7, HIGH);
  }
  else{
  digitalWrite(ledPin7, LOW);
 
  if (counter == 10){                 //5,6
  digitalWrite(ledPin7, HIGH);
  digitalWrite(ledPin8, HIGH);
  }
  else{
  digitalWrite(ledPin7, LOW);
  digitalWrite(ledPin8, LOW);
 
  if (counter == 11){                 //6
  digitalWrite(ledPin8, HIGH);
  }
  else{
  digitalWrite(ledPin8, LOW);
 
  if (counter == 12){                 //6,7
  digitalWrite(ledPin8, HIGH);
  digitalWrite(ledPin9, HIGH);
  }
  else{
  digitalWrite(ledPin8, LOW);
  digitalWrite(ledPin9, LOW);
 
  if (counter == 13){                 //7
  digitalWrite(ledPin9, HIGH);
  }
  else{
  digitalWrite(ledPin9, LOW);
 
  if (counter == 14){                 //7,8
  digitalWrite(ledPin9, HIGH);
  digitalWrite(ledPin10, HIGH);
  }
  else{
  digitalWrite(ledPin9, LOW);
  digitalWrite(ledPin10, LOW);
 
  if (counter == 15){                 //8
  digitalWrite(ledPin10, HIGH);
  }
  else{
  digitalWrite(ledPin10, LOW);
 
  if (counter == 16){                 //8,9
  digitalWrite(ledPin10, HIGH);
  digitalWrite(ledPin1, HIGH);
  }
  else{
  digitalWrite(ledPin10, LOW);
  digitalWrite(ledPin1, LOW);
 
  if (counter == 17){                 //9
  digitalWrite(ledPin1, HIGH);
  }
  else{
  digitalWrite(ledPin1, LOW);
  }}}}}}}}}}}}}}}}}
 
  }}}

 
if(currentState != previousState){
if(currentState == 2){
 if(counter != 1){
counter = counter - 1;
Serial.println(counter);
 
  if (counter == 17){                 //9
  digitalWrite(ledPin1, HIGH);
  }
  else{
  digitalWrite(ledPin1, LOW);
 
  if (counter == 16){                 //8,9
  digitalWrite(ledPin10, HIGH);
  digitalWrite(ledPin1, HIGH);
  }
  else{
  digitalWrite(ledPin10, LOW);
  digitalWrite(ledPin1, LOW);
 
  if (counter == 15){                 //8
  digitalWrite(ledPin10, HIGH);
  }
  else{
  digitalWrite(ledPin10, LOW);
 
  if (counter == 14){                 //7,8
  digitalWrite(ledPin9, HIGH);
  digitalWrite(ledPin10, HIGH);
  }
  else{
  digitalWrite(ledPin9, LOW);
  digitalWrite(ledPin10, LOW);
 
  if (counter == 13){                 //7
  digitalWrite(ledPin9, HIGH);
  }
  else{
  digitalWrite(ledPin9, LOW);

  if (counter == 12){                 //6,7
  digitalWrite(ledPin8, HIGH);
  digitalWrite(ledPin9, HIGH);
  }
  else{
  digitalWrite(ledPin8, LOW);
  digitalWrite(ledPin9, LOW);

  if (counter == 11){                 //6
  digitalWrite(ledPin8, HIGH);
  }
  else{
  digitalWrite(ledPin8, LOW);

  if (counter == 10){                 //5,6
  digitalWrite(ledPin7, HIGH);
  digitalWrite(ledPin8, HIGH);
  }
  else{
  digitalWrite(ledPin7, LOW);
  digitalWrite(ledPin8, LOW);

  if (counter == 9){                 //5
  digitalWrite(ledPin7, HIGH);
  }
  else{
  digitalWrite(ledPin7, LOW);

  if (counter == 8){                 //4,5
  digitalWrite(ledPin6, HIGH);
  digitalWrite(ledPin7, HIGH);
  }
  else{
  digitalWrite(ledPin6, LOW);
  digitalWrite(ledPin7, LOW);

  if (counter == 7){                 //4
  digitalWrite(ledPin6, HIGH);
  }
  else{
  digitalWrite(ledPin6, LOW);

  if (counter == 6){                 //3,4
  digitalWrite(ledPin5, HIGH);
  digitalWrite(ledPin6, HIGH);
  }
  else{
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, LOW);
 
  if (counter == 5){                 //3
  digitalWrite(ledPin5, HIGH);
  }
  else{
  digitalWrite(ledPin5, LOW);

  if (counter == 4){                 //2,3
  digitalWrite(ledPin4, HIGH);
  digitalWrite(ledPin5, HIGH);
  }  
  else{
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);

  if (counter == 3){                 //2
  digitalWrite(ledPin4, HIGH);
  }
  else{
  digitalWrite(ledPin4, LOW);

  if (counter == 2){                 //1,2
  digitalWrite(ledPin3, HIGH);
  digitalWrite(ledPin4, HIGH);
  }
  else{
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
 
  if (counter == 1){                 //1
  digitalWrite(ledPin3, HIGH);
  }
  else{
  digitalWrite(ledPin3, LOW);
     
  }}}}}}}}}}}}}}}}}

  }}}



previousState = currentState;
delay(250);
}
 
Odpowiedź
  


Wiadomości w tym wątku
Ograniczenia funkcji counter - przez mavi - 13-04-2016, 21:06
RE: Ograniczenia funkcji counter - przez JasQ - 14-04-2016, 15:58
RE: Ograniczenia funkcji counter - przez mavi - 15-04-2016, 13:50
RE: Ograniczenia funkcji counter - przez JasQ - 15-04-2016, 15:08
RE: Ograniczenia funkcji counter - przez mavi - 17-04-2016, 13:22
RE: Ograniczenia funkcji counter - przez JasQ - 17-04-2016, 20:26

Skocz do:


Przeglądający: 1 gości