Упражнение на ардуино, которое я не знаю как делать
Сообщения, полученные Arduino, имеют вид: $ Ba, Pb, Rc #
Где $ представляет начало сообщения, # – m, а B, P и R – символы, обозначающие кнопку B, точку P и повтор R.
- `a 'обозначает кнопку для чтения, которая может быть 1, 2 или 3.
- `b 'обозначает время (в секундах), в течение которого кнопка должна быть нажата.
- `c 'обозначает ожидаемое количество нажатий кнопки в течение указанного периода.
Например, с сообщением: $ B2, P4, R2 # вы хотите знать, была ли кнопка 2 нажата дважды в течение четырех секунд. Если условие подтверждено, то Arduino должен отправить сообщение $ MSG, TRUE #, где MSG представляет собой сообщение, полученное без начальных и m символов сообщения. В противном случае необходимо отправить сообщение $ MSG, FALSE #.
Входящие сообщения должны соответствовать представленному формату. Если нет, то условие не проверяется и в качестве ответа должно быть отправлено сообщение $NOK,MSG,KON#.
Я понятия не имею, как это сделать, так как я новичок в arduino
@T.Batista, 👍0
Обсуждение1 ответ
Для начала забудьте на мгновение об Arduino и займитесь определением истинности или ложности из сообщения $....#. Подумайте о том, что вам нужно будет сделать, шаг за шагом, чтобы добиться этого. (например: прочитайте кнопки; запишите время и состояния кнопок. Есть ли сообщение от последовательного порта, начинающееся с «$»? Затем прочитайте остальную часть сообщения и т. д.) Затем для каждого из этих шагов выполните то же самое снова: запишите более мелкие шаги, чтобы выполнить то, что требует этот шаг. Делайте это до тех пор, пока не сможете разбить его дальше.
Каждый из этих небольших шагов должен выглядеть как то, что вы можете сделать в коде C++ (иногда его называют кодом "Arduino", но на самом деле это C++). Начните заменять каждый шаг на английском (или вашем языке) эквивалентом C++. Делайте это до тех пор, пока все шаги человеческого языка не будут написаны на C++.
Неизбежно будут ошибки. Исправьте одну или несколько за раз. Если вы застряли, спросите здесь что-то вроде «Вот мой (хорошо отформатированный) код». Я пробовал [это]. Я ожидал увидеть [это]. Но вместо этого произошло [что-то другое]. Как я могу это исправить?"; или: "Я получаю это сообщение об ошибке [с полным текстом, включая любые номера строк, пожалуйста] от компилятора. Что это значит и как я мог узнать это самостоятельно?"
Маленькие шаги....
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
Разве ваш учитель не дал некоторую информацию о том, как начать? Как использовать Serial, как анализировать строки? Эти вещи также можно найти в Интернете через Google, @chrisl
В нашей сети есть примеры того, как анализировать список данных, разделенных запятыми: https://arduino.stackexchange.com/search?q=parse+comma На веб-сайте cplusplus.com есть хорошее описание функций C++: http:/ /www.cplusplus.com/reference/cstring/strtok/, @VE7JRO
сначала сделайте проект на бумаге... представьте, что вы Arduino... подумайте, что бы вы сделали, когда придет сообщение, @jsotola