Всем доброго времени суток, очень нужна помощь,
Я пытаюсь написать программку для облегчения своей работы, работа не связана с программированием, поэтому в этой сфере я полный НОЛЬ, немного по изучав я наткнулся на программу ардублок, но там отсутствует возможность использовать задержки кроме delay. а мне необходимо отключать или запускать другой процесс а с delay это не получается и приходится постоянно перезагружать ардуинку, попробовав разные варианты с форума и с интернета, у меня ничего не получилось, программа заключается в включении трех реле на 2-3сек через определенный промежуток времени, в программе в место реле описаны светодиоды, так как я пробую на них и так нагляднее, вот пример моего кода.
long x = 0;
#include <Wire.h>
#include "ASOLED.h"
void Start() {
if (digitalRead(A0) == 0) {
while (1){
LD.printString_12x16("Старт 1", 0, 2);
LD.printString_12x16("Цикл", 0, 6);
LD.printString_12x16("", 50, 6);
LD.printNumber((long)x);
x = x + 1;
pinMode(10, OUTPUT);
digitalWrite(10, 1);
delay(2000);
pinMode(10, OUTPUT);
digitalWrite(10, 0);
delay(6000);
pinMode(11, OUTPUT);
digitalWrite(11, 1);
delay(2000);
pinMode(11, OUTPUT);
digitalWrite(11, 0);
delay(30000);
pinMode(12, OUTPUT);
digitalWrite(12, 1);
delay(2000);
pinMode(12, OUTPUT);
digitalWrite(12, 1);
delay(900000);
pinMode(13, OUTPUT);
digitalWrite(13, 1);
delay(2000);
}
}
}
void Start1() {
if (digitalRead(A1) == 0) {
while (1){
LD.printString_12x16("Старт 2", 0, 2);
LD.printString_12x16("Цикл", 0, 6);
LD.printString_12x16("", 50, 6);
LD.printNumber((long)x);
x = x + 1;
pinMode(10, OUTPUT);
digitalWrite(10, 1);
delay(2000);
pinMode(10, OUTPUT);
digitalWrite(10, 0);
delay(6000);
pinMode(11, OUTPUT);
digitalWrite(11, 1);
delay(2000);
pinMode(11, OUTPUT);
digitalWrite(11, 0);
delay(45000);
pinMode(12, OUTPUT);
digitalWrite(12, 1);
delay(2000);
pinMode(12, OUTPUT);
digitalWrite(12, 1);
delay(900000);
pinMode(13, OUTPUT);
digitalWrite(13, 1);
delay(2000);
}
}
}
void Start3() {
if (digitalRead(A2) == 0) {
while (1){
LD.printString_12x16("СТОП", 0, 2);
LD.printString_12x16(" ", 0, 6);
pinMode(13, OUTPUT);
digitalWrite(13, 1);
}
}
}
void setup() {
LD.init();
LD.clearDisplay();
LD.printString_12x16("RABOTA", 35, 0);
pinMode(10, OUTPUT);
digitalWrite(10, 0);
pinMode(11, OUTPUT);
digitalWrite(11, 0);
pinMode(12, OUTPUT);
digitalWrite(12, 0);
pinMode(13, OUTPUT);
digitalWrite(13, 0);
pinMode(A0, INPUT_PULLUP);
pinMode(A1, INPUT_PULLUP);
pinMode(A2, INPUT_PULLUP);
}
void loop() {
Start();
Start1();
Start3();
}