ARDUINO Наливатор. Обсуждение проекта

Praporatorr

★★★✩✩✩✩
8 Дек 2019
86
108
В идеале вас бы попросить напречься и исправить прошивку под схему алекса , тогда бы точно было как должно быть
Попробовал прошивку на ардуино нано работает как часы. Только при уходе в сон на дисплее кракозябры какие-то :rolleyes:
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
Попробовал прошивку на ардуино нано работает как часы. Только при уходе в сон на дисплее кракозябры какие-то :rolleyes:
Здорово) а что за кракозябры? И когда именно они появляются? Там ведь сначала по таймеру через 10 секунд дисплей должен убавить яркость, а в следующей фазе через 5 минут уже полностью погаснуть.
#define KEEP_POWER у Вас 1 или 0?
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@VICLER, #define KEEP_POWER 0
Может библиотеку старую подкинуть надо.
странно, никогда не наблюдал такого у себя. К сожалению сейчаснет возможности протестировать, так как наливатор уже подарен. Какая у Вас версия библиотеки GyverTM1637? У меня 1.4
А когда именно появляются эти кракозябры? после 10 секунд или 5 минут?
 

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
@VICLER, переписал гуверовские пины, все пока работает, на "крокозябры" проверю чуть позже
 

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
Крокозябров нет, но не знаю как написать угол парковки серво 15 градусов, и строчку нужную нашел, но к сожалению не владею синтаксисом написания на этом языке, подскажите куда это число 15 нужно вставить, в конце строчки ?
 

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
@Praporatorr, вы не покажете где и как правильно парковку написать , может хоть на фото вашего скетча ?
 

RomaT

★✩✩✩✩✩✩
5 Ноя 2019
104
38
@Plohish, c_funcn.ino
C++:
    if (noGlass) {                                        // если не нашли ни одной рюмки
      Serial.println("noGlass");
      servoON();
      servo.setTargetDeg(0);                              // цель серво - 0
C++:
    if (noGlass) {                                        // если не нашли ни одной рюмки
      Serial.println("noGlass");
      servoON();
      servo.setTargetDeg(15);                              // цель серво - 15
a_setup
C++:
  // настройка серво
  servoON();
  servo.attach(SERVO_PIN);
  servo.write(0);
  delay(800);
  servo.setTargetDeg(0);
  servo.setSpeed(60);//60);
C++:
  // настройка серво
  servoON();
  servo.attach(SERVO_PIN);
  servo.write(15); // зачем два раза прописывать, я хз, это то же что и
  delay(800);
  servo.setTargetDeg(15); //это, только первый метод из Servo
  servo.setSpeed(60);//60);
Библиотека ServoSmooth глючная, два бага я нашел и поправил, третий не могу пока воткнуть в чем дело. Ещё чуть-чуть и буду тупо использовать стандартную Servo.
1. Из-за того, что метод .tick() написан с ошибкой, не работал авторежим.
2. В авто режиме, если рюмка прописана как 0, то при наливе серва в состоянии постоянного движения (по коду), и включение помпы не происходит.
 
  • Лойс +1
Реакции: Yashcher и Plohish

Praporatorr

★★★✩✩✩✩
8 Дек 2019
86
108
const byte shotPos[] = {25, 63, 106, 143, 179};

#define HOME_POS 0 // номер рюмки для домашней позиции
#define PUMPING_SHOT 0 // номер рюмки для прокачки
Парковка на 25 градусах над первой рюмкой.
 

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
@Praporatorr, нет первя рюмка ((( на 45, градусы я нашел где поменять, носик бегает как надо, но где поменять стартовую позицию пока так и не осилил , у меня стартует как у автора где то по средине, и его градумы я тоже пока не нашел , мне нужно всего лишь , чтоб носик парковался в 10-15 градусах ((
 

Вложения

RomaT

★✩✩✩✩✩✩
5 Ноя 2019
104
38
@Plohish,
const byte shotPos[] = {25, 63, 106, 143, 179};

#define HOME_POS 0 // номер рюмки для домашней позиции
#define PUMPING_SHOT 0 // номер рюмки для прокачки
Парковка на 25 градусах над первой рюмкой.
тогда так ^, если у вас зон парковки находится над рюмкой для заливки
у меня код другой
 
  • Лойс +1
Реакции: Plohish

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@Praporatorr, нет первя рюмка ((( на 45, градусы я нашел где поменять, носик бегает как надо, но где поменять стартовую позицию пока так и не осилил , у меня стартует как у автора где то по средине, и его градумы я тоже пока не нашел , мне нужно всего лишь , чтоб носик парковался в 10-15 градусах ((
точно, я не думал о варианте, в котором парковка находится не над рюмками. Тогда попробуйте так:
const byte shotPos[] = {177, 130, 83, 37, 4, 15}; // последний угол для домашней позиции
#define HOME_POS 5
 
  • Лойс +1
Реакции: Plohish

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
@RomaT, так прокатит если мы условно сделали что у нас 5 рюмок, а по факту 4 , и первая или нулевая это зона парковки )) но тогда надо допаивать в начало еще один светодиод, иначе они будут гореть со смещением на один))
 

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
@Plohish, а не )))
Сейчас попробую перенести парковочную позицию 5 рюмкой , у меня система на 4 рюмки , там светодиод будет в конце и он не нужен
 

RomaT

★✩✩✩✩✩✩
5 Ноя 2019
104
38
@Plohish, в начале добавляете
#define HOME_POS 15 //в градусах парковка
далее по коду
C++:
    if (noGlass) {                                        // если не нашли ни одной рюмки
      Serial.println("noGlass");
      servoON();
      servo.setTargetDeg(0);                              // цель серво - 0
C++:
    if (noGlass) {                                        // если не нашли ни одной рюмки
      Serial.println("noGlass");
      servoON();
      servo.setTargetDeg(HOME_POS);                              // цель серво - 15
a_setup
C++:
  // настройка серво
  servoON();
  servo.attach(SERVO_PIN);
  servo.write(0);
  delay(800);
  servo.setTargetDeg(0);
 ;
C++:
  // настройка серво
  servoON();
  servo.attach(SERVO_PIN);
  servo.write(15); // зачем два раза прописывать, я хз, это то же что и
  delay(800);
  servo.setTargetDeg(HOME_POS); //это, только первый метод из Servo
HOME_POS по всему коду сносите если где-то попадается.
 

Plohish

★✩✩✩✩✩✩
18 Ноя 2019
35
12
В принципе для системы из 4 стаканов , так и победил ))
В настройке указал что у меня 5 рюмок
Домашню позицию указал как 5
И поставил для 5 пятой позиции парковки нужные мне градусы
Теперь все работает как нужно , всем не равнодушным ОГРОМНЕЙШИЙ РЕСПЕКТ И СПАСИБО , я у себя так и оставлю , максимум еще бы поменял нижний предел 5мл , так веселее мне, но если не покажут где поменять , то у себя так все окончательно и оставлю, мне эта прошивка понравилась больше всего из того что я здесь попробывал )))
 

Praporatorr

★★★✩✩✩✩
8 Дек 2019
86
108
@Plohish,
// кнопки-крутилки

void encTick() {
enc.tick();
if (enc.isTurn()) {
timeoutReset();
if (enc.isLeft()) {
thisVolume += 5;
thisVolume = constrain(thisVolume, 10, 200);
}
if (enc.isRight()) {
thisVolume -= 5;
thisVolume = constrain(thisVolume, 10, 200);
 
  • Лойс +1
Реакции: Plohish