Ветка обсуждения проекта Наливатор.
Видео:
Делитесь своими вариантами изготовления, модификациями и улучшениями!
Видео:
Делитесь своими вариантами изготовления, модификациями и улучшениями!
Изменено:
я хоть буду внимательно смотреть, хоть не буду, все одно ничего в программировании не понимаю. Резюмируем: надо исправить ДВЕ строки кода:void flowRoutnie(int delayMove) {
внимательно смотрите когда переносите
не могли бы вы поправленный файл c_func.ino скинуть? что то у меня не так...@renby, проверил - всё нормально работает. То, что у вас льет на парковке тут не причем. Посмотрите несколько страниц назад форум, там этот случай рассматривался.
По поводу сервы - попробуйте обновить библиотеку servosmooth, там поправили кое какие баги (3.02)
@2908969,
@renby, у меня много чего другого в файле, ещё больше запутаетесь, сверху кусок скопируйте в свой файл
ЗЫ посмотрел и добавил ещё LEDtick();, потому как после установки рюмки и задержки на движение светодиод под рюмкой не загорается пока не пройдет задержка, так как LEDtick(); в loop вызывается после flowTick(), код сверху поправил
shotStates это массив, поэтому нужно писать
shotStates[i]
во-первых это массив и не важно из чего он состоит. Если обращаться к нему без скоб, получите адресс первого елемента массива. Компилятор поэтому и ругается, потому что нет реализации оператора == для сравнения адреса и не адресса@VICLER, shotStates это массив enum`ов
enum {NO_GLASS, EMPTY, IN_PROCESS, READY} shotStates[NUM_SHOTS];
судя по ошибке не воспринимает EMPTY, но код посмотрел, не в этом дело
void flowRoutnie() {
if (systemState == SEARCH) { // если поиск рюмки
bool noGlass = true;
for (byte i = 0; i < NUM_SHOTS; i++) {
if (shotStates[i] == EMPTY && i != curPumping) { // поиск рюмки
noGlass = false; // флаг что нашли хоть одну рюмку
curPumping = i; // запоминаем выбор
systemState = MOVING; // режим - движение
shotStates[curPumping] = IN_PROCESS; // стакан в режиме заполнения
servoON(); // вкл питание серво
//Правка servo.attach() второй аргумент по умолчанию 0
servo.attach(SERVO_PIN, shotPos[curPumping]);
servo.setTargetDeg(shotPos[curPumping]); // задаём цель
DEBUG("find glass");
DEBUG(curPumping);
break;
}
}