Доделать скетч для ардуино.
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++, Десктопні додатки ∙ 4 дні 18 годин тому ∙ 5 ставок |
Розробка Minecraft Java Seed Map / Seed Viewer для сайтуРозробка Minecraft Java Seed Map / Seed Viewer для сайтуОпис проєкту Потрібно розробити browser-based інструментMinecraft Java Seed Map / Seed Viewer, який буде працювати на нашому сайті та дозволятиме користувачу ввести seed Minecraft Java Edition і переглянути інтерактивну… C та C++, HTML та CSS верстання ∙ 5 днів 1 година тому ∙ 14 ставок |
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x)
1000 UAH
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x) на ідентичній апаратній платформі (ESP32 + SX1268, 2W) за критеріями дальності, пропускної спроможності, стабільності лінка та енергоспоживання. Провести тести з вимірюваннями з… C та C++, C# ∙ 9 днів 8 годин тому ∙ 2 ставки |
Консультація та аудит поточного проєкту на Odoo 19 Community EditionШукаємо Odoo Developer — соло-розробника з досвідом розробки на Odoo 19 Community Edition, у тому числі за допомогою Claude Code. Нам потрібен спеціаліст, який має успішно реалізовані проєкти в Odoo та практичний досвід розробки з використанням Claude Code. Важливо: розглядаємо… C та C++, Javascript та Typescript ∙ 12 днів 10 годин тому ∙ 8 ставок |
Розробка ПЗ для Arduino (RF-модулі 3–7.5 ГГц, автоматичне сканування частот)Потрібно розробити систему на Arduino для автоматичного пошуку активного аналогового відеосигналу та автоматичного налаштування передавача на виявлену частоту.Планується використання трьох окремих приймально-передавальних модулів: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C та C++, Вбудовані системи та мікроконтролери ∙ 13 днів 10 годин тому ∙ 5 ставок |