Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static const byte ident_pins[] = {2, 3, 4, 5, 13, A2, A5}; // poradi a pouzite piny lze samozrejme libovolne menit
- byte action_nr = 255;
- unsigned long startMillis;
- unsigned long currentMillis;
- const unsigned int refreshPeriod = 100;
- unsigned long startMillisRelay;
- void setup() {
- Serial.begin(9600);
- for (byte i = 0; i < (sizeof(ident_pins) / sizeof(ident_pins[0])); i++) {
- pinMode(ident_pins[i], OUTPUT);
- }
- /// Pouze pro testování ///
- /// Test ALL relay ON
- action_nr = 1;
- }
- void loop() {
- currentMillis = millis();
- if (currentMillis - startMillis >= refreshPeriod)
- {
- switch (action_nr) {
- case 0:
- change_all_relays(0, 1000); //// dle libosti změnit prodlevu v ms
- break;
- case 1:
- change_all_relays(1, 1000); //// dle libosti změnit prodlevu v ms
- break;
- }
- startMillis = currentMillis;
- }
- }
- /// change ALL relays status
- void change_all_relays(byte action, unsigned int switch_delay) {
- if (action_nr == 255) {
- action_nr = action;
- }
- if (currentMillis - startMillisRelay >= switch_delay)
- {
- switch (action) {
- /// Set pins state OFF
- case 0:
- for (byte i = 0; i < (sizeof(ident_pins) / sizeof(ident_pins[0])); i++) {
- if (i == ((sizeof(ident_pins) / sizeof(ident_pins[0])) - 1))
- {
- action_nr = 255;
- }
- if (digitalRead(ident_pins[i]) == 1) {
- digitalWrite(ident_pins[i], 0);
- /// pouze pro debug
- Serial.print(F("Pin:"));
- Serial.print(ident_pins[i]);
- Serial.print(F("\t"));
- Serial.print(F("Stav:"));
- Serial.println(digitalRead(ident_pins[i]));
- //////
- startMillisRelay = currentMillis;
- break;
- }
- }
- break;
- /// Set pins state ON
- case 1:
- for (byte i = 0; i < (sizeof(ident_pins) / sizeof(ident_pins[0])); i++) {
- if (i == ((sizeof(ident_pins) / sizeof(ident_pins[0])) - 1))
- {
- action_nr = 255;
- }
- if (digitalRead(ident_pins[i]) == 0) {
- digitalWrite(ident_pins[i], 1);
- /// pouze pro debug
- Serial.print(F("Pin:"));
- Serial.print(ident_pins[i]);
- Serial.print(F("\t"));
- Serial.print(F("Stav:"));
- Serial.println(digitalRead(ident_pins[i]));
- //////
- startMillisRelay = currentMillis;
- break;
- }
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement