• 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
z pętlą zgubiłem się w czasie
#24
Sprawdziłem i to co napisałem wcześniej nie działa przynajmniej na konsoli.
Proponuję sprawdzić czy to działa:
Kod:
  // przypisanie nazw do pinów
#define trigPin 3 // podłączenie czujnika ultradźwiękowego
#define echoPin 2 // podłączenie czujnika ultradźwiękowego
#define ldgr 52 // dioda zielona odtwarzania sekwencji
#define ldrd 53 // dioda czerwona zatrzymania sekwencji
#define fr 11 // wejscie z fotorezystora
#define sw 12 // dodatkowy przycisk wyzwalania
#define k1 22  // przekaźnik 1
#define k2 23  // przekaźnik 2
#define k3 24  // przekaźnik 3
#define k4 25  // przekaźnik 4
#define k5 26  // przekaźnik 5
#define k6 27  // przekaźnik 6
#define k7 28  // przekaźnik 7
#define k8 29  // przekaźnik 8
#define k9 30  // przekaźnik 9
#define k10 31 // przekaźnik 10
#define k11 32 // przekaźnik 11
#define k12 33 // przekaźnik 12
#define k13 34 // przekaźnik 13
#define k14 35 // przekaźnik 14
#define k15 36 // przekaźnik 15
#define k16 37 // przekaźnik 16

// przypisanie stanów do pinów
int l = 1; // licznik zdarzeń
int sk1 = HIGH; // włączone
int sk2 = HIGH; // włączone
int sk3 = HIGH; // włączone
int sk4 = HIGH; // włączone
int sk5 = HIGH; // włączone
int sk6 = HIGH; // włączone
int sk7 = HIGH; // włączone
int sk8 = HIGH; // włączone
int sk9 = HIGH; // włączone
int sk10 = HIGH; // włączone
int sk11 = HIGH; // włączone
int sk12 = HIGH; // włączone
int sk13 = HIGH; // włączone
int sk14 = HIGH; // włączone
int sk15 = HIGH; // włączone
int sk16 = HIGH; // włączone
int sk = HIGH;





int czastrwania = 15;  // przypisanie wartości do czasu trwania sekwencji
int tempo = 8000;  // określenie tempa załączania

// przypisanie wartośki częstotliwości załąćzania

unsigned long migk1 = tempo;
unsigned long migk2 = tempo;
unsigned long migk3 = tempo;
unsigned long migk4 = tempo;
unsigned long migk5 = tempo;
unsigned long migk6 = tempo;
unsigned long migk7 = tempo;
unsigned long migk8 = tempo;
unsigned long migk9 = tempo;
unsigned long migk10 = tempo;
unsigned long migk11 = tempo;
unsigned long migk12 = tempo;
unsigned long migk13 = tempo;
unsigned long migk14 = tempo;
unsigned long migk15 = tempo;
unsigned long migk16 = tempo;

// przypisanie wartości przesunięcia w czasie załączenia
unsigned long memczask1 ;
unsigned long memczask2 ;
unsigned long memczask3 ;
unsigned long memczask4 ;
unsigned long memczask5 ;
unsigned long memczask6 ;
unsigned long memczask7 ;
unsigned long memczask8 ;
unsigned long memczask9 ;
unsigned long memczask10 ;
unsigned long memczask11 ;
unsigned long memczask12 ;
unsigned long memczask13 ;
unsigned long memczask14 ;
unsigned long memczask15 ;
unsigned long memczask16 ;
unsigned long czasstart=0;
unsigned long aczas = 0;
unsigned long StartCzas ;
byte stat = 0;

void setup() {

  Serial.begin(9600);
  pinMode(k1, OUTPUT);
  pinMode(k2, OUTPUT);
  pinMode(k3, OUTPUT);
  pinMode(k4, OUTPUT);
  pinMode(k5, OUTPUT);
  pinMode(k6, OUTPUT);
  pinMode(k7, OUTPUT);
  pinMode(k8, OUTPUT);
  pinMode(k9, OUTPUT);
  pinMode(k10, OUTPUT);
  pinMode(k11, OUTPUT);
  pinMode(k12, OUTPUT);
  pinMode(k13, OUTPUT);
  pinMode(k14, OUTPUT);
  pinMode(k15, OUTPUT);
  pinMode(k16, OUTPUT);
  pinMode (sw, INPUT_PULLUP);
}




void loop()
{
  if (digitalRead(sw) == HIGH )
  {
    stat = 0;
    // tu trzeba dopisać sekwencję stop
  }
  if (digitalRead(sw) == LOW && stat == 0){
    stat = 1;
    StartCzas = millis();
    memczask1 = StartCzas - 1000;
    memczask2 = StartCzas - 2000;
    memczask3 = StartCzas - 3000;
    memczask4 = StartCzas - 4000;
    memczask5 = StartCzas - 5000;
    memczask6 = StartCzas - 6000;
    memczask7 = StartCzas - 7000;
    memczask8 = StartCzas - 8000;
    memczask9 = StartCzas - 1000;
    memczask10 = StartCzas - 2000;
    memczask11 = StartCzas - 3000;
    memczask12 = StartCzas - 4000;
    memczask13 = StartCzas - 5000;
    memczask14 = StartCzas - 6000;
    memczask15 = StartCzas - 7000;
    memczask16 = StartCzas - 8000;
  }
 
  if (digitalRead(sw) == LOW && stat == 1){
    aczas = millis();
    if ( aczas - memczask1 >= migk1) {        //załączanie przekaźnika 1
      memczask1 = aczas;
      sk1 = !sk1;
      digitalWrite(k1, sk1); Serial.print(" 1,");
    }
    if (aczas - memczask2 >= migk2) {        //załączanie przekaźnika 2
      memczask2 = aczas;
      sk2 = !sk2;
      digitalWrite(k2, sk2); Serial.print(" 2,");
    }
    if (aczas - memczask3 >= migk3) {       //załączanie przekaźnika 3
      memczask3 = aczas;
      sk3 = !sk3;
      digitalWrite(k3, sk3); Serial.print(" 3,");
    }
    if (aczas - memczask4 >= migk4) {      //załączanie przekaźnika 4
      memczask4 = aczas;
      sk4 = !sk4;
      digitalWrite(k4, sk4); Serial.print(" 4,");
    }
    if (aczas - memczask5 >= migk5) {      //załączanie przekaźnika 5
      memczask5 = aczas;
      sk5 = !sk5;
      digitalWrite(k5, sk5); Serial.print(" 5,");
    }
    if (aczas - memczask6 >= migk6) {      //załączanie przekaźnika 6
      memczask6 = aczas;
      sk6 = !sk6;
      digitalWrite(k6, sk6); Serial.print(" 6,");
    }
    if (aczas - memczask7 >= migk7) {      //załączanie przekaźnika 7
      memczask7 = aczas;
      sk7 = !sk7;
      digitalWrite(k7, sk7); Serial.print(" 7,");
    }
    if (aczas - memczask8 >= migk8) {      //załączanie przekaźnika 8
      memczask8 = aczas;
      sk8 = !sk8;
      digitalWrite(k8, sk8); Serial.print(" 8,");
    }
    if (aczas - memczask9 >= migk9) {      //załączanie przekaźnika 9
      memczask9 = aczas;
      sk9 = !sk9;
      digitalWrite(k9, sk9); Serial.println(" 9,");
    }
    if (aczas - memczask10 >= migk10) {    //załączanie przekaźnika 10
      memczask10 = aczas;
      sk10 = !sk10;
      digitalWrite(k10, sk10); Serial.print(" 10,");
    }
    if (aczas - memczask11 >= migk11) {    //załączanie przekaźnika 11
      memczask11 = aczas;
      sk11 = !sk11;
      digitalWrite(k11, sk11); Serial.print(" 11,");
    }
    if (aczas - memczask12 >= migk12) {    //załączanie przekaźnika 12
      memczask12 = aczas;
      sk12 = !sk12;
      digitalWrite(k12, sk12); Serial.print(" 12,");
    }
    if (aczas - memczask13 >= migk13) {    //załączanie przekaźnika 13
      memczask13 = aczas;
      sk13 = !sk13;
      digitalWrite(k13, sk13); Serial.print(" 13,");
    }
    if (aczas - memczask14 >= migk13) {    //załączanie przekaźnika 14
      memczask14 = aczas;
      sk14 = !sk14;
      digitalWrite(k14, sk14); Serial.print(" 14,");
    }
    if (aczas - memczask15 >= migk15) {      //załączanie przekaźnika 15
      memczask15 = aczas;
      sk15 = !sk15;
      digitalWrite(k15, sk15); Serial.print(" 15,");
    }
    if (aczas - memczask16 >= migk16) {      //załączanie przekaźnika 16
      memczask16 = aczas;
      sk16 = !sk16;
      digitalWrite(k16, sk16); Serial.print(" 16,");
    }
  }

}
Wykorzystałem przycisk sw na 12 porcie.
Jak nacisnę to sekwencja leci jak puszczę to się zatrzymuje i rusza po naciśnięciu przycisku od początku.
Czas zwiększyłem 10 razy, aby było łatwiej obserwować.
 
Odpowiedź
  


Wiadomości w tym wątku
z pętlą zgubiłem się w czasie - przez maniekdii - 05-12-2019, 09:29
RE: z pętlą zgubiłem się w czasie - przez Agregacik - 06-12-2019, 20:17
RE: z pętlą zgubiłem się w czasie - przez semi - 07-12-2019, 08:55
RE: z pętlą zgubiłem się w czasie - przez elvis - 07-12-2019, 09:12
RE: z pętlą zgubiłem się w czasie - przez semi - 07-12-2019, 09:31
RE: z pętlą zgubiłem się w czasie - przez semi - 07-12-2019, 09:18
RE: z pętlą zgubiłem się w czasie - przez semi - 07-12-2019, 09:44
RE: z pętlą zgubiłem się w czasie - przez semi - 07-12-2019, 10:41
RE: z pętlą zgubiłem się w czasie - przez elvis - 07-12-2019, 11:59
RE: z pętlą zgubiłem się w czasie - przez semi - 07-12-2019, 15:22
RE: z pętlą zgubiłem się w czasie - przez elvis - 07-12-2019, 15:42
RE: z pętlą zgubiłem się w czasie - przez elvis - 07-12-2019, 16:39
RE: z pętlą zgubiłem się w czasie - przez elvis - 08-12-2019, 12:19

Skocz do:


Przeglądający: 1 gości