Доделать скетч для ардуино.
250 UAHЕсть 3 кнопки аналоговой клавиатуры: load, unload и motorstop.
Для отработки кнопок я использовал библиотеку Алекса Гайвера, там как там реализовано много удобных вариантов нажатия - клик по кнопке (.isClick), однократное нажатие isSingle, двойное нажатие isDouble, длинное нажатие (.isHold), выдача серии с заданным интервалом пока кнопка нажата (.isStep), пример шагового варианта if (load.isStep()) {Serial.println("LoadStep");} - при таком коде будет выдаваться серия сообщения с текстом LoadStep с интервалом заданным в настройках библиотеки пока держишь кнопку.
Что нужно дописать в скетч:
при срабатывании варианта нажатия isClick кнопки load (load.isClick) должна запуститься выдача сообщений в сериалпорт "StartLoad" с интервалом 100ms на срок 1мин, но эту серию можно прекратить досрочно кликом по кнопке motorstop (motorstop.isClick) и выдать при этом сообщение "MotorStop", также запущенную серию можно прекратить досрочно длинным нажатием той же кнопки load в шаговом варианте (load.isStep) чтобы уже силами библиотеки привязанное к этому варианту сообщение "LoadStep" выдавалось с интервалом заданным в настройках библиотеки.
Тоже самое надо сделать и по отношению к кнопке unload - если срабатывает unload.isClick запускается серия сообщений "StartUnload" с интервалом 100ms на срок 1мин, но эту серию можно прекратить досрочно кликом по кнопке motorstop (motorstop.isClick) и выдать при этом сообщение "MotorStop", также запущенную серию можно прекратить досрочно длинным нажатием той же кнопки unload в шаговом варианте (unload.isStep) чтобы начало выдаваться сообщение "UnloadStep" с интервалом заданным в настройках библиотеки пока кнопка удерживается.
Ну вот и вся задача. По сути вторая часть задачи - это копирование первой части. только изменение названия кнопок и сообщений в сериал, просто я указал вторую часть из-за того, что я боюсь, что из-за каких-то возможных нюансов у меня не получится подвязать уже готовый рабочий кусок кода ко второй кнопке unload, так как я не знаю C++, а пользуюсь только функционалом библиотек.
А вот сам скетч
#include "GyverButton.h" /// https://github.com/AlexGyver/GyverLibs/releases/download/GyverButton/GyverButton.zip
GButton load;
GButton unload;
GButton motorstop;
void setup() {
Serial.begin(9600);
}
void loop() {
int analog = analogRead(7);
motorstop.tick(analog < 940 && analog > 865); //2
load.tick(analog < 1024 && analog > 940); //1
unload.tick(analog < 865 && analog > 800); //3
if (motorstop.isSingle()) Serial.println("mStopSingle");
if (motorstop.isHold()) Serial.println("mStopHold");
if (motorstop.isDouble()) Serial.println("mStopDouble");
motorstop.resetStates();
if (unload.isStep()) {Serial.println("UnLoadStep");}
if (unload.isClick()) {Serial.println("StartLoad");}
if (load.isStep()) {Serial.println("LoadStep");}
if (load.isClick()) {Serial.println("StartUnload");}
}-
312 11 1 Готов помочь вам, есть опыт С++, могу пояснить что-то, если понадобиться. За обсуждение деталей пишите в личку.
-
108 Готов выполнить Ваш проект. Также есть возможность (если нужно) сделать без использования библиотеки, напрямую всё в коде прописать, так будет понятнее что откуда и как. В коде могу оставить комментарии, чтобы можно било потом легко разобраться что и как работает и в случае если нужно что-то поменять.
Актуальные фриланс-проекты в категории C и C++
Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная… C и C++, Десктопные приложения ∙ 1 день 4 часа назад ∙ 5 ставок |
Разработка карты семян Minecraft Java / просмотрщика семян для сайтаРазработка карты семян Minecraft Java / Seed Viewer для сайтаОписание проекта Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть… C и C++, HTML и CSS верстка ∙ 1 день 10 часов назад ∙ 13 ставок |
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x)
1000 UAH
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x) на идентичной аппаратной платформе (ESP32 + SX1268, 2W) по критериям дальности, пропускной способности, стабильности линка и энергопотребления. Провести тесты с замерами с учетом… C и C++, C# ∙ 5 дней 18 часов назад ∙ 2 ставки |
Консультация и аудит текущего проекта на Odoo 19 Community EditionИщем Odoo разработчика — соло-разработчика с опытом разработки на Odoo 19 Community Edition, в том числе с использованием Claude Code. Нам нужен специалист, который успешно реализовал проекты в Odoo и имеет практический опыт разработки с использованием Claude Code. Важно:… C и C++, Javascript и Typescript ∙ 8 дней 19 часов назад ∙ 8 ставок |
Разработка ПО для Arduino (RF-модули 3–7.5 ГГц, автоматическое сканирование частот)Необходимо разработать систему на Arduino для автоматического поиска активного аналогового видеосигнала и автоматической настройки передатчика на обнаруженную частоту.Планируется использование трех отдельных приемно-передающих модулей: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C и C++, Встраиваемые системы и микроконтроллеры ∙ 9 дней 19 часов назад ∙ 4 ставки |