Как подождать определенное время, прежде чем что-то делать во время выполнения другого кода?
У меня есть проект, в котором я использую библиотеку HX711 с тензодатчиком для взвешивания фруктов, находящихся на конвейерной ленте. Каждый фрукт имеет вес, который необходимо классифицировать. Более крупные плоды (200 г) относятся к классу А, поэтому они должны «упасть» с конвейерной ленты на более позднем этапе. Более мелкие плоды опадают раньше. Это должно быть сделано на временной основе.
Что я хочу сделать, так это получить размер плода, вычислить класс (используя вес), а затем отправить прерывание механизму сброса через x раз. Но пока он должен ждать, чтобы упасть, следующий плод уже созрел и может быть меньше, чем первый.
Я уже могу взвесить и рассчитать класс фруктов. Я также сделал это на C, используя многопоточность, но adruino uno этого не поддерживает.
Я также должен упомянуть, что на одной конвейерной ленте в любой момент времени находится от 50 до 200 фруктов.
@Liam Louw, 👍-1
Обсуждение1 ответ
Вы можете использовать метку времени, чтобы избежать кода блокировки. См. пример BlinkWithoutDelay
.хотя это правда, это был ответ много раз. вы должны искать дубликат, @Juraj
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Неблокирующий код с помощью
millis()
является ответом. Посмотрите на пример BlinkWithoutDelay, который поставляется с Arduino IDE., @chrisl