Как соединить два скетча в один
- Войдите на сайт для отправки комментариев
Вс, 23/02/2020 - 11:21
Здравствуйте. Я понимаю что я повторяюсь, но я не могу никак это сделать, сколько об это не читал об этом. Есть реле работает от ардуино нано, реле включается от кнопке, и работает пока кнопка нажата, а счетчик на втором ардуино нано с дисплеем ТМ1637 считает сколько раз включается реле. На двух ардуино работаен, а мне бы это все в одно ардуино влить, может кто помочь, у меня не получается. За ранее всем огромное спасибо!
скетч реле
#define k1 2 #define butt 5 // кнопка void setup() { pinMode (k1, OUTPUT); //назначаем пины на вывод pinMode (butt, INPUT_PULLUP); } void loop() { if (digitalRead(butt) == LOW) //когда нажата кнопка тогда и работает { digitalWrite (k1, HIGH); delay (150); digitalWrite (k1, LOW); delay (150); } }
скетч счетчика
#include "TM1637.h" void DispUpdate(void); boolean DebounceButton(int ScanPort, boolean last); #define INC 2 //Пин подключения датчика готовой продукции #define RES 3 //Пин подключения кнопки сброса счетчика #define CLK 4 //TM1637 CLK #define DIO 5 //TM1637 DIO int8_t CountDisp[] = {0x00,0x00,0x00,0x00}; static int Counter = 0; //Значение счетчика будет сохраняться здесь bool INCCurr = false; bool INCPrev = false; /* * Создаем объект tm1637 класса TM1637 * в качестве параметров передаём ему * номера пинов к которым подключен модуль * с дисплеем */ TM1637 tm1637(CLK, DIO); void setup() { pinMode(INC, INPUT); //Определяем пины подключения кнопки сброса pinMode(RES, INPUT); //и датчика готовой продукции как входные //Инициализация дисплея на базе драйвера TM1637 tm1637.init(); /* * Установка яркости свечения сегментов * возможные значения: BRIGHT_TYPICAL либо 2 * BRIGHT_DARKEST либо 0 * BRIGHTEST либо 7 * Также можно вводить значения от 0 до 4 * при вводе начения свыше 4 визуального различия * в яркости свечения не наблюдается поэтому решено * остановиться на 3 */ tm1637.set(2); } void loop() { //Обнуление счетчика if(digitalRead(RES)) { Counter = 0; } //Проверка кнопки инкремента - нажатие и обработка "Антидребезг" INCCurr = DebounceButton(INC, INCPrev); if(INCPrev == false && INCCurr == true) { if(Counter == 9999) { Counter = 0; } else { Counter ++; } } INCPrev = INCCurr; DispUpdate(); } //Функция подавления дребезга контактов концевого датчика boolean DebounceButton(int ScanPort, boolean last) { boolean current = digitalRead(ScanPort); if(current != last) { delay(10); current = digitalRead(ScanPort); } return current; } //Функция обновления дисплея //Вывод значения счетчика на дисплей void DispUpdate(void) { int intValue = Counter; int divValue; for(int i = 3; i >= 0; i --) { divValue = intValue % 10; intValue = intValue / 10; CountDisp[i] = divValue; } tm1637.display(CountDisp); }
Попробуйте заказать в коммерческом разделе. Здесь, возможно, кто-то и напишет, если поупражняться захочет, но вероятность невелика. А там за небольшую денежку всё сделают. С праздником!
Попробуйте заказать в коммерческом разделе. Здесь, возможно, кто-то и напишет, если поупражняться захочет, но вероятность невелика. А там за небольшую денежку всё сделают. С праздником!
Спасибо и вас с праздником
А в чем задача суммарного скетча? Считать количество нажатий кнопки из первого?