Доделать скетч для ардуино.
20 PLNЕсть 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 Готов выполнить Ваш проект. Также есть возможность (если нужно) сделать без использования библиотеки, напрямую всё в коде прописать, так будет понятнее что откуда и как. В коде могу оставить комментарии, чтобы можно било потом легко разобраться что и как работает и в случае если нужно что-то поменять.
Aktualne zlecenia dla freelancerów w kategorii C i C++
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 2 dni 15 godzin temu ∙ 5 ofert |
Opracowanie mapy nasion Minecraft Java / przeglądarki nasion dla strony internetowejOpracowanie mapy nasion Minecraft Java / Podgląd nasion dla strony internetowejOpis projektu Potrzebne jest opracowanie narzędzia opartego na przeglądarce Mapa nasion Minecraft Java / Podgląd nasion, które będzie działać na naszej stronie i pozwoli użytkownikowi wprowadzić… C i C++, Układ HTML i CSS ∙ 2 dni 22 godziny temu ∙ 14 ofert |
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x)
82 PLN
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x) na identycznej platformie sprzętowej (ESP32 + SX1268, 2W) według kryteriów zasięgu, przepustowości, stabilności łącza i zużycia energii. Przeprowadzić… C i C++, C# ∙ 7 dni 5 godzin temu ∙ 2 oferty |
Konsultacja i audyt bieżącego projektu na Odoo 19 Community EditionSzukamy programisty Odoo — samodzielnego dewelopera z doświadczeniem w pracy z Odoo 19 Community Edition, w tym z wykorzystaniem Claude Code. Potrzebujemy specjalisty, który ma zrealizowane projekty w Odoo oraz praktyczne doświadczenie w programowaniu z użyciem Claude Code.… C i C++, Javascript & Typescript ∙ 10 dni 6 godzin temu ∙ 8 ofert |
Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000… C i C++, Systemy wbudowane i mikrokontrolery ∙ 11 dni 7 godzin temu ∙ 5 ofert |