Как подождать определенное время, прежде чем что-то делать во время выполнения другого кода?

У меня есть проект, в котором я использую библиотеку HX711 с тензодатчиком для взвешивания фруктов, находящихся на конвейерной ленте. Каждый фрукт имеет вес, который необходимо классифицировать. Более крупные плоды (200 г) относятся к классу А, поэтому они должны «упасть» с конвейерной ленты на более позднем этапе. Более мелкие плоды опадают раньше. Это должно быть сделано на временной основе.

Что я хочу сделать, так это получить размер плода, вычислить класс (используя вес), а затем отправить прерывание механизму сброса через x раз. Но пока он должен ждать, чтобы упасть, следующий плод уже созрел и может быть меньше, чем первый.

Я уже могу взвесить и рассчитать класс фруктов. Я также сделал это на C, используя многопоточность, но adruino uno этого не поддерживает.

Я также должен упомянуть, что на одной конвейерной ленте в любой момент времени находится от 50 до 200 фруктов.

, 👍-1

Обсуждение

Неблокирующий код с помощью millis() является ответом. Посмотрите на пример BlinkWithoutDelay, который поставляется с Arduino IDE., @chrisl


1 ответ


0

Вы можете использовать метку времени, чтобы избежать кода блокировки. См. пример BlinkWithoutDelay

.
,

хотя это правда, это был ответ много раз. вы должны искать дубликат, @Juraj