прошу помощи в скейтче
- Войдите на сайт для отправки комментариев
Пт, 24/06/2022 - 06:48
#include <LiquidCrystal.h> ЖК «Жидкий Кристалл» (2, 3, 4, 5, 6, 7); const int RELAY_PIN = 12; // Пин управления реле const int LED_PIN = 11; // Пин сигнального диода const int LED_PIN2 = 10; // Пин сигнального диода const int LED_COUNT_WRONG = 2; // Кол-во изменений состояния диода при неверном парковщике. Загорелся и потух это 2 const int LED_COUNTER_TIME = 7000; // Время наблюдения за диодом после ввода пина в мс const int DIGIT_DELAY = 1500; // Пауза между вводом чисел в мс интервал v = 1; интервал v1 = 1; интервал v2 = 1; интервал v3 = 1; интервал v4 = 1; интервал led_sw = 0; символ buf[20]; логическое значение = ложь; недействительная установка () { lcd.begin(16, 2); pinMode (RELAY_PIN, ВЫХОД); pinMode (LED_PIN, ВХОД); pinMode (LED_PIN2, ВХОД); Серийный.начать(9600); } недействительным parseV () { v1 = (целое число) (v / 1000); v2 = (целое число) (v% 1000/100); v3 = (целое число) (v% 100/10); v4 = (целое число) (v % 10); если (v1 == 0) v1++; если (v2 == 0) v2++; если (v3 == 0) v3++; если (v4 == 0) v4++; v = v1 * 1000 + v2 * 100 + v3 * 10 + v4; } void writePinDigit (int num, bool is_delay) { инт н; для (n = 0; n < число; n++) { цифровая запись (RELAY_PIN, ВЫСОКИЙ); задержка(100); цифровая запись (RELAY_PIN, НИЗКИЙ); задержка(100); lcd.setCursor(0, 1); } если (is_delay) задержка (DIGIT_DELAY); } недействительным ledCounter () { int max = LED_COUNTER_TIME / 10; интервал пред = НИЗКИЙ; инт ш = 0; инт п = 0; инт ул; для (n = 0; n < max; n++) { if(digitalRead(14)==HIGH)//если кнопка нажата ... { st = цифровое чтение (LED_PIN); } еще// { st = цифровое чтение (LED_PIN2); } если (ст != пред) { СВ++; предыдущий = ст; } задержка (10); } if (sw != 0 && sw != 2 && sw != 3 && sw != 4 && sw != 5 && sw != 6 && sw != 7 && sw != 8) { sprintf(buf, "стой!!!"); Serial.println (буф); lcd.print (буф); стп = истина; } led_sw = SW; } недействительная итерация () { writePinDigit(v1, правда); writePinDigit(v2, правда); writePinDigit(v3, правда); writePinDigit(v4, ложь); светодиодСчетчик(); sprintf(buf, "code:%d,led:%d", v, led_sw); Serial.println (буф); lcd.print (буф); если (!stp) { в++; синтаксический анализ(); } } недействительный цикл () { if (Serial.available() > 0) {//если есть доступные данные String rec = Serial.readString();//читает содержимое порта v = rec.toInt(); синтаксический анализ(); стп = ложь; sprintf(buf, "стартовый код %d", v); Serial.println (буф); lcd.print (буф); } если (v > 0 && v < 10000 && !stp) { итерация(); } }
Подскажите пожалуйста как сделать так что бы после третьего раза ввода pin arduino делала остановку на 5 минут (тоесть
const
int
RELAY_PIN = 12;
// Пин управления реле: Вводит цифры например 1111 пауза 1112 пауза 1113 пауза и после нужен перерыв 5 минут
Ты к следователю обратись, он подскажет
Он мне сюда советовал обратится
Ой. А на каком языке это написано? На православном вроде немного другие операторы были?
После третьего раза чего?
Он мне сюда советовал обратится
я тоже удивился, неужели Инфо-Бухгалтер теперь и для микроконтроллеров доступен )))
Подскажите пожалуйста как сделать так что бы после третьего раза ввода pin arduino делала остановку на 5 минут
завести в процедуре iteration() счетчик и когда он больше 3х - делать перерыв
А можно поподробней. Просто не совсем понимаю как это стелать. Спасибо