long t1=0;// Переменная для хранения времени, первоначально это 0 секунд, 0 часов, 0 суток и так далее... int m=0; // Переменная для минут int h=0; // Переменная для часов void setup() { Serial.begin(9600); // выходы для минут pinMode(13, OUTPUT); //1 pinMode(12, OUTPUT); //2 pinMode(11, OUTPUT);//4 pinMode(10, OUTPUT);//8 pinMode(9, OUTPUT); //16 pinMode(8, OUTPUT); //32 // выходы для часов pinMode(7, OUTPUT);//1 pinMode(6, OUTPUT);//2 pinMode(5, OUTPUT);//4 pinMode(4, OUTPUT);//8 pinMode(3, OUTPUT);//16 // установка часов и минут pinMode(2, INPUT); // для установки минут pinMode(1, INPUT); // для установки часов } void loop() { // отмеряем циклы для минут, если поставить вместо 1000 цифру 60000, то это будут бинарные часы if ((millis()-t1)>1000){m=m+1; t1=millis(); } // для минут if (m%2==0) { digitalWrite(13, HIGH);} // каждый первый else {digitalWrite(13, LOW); } if (m>1&&m<4 || m>5&&m<8 || m>9&&m<12 || m>13&&m<16 || m>17&&m<20 || m>21&&m<24 || m>25&&m<28 || m>29&&m<32 || m>33&&m<36 || m>37&&m<40|| m>41&&m<44|| m>45&&m<48 || m>49&&m<52|| m>53&&m<56 || m>57&&m<60 ) { digitalWrite(12, LOW);} // каждый второй и третий else {digitalWrite(12, HIGH); } if (m>3&&m<8 || m>11&&m<16 || m>19&&m<24 || m>27&&m<32 || m>35&&m<40 || m>43&&m<48 || m>51&&m<56 || m>59&&m<61 ) { digitalWrite(11, LOW);} // с 4 по 7 else {digitalWrite(11, HIGH); } if (m>7&&m<16 || m>23&&m<32 || m>39&&m<48 || m>55&&m<61) { digitalWrite(10, LOW);} // с 8 по 15 else {digitalWrite(10, HIGH); } if (m>15&&m<32 || m>47&&m<61 ) { digitalWrite(9, LOW);} // с 16 по 32 else {digitalWrite(9, HIGH); } if (m>31&&m<61 ) { digitalWrite(8, LOW);} // с 32 по 60 else {digitalWrite(8, HIGH); } if (m>59){m=0; h=h+1;} // сбрасываем минуты и прибавляем 1 час // для часов if (h%2==0) { digitalWrite(7, HIGH);} // каждый первый else {digitalWrite(7, LOW); } if (h>1&&h<4 || h>5&&h<8 || h>9&&h<12 || m>13&&m<16 || m>17&&m<20 || m>21&&m<24 || m>25&&m<28 || m>29&&m<32 || m>33&&m<36 || m>37&&m<40|| m>41&&m<44|| m>45&&m<48 || m>49&&m<52|| m>53&&m<56 || m>57&&m<60 ) { digitalWrite(6, LOW);} // каждый второй и третий else {digitalWrite(6, HIGH); } if (h>3&&h<8 || h>11&&h<16 || h>19&&h<24 ) { digitalWrite(5, LOW);} // с 4 по 7 else {digitalWrite(5, HIGH); } if (m>7&&m<16 || h>23&&h<32 ) { digitalWrite(4, LOW);} // с 8 по 15 else {digitalWrite(4, HIGH); } if (h>23){h=0;} // сбрасываем часы //установка минут, без использования сопротивления скетч не будет работать, так как будет дребезг и плюсование величины if (digitalRead(2) == HIGH) {m=m+1; delay (500);} // установка часов if (digitalRead(1) == HIGH) {h=h+1; delay (500);} }