Как соединить два скетча в один
- Войдите на сайт для отправки комментариев
Вс, 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);
}
Попробуйте заказать в коммерческом разделе. Здесь, возможно, кто-то и напишет, если поупражняться захочет, но вероятность невелика. А там за небольшую денежку всё сделают. С праздником!
Попробуйте заказать в коммерческом разделе. Здесь, возможно, кто-то и напишет, если поупражняться захочет, но вероятность невелика. А там за небольшую денежку всё сделают. С праздником!
Спасибо и вас с праздником
А в чем задача суммарного скетча? Считать количество нажатий кнопки из первого?