Skocz do zawartości

Madaulpe

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O Madaulpe

  • Ranga
    1/10
  1. Udało mi się uzyskać to o czym myślałem. Wszystko działa. Czy można w tym jeszcze coś poprawić? unsigned long curren_T = 0; unsigned long prv_T[2]; int stanLED[2]; void setup() {} void loop() { curren_T = millis(); LED_BLINK (50, 500, 2, 0); //czas LED OFF / czas LED ON / pin /nr komórki LED_BLINK (500, 500, 3, 1); //czas LED OFF / czas LED ON / pin /nr komórki } //------------------ FUNKCJA 1 ----------------------- void LED_BLINK(unsigned long interval, unsigned long blink_T, int pin, int n) { pinMode(pin, OUTPUT); if (stanLED[n] == LOW) { if (curren_T - prv_T[n] >= interval) { stanLED[n] = HIGH; digitalWrite(pin, stanLED[n]); prv_T[n] = curren_T; } } else { if (curren_T - prv_T[n] >= blink_T) { stanLED[n] = LOW; digitalWrite(pin, stanLED[n]); prv_T[n] = curren_T; } } }
  2. Witam Wszystkich Serdecznie i cieszę się bardzo że mogę korzystać z zasobów tego forum. Próbuję zbudować ramię robota.
  3. Witam Wszystkich, Dzięki za objaśnienie tematu wielozadaniowości, dzięki temu udało mi się zrobić kolejny krok do przodu. Obecnie próbuję zrobić własną funkcje do migania diodami. Funkcja 1 działa tak jak tego oczekuje dla jednej diody. Jednak kiedy próbuję ją zastosować do kolejnej diody to już nie działa. Jest to dla mnie zrozumiałe (jest tam stan diody który nie może być taki sam dla różnych diod oraz zapamiętany czas który też będzie się różnił dla każdej następnej diody. Poradziłem sobie z tym pisząc drugą funkcje która różni się tymi parametrami i wszystko działa. Nie chcę jednak tworzyć nowych funkcji dla każdej następnej diody. Próbuję zastosować tablice ale nie bardzo mi to wychodzi i już trochę zwątpiłem czy idę w odpowiednim kierunku. Mój kod z dwoma funkcjami: unsigned long prv_T_1 = 0; unsigned long prv_T_2 = 0; unsigned long curren_T = 0; int stanLED_1 = LOW; int stanLED_2 = LOW; void setup() {} void loop() { curren_T = millis(); LED_BLINK_1 (300, 30, 2); //czas LED OFF / czas LED ON / pin LED_BLINK_2 (100, 500, 3); //czas LED OFF / czas LED ON / pin } //------------------ FUNKCJA 1 ----------------------- void LED_BLINK_1(unsigned long interval, unsigned long blink_T, int pin) { pinMode(pin, OUTPUT); if (stanLED_1 == LOW) { if (curren_T - prv_T_1 >= interval) { stanLED_1 = HIGH; digitalWrite(pin, stanLED_1); prv_T_1 = curren_T; } } else { if (curren_T - prv_T_1 >= blink_T) { stanLED_1 = LOW; digitalWrite(pin, stanLED_1); prv_T_1 = curren_T; } } } //------------------ FUNKCJA 2 ----------------------- void LED_BLINK_2(unsigned long interval, unsigned long blink_T, int pin) { pinMode(pin, OUTPUT); if (stanLED_2 == LOW) { if (curren_T - prv_T_2 >= interval) { stanLED_2 = HIGH; digitalWrite(pin, stanLED_2); prv_T_2 = curren_T; } } else { if (curren_T - prv_T_2 >= blink_T) { stanLED_2 = LOW; digitalWrite(pin, stanLED_2); prv_T_2 = curren_T; } } }
×
×
  • Utwórz nowe...