Наливатор - автоматизированная машина, которая будет разливать алкоголь по стопкам.

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

filon543 пишет:

Подскажите пожалуйста новичку, в чем может быть дело? При попытке компиляции скетча ArduinoIDE1.8.9 выдает: ошибка для данной платы???? Я пробовал и для UNO,NANO,PROMINI,......пофигу???

Спасибо!

 

Скетч использует 18526 байт (60%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 658 байт (32%) динамической памяти, оставляя 1390 байт для локальных переменных. Максимум: 2048 байт. LCD

Скетч использует 16854 байт (54%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1429 байт (69%) динамической памяти, оставляя 619 байт для локальных переменных. Максимум: 2048 байт. - OLED

 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

скопируй ощибки , и сюда , вставляй через CODE не забудь свернуть.

filon543
Offline
Зарегистрирован: 17.06.2019


Вот ошибки.







W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `oled_nalito(int, int)':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:249: undefined reference to `RusFont'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:249: undefined reference to `RusFont'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `oled_naliv(int)':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:239: undefined reference to `RusFont'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:239: undefined reference to `RusFont'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `oled_manual(int, int)':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:224: undefined reference to `RusFont'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o:S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:224: more undefined references to `RusFont' follow

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `oled_manual(int, int)':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:230: undefined reference to `MegaNumbers'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:230: undefined reference to `MegaNumbers'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `oled_auto(int)':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:210: undefined reference to `RusFont'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:210: undefined reference to `RusFont'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:215: undefined reference to `MegaNumbers'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:215: undefined reference to `MegaNumbers'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `oled_menu(int)':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:70: undefined reference to `RusFont'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:70: undefined reference to `RusFont'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `Tost()':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:100: undefined reference to `RusFont'

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:100: undefined reference to `RusFont'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o: In function `setup':

S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:330: undefined reference to `RusFont'

W:\Temp\ccuqLSH3.ltrans0.ltrans.o:S:\Наливатор_\new 1\sketch_sep27b/sketch_sep27b.ino:330: more undefined references to `RusFont' follow

collect2.exe: error: ld returned 1 exit status

Несколько библиотек найдено для "Servo.h"
 Используется: E:\Arduino\libraries\Servo
Не используется: C:\Program Files (x86)\Arduino\libraries\Servo
Несколько библиотек найдено для "SoftwareSerial.h"
 Используется: C:\Users\Администратор\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.1\libraries\SoftwareSerial
Не используется: C:\Program Files (x86)\Arduino\libraries\SoftwareSerial
exit status 1
Ошибка компиляции для платы Arduino Nano.

 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

S:\Наливатор_

Не любит названий на кирилице  Ардуино ИДЕ, перенеси скетч в другое место.

 библиотеку OLED_I2C где брал?

filon543
Offline
Зарегистрирован: 17.06.2019

А все равно !?











W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `oled_nalito(int, int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:250: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:250: undefined reference to `RusFont'

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `oled_naliv(int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:240: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:240: undefined reference to `RusFont'

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `oled_manual(int, int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:225: undefined reference to `RusFont'

W:\Temp\cci9JBoB.ltrans0.ltrans.o:S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:225: more undefined references to `RusFont' follow

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `oled_manual(int, int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:231: undefined reference to `MegaNumbers'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:231: undefined reference to `MegaNumbers'

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `oled_auto(int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:211: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:211: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:216: undefined reference to `MegaNumbers'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:216: undefined reference to `MegaNumbers'

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `oled_menu(int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:70: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:70: undefined reference to `RusFont'

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `Tost()':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:100: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:100: undefined reference to `RusFont'

W:\Temp\cci9JBoB.ltrans0.ltrans.o: In function `setup':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:331: undefined reference to `RusFont'

W:\Temp\cci9JBoB.ltrans0.ltrans.o:S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:331: more undefined references to `RusFont' follow

collect2.exe: error: ld returned 1 exit status

Несколько библиотек найдено для "Servo.h"
 Используется: E:\Arduino\libraries\Servo
Не используется: C:\Program Files (x86)\Arduino\libraries\Servo
Несколько библиотек найдено для "SoftwareSerial.h"
 Используется: C:\Users\Администратор\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.1\libraries\SoftwareSerial
Не используется: C:\Program Files (x86)\Arduino\libraries\SoftwareSerial
exit status 1
Ошибка компиляции для платы Arduino Nano.

 

filon543
Offline
Зарегистрирован: 17.06.2019

И для ProMini !?











Изменены опции сборки, пересобираем все
W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `oled_nalito(int, int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:250: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:250: undefined reference to `RusFont'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `oled_naliv(int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:240: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:240: undefined reference to `RusFont'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `oled_manual(int, int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:225: undefined reference to `RusFont'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o:S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:225: more undefined references to `RusFont' follow

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `oled_manual(int, int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:231: undefined reference to `MegaNumbers'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:231: undefined reference to `MegaNumbers'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `oled_auto(int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:211: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:211: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:216: undefined reference to `MegaNumbers'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:216: undefined reference to `MegaNumbers'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `oled_menu(int)':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:70: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:70: undefined reference to `RusFont'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `Tost()':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:100: undefined reference to `RusFont'

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:100: undefined reference to `RusFont'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o: In function `setup':

S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:331: undefined reference to `RusFont'

W:\Temp\ccEfLpSh.ltrans0.ltrans.o:S:\nalivator_v4.2_oled_dfp/nalivator_v4.2_oled_dfp.ino:331: more undefined references to `RusFont' follow

collect2.exe: error: ld returned 1 exit status

Несколько библиотек найдено для "Servo.h"
 Используется: E:\Arduino\libraries\Servo
Не используется: C:\Program Files (x86)\Arduino\libraries\Servo
Несколько библиотек найдено для "SoftwareSerial.h"
 Используется: C:\Users\Администратор\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.1\libraries\SoftwareSerial
Не используется: C:\Program Files (x86)\Arduino\libraries\SoftwareSerial
exit status 1
Ошибка компиляции для платы Arduino Pro or Pro Mini.

 

filon543
Offline
Зарегистрирован: 17.06.2019

C github.com

filon543
Offline
Зарегистрирован: 17.06.2019

Спасибо за подсказку, заменил все библиотеки на ваши и все пошло!

RW3
RW3 аватар
Offline
Зарегистрирован: 07.08.2019

Forthomo пишет:

Вариант с 1602

 

 

не подскажешь размеры насоса(длина и диаметр)?

yct9
Offline
Зарегистрирован: 27.11.2015

RW3 пишет:

Forthomo пишет:

Вариант с 1602

 

 

не подскажешь размеры насоса(длина и диаметр)?

Отверстия под трубки:

Внутренний: мм 6 мм/0,24”

Наружный: 9 мм/0,35”

А вот самого размеры

RW3
RW3 аватар
Offline
Зарегистрирован: 07.08.2019

Диаметр самого насоса.ОК спасибо. вот вроде всё работает,тосты чередуются по кругу

#include <LCD_1602_RUS.h>
#include <Servo.h>
#include "Adafruit_NeoPixel.h"
#include <SoftwareSerial.h>//добавляем библиотеки
#include <DFPlayer_Mini_Mp3.h>//добавляем библиотеку МП3 плейера

LCD_1602_RUS lcd(0x27, 16, 2); //Подключение экрана А4-SDA-зеленый, А5-SCL-желтый

unsigned long currentTime;
unsigned long loopTime;
unsigned long ledTime;

// Переменные для энкодера -----------
const int pin_A = 2;       // Подключение вывода A (CLK) энкодера
const int pin_B = 3;       // Подключение вывода B (DT) энкодера
const int pin_SW = 4;       // Подключение вывода кнопки (SW) энкодера
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev = 0;
unsigned char encoder_sw_prew = 1;
//Массив , обозначаем подключенные оптопары по выводам . Оптопары подключены, A0,A1,A2,A3,A6
const byte  Optics[] = {0, 1, 2, 3, 6};
// Значения порога срабатывания датчика для каждой рюмки
const unsigned int Optics_porog[] = {100, 100, 100, 100, 100};
//Серво
const int PIN_SERVO = 9;
Servo servo;
//Позиция каждой рюмки
const byte Rumka_pos[] = {3, 50, 98, 145, 179}; //12 - 48 - 90 - 135 - 174
const byte servo_speed = 10; // Скорость поворота серво,  10 - норм, 20 медленно, 30 очень медленно
byte  Menu = 0;
byte MenuFlag = 0; // Здесь храниться уровень меню. 0 находимся в  Главном меню. 1 Вошли в меню Авто, 2 вошли в  Ручное управление
byte  Drink = 20; // По умолчанию в рюмку наливаем  20 мл.
//----- Минимальные и максимальные значения наполняемой жидкости и задержки для наполнения.
const byte  min_Drink = 2; // Минимум в рюмку - 2 мл.
const byte  max_Drink = 50; // Максимум в рюмку - 50 мл.
// Калибровка работы насосика. Значения для налива min_Drink и max_Drink соотвественно
const unsigned int min_Drink_delay = 222;
const unsigned int max_Drink_delay = 5500;
//--------
byte  DrinkCount = 1; //По умолчанию, для ручного режима - 1 рюмка
const byte  max_DrinkCount = 5; //Максимальное кол-во рюмок - 5
// Насосик
const byte PIN_PUMP = 12;
// Светодиоды
const int PIN_LED = 5;// Сюда подключаются светодиоды
const int LED_COUNT = max_DrinkCount;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, PIN_LED, NEO_GRB + NEO_KHZ800);
byte num = 0;// 0...22,

           //-------

void pump_enable() {
  digitalWrite(PIN_PUMP, 1); //вкл реле
}

void pump_disable() {
  digitalWrite(PIN_PUMP, 0); //выкл реле
}

void pump_timer(byte Drink) {
  digitalWrite(PIN_PUMP, 1); //вкл реле
  delay(map(Drink, min_Drink,  max_Drink, min_Drink_delay, max_Drink_delay));
  digitalWrite(PIN_PUMP, 0); //выкл реле
}

void oled_menu(byte Menu) {
  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print(F("РАЗЛИВАТОР"));
  lcd.setCursor(0, 1);
  lcd.print(F(">"));
  lcd.setCursor(15, 1);
  lcd.print(F("<"));
  switch (Menu) {
    case 0:
      lcd.setCursor(6, 1);
      lcd.print(F("АВТО"));
      break;
    case 1:
      lcd.setCursor(2, 1);
      lcd.print(F("РУЧНОЙ РЕЖИМ"));
      break;
    case 2:
      lcd.setCursor(4, 1);
      lcd.print(F("ПРОМЫВКА"));
      break;
  }
}

//  выводит строчку по чуть чуть, в самый раз и тд. Передается номер строки, на которой выводить сообщение
void DrinkInfo(byte pos) {
  Serial.println(F("INFO_DRINK"));

  lcd.setCursor(0, 1);
  if (Drink < 15) {
    //    lcd.setCursor(0, 1);
    lcd.print(F("    НИ О ЧЕМ    "));
  } else if (Drink < 28) {
    //    lcd.setCursor(0, 1);
    lcd.print(F(" ПО ЧУТЬ - ЧУТЬ "));
  } else if (Drink < 38) {
    //    lcd.setCursor(0, 1);
    lcd.print(F("  В САМЫЙ  РАЗ  "));
  } else if (Drink < 48) {
    //    lcd.setCursor(0, 1);
    lcd.print(F("   ПО  ПОЛНОЙ  "));
  } else {
    //    lcd.setCursor(0, 1);
    lcd.print(F("    ДО КРАЕВ    "));
  }
}
// Меню Авто режим
void oled_auto(int Drink) {
  Serial.println(F("MENU_AUTO"));
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(F("HАЛИТЬ ПО"));
  lcd.setCursor(10, 0);
  lcd.print(Drink);
  Serial.println(Drink);
  lcd.setCursor(13, 0);
  lcd.print(F("мЛ?"));
  DrinkInfo(57);

}

// Меню Ручной режим
void oled_manual(int DrinkCount, int Drink) {
  Serial.println(F("MENU_RUCHN"));
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(F("HАЛИТЬ ПО"));
  lcd.setCursor(10, 0);
  lcd.print(Drink);
  lcd.setCursor(13, 0);
  lcd.print(F("мЛ?"));
  Serial.println(Drink);
  lcd.setCursor(0, 1);
  lcd.print(F("   В   РЮМ"));
  lcd.setCursor(5, 1);
  lcd.print(DrinkCount);
  Serial.println(DrinkCount);
  if (DrinkCount == 1) {
    lcd.setCursor(10, 1);
    lcd.print(F("КУ     "));
  } else if (DrinkCount <= 4 ) {
    lcd.setCursor(10, 1);
    lcd.print(F("КИ     "));
  } else {
    lcd.setCursor(10, 1);
    lcd.print(F("ОК     "));
  }

}
// Меню налива
void oled_naliv(int MenuFlag, int Drink, int DrinkCount) {
  Serial.println(F("NALIVAIU"));
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(F("НАЛИВАЮ ПО"));
  lcd.setCursor(11, 0);
  lcd.print(Drink);
  Serial.println(Drink);
  lcd.setCursor(14, 0);
  lcd.print(F("мЛ"));
  lcd.setCursor(0, 1);
  lcd.print(F("   В"));
  lcd.setCursor(5, 1);
  lcd.print(DrinkCount);
  Serial.println(DrinkCount);
  lcd.setCursor(7, 1);
  lcd.print(F("РЮМ"));

  if (DrinkCount == 1) {
    lcd.setCursor(10, 1);
    lcd.print(F("КУ     "));
  } else if (DrinkCount <= 4 ) {
    lcd.setCursor(10, 1);
    lcd.print(F("КИ     "));
  } else {
    lcd.setCursor(10, 1);
    lcd.print(F("ОК     "));
  }
}
// Меню налито
void oled_nalito(int MenuFlag, int Nalito, int Drink) {
  Serial.println(F("NALITO"));
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(F("HАЛИТО ПО"));
  lcd.setCursor(11, 0);
  lcd.print(Drink);
  Serial.println(Drink);
  lcd.setCursor(14, 0);
  lcd.print(F("мЛ"));
  lcd.setCursor(0, 1);
  lcd.print(F("   В"));
  lcd.setCursor(5, 1);
  lcd.print(Nalito);
  lcd.setCursor(7, 1);
  lcd.print(F("РЮМ"));
  Serial.println(Nalito);
  if (Nalito == 1) {
    lcd.setCursor(10, 1);
    lcd.print(F("КУ     "));
  } else if (Nalito <= 4 ) {
    lcd.setCursor(10, 1);
    lcd.print(F("КИ     "));
  } else {
    lcd.setCursor(10, 1);
    lcd.print(F("ОК     "));
  }

}
void Tost() { //Рандом - 1
 

      Serial.println(num);
      delay (100);
      lcd.clear();
      switch (num) {
         
       case 0: //ЗА ВСТРЕЧУ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(2, 1);
          lcd.print(F("ЗА ВСТРЕЧУ!"));
          mp3_play (2);  // Проигрываем "mp3/0002.mp3"
          delay(100);
          break;
        case 1: //ЗА КРАСОТУ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(2, 1);
          lcd.print(F("ЗА КРАСОТУ!"));
          mp3_play (3);  // Проигрываем "mp3/0003.mp3"
          delay(100);
          break;
        case 2: //"ЗА ДРУЖБУ!"
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));//
          lcd.setCursor(3, 1);
          lcd.print(F("ЗА ДРУЖБУ!"));
          mp3_play (4);  // Проигрываем "mp3/0004.mp3"
          delay(100);
          break;
        case 3: //"ЗА БРАТСТВО!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(2, 1);
          lcd.print(F("ЗА БРАТСТВО!"));
          mp3_play (5);  // Проигрываем "mp3/0005.mp3"
          delay(100);
          break;
        case 4: //ЗА СПРАВЕДЛИВОСТЬ!
          lcd.setCursor(5, 0);
          lcd.print(F("НУ, ЗА"));
          lcd.setCursor(1, 1);
          lcd.print(F("СПРАВЕДЛИВОСТЬ!"));
          mp3_play (6);  // Проигрываем "mp3/0006.mp3"11
          delay(100);
          break;
        case 5: //ЗА РЫБАЛКУ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(3, 1);
          lcd.print(F("ЗА РЫБАЛКУ!"));
          mp3_play (7);  // Проигрываем "mp3/0007.mp3"
          delay(100);
          break;
        case 6: //ЗА ИСКУССТВО!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(2, 1);
          lcd.print(F("ЗА ИСКУССТВО!"));
          mp3_play (8);  // Проигрываем "mp3/0008.mp3"
          delay(100);
          break;
        case 7: //ЗА РАЗУМ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(3, 1);
          lcd.print(F("ЗА РАЗУМ!"));
          mp3_play (9);  // Проигрываем "mp3/0009.mp3"
          delay(100);
          break;
        case 8: //ЗА ИСТИННЫХ ЖЕНЩИН!
          lcd.setCursor(5, 0);
          lcd.print(F("НУ, ЗА"));
          lcd.setCursor(0, 1);
          lcd.print(F("ИСТИННЫХ ЖЕНЩИН!"));
          mp3_play (10);  // Проигрываем "mp3/0010.mp3"
          delay(100);
          break;
        case 9: //ЗА ПОНИМАНИЕ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(2, 1);
          lcd.print(F("ЗА ПОНИМАНИЕ!"));
          mp3_play (11);  // Проигрываем "mp3/0011.mp3"
          delay(100);
          break;
        case 10:  //ЗА СОЛИДНОЕ МУЖСКОЕ МОЛЧАНИЕ
          lcd.setCursor(0, 0);
          lcd.print(F("НУ, ЗА  СОЛИДНОЕ"));//НУ,
          lcd.setCursor(0, 1);
          lcd.print(F("МУЖСКОЕ МОЛЧАНИЕ!"));
          mp3_play (12);  // Проигрываем "mp3/0012.mp3"
          delay(100);
          break;
        case 11://ЗА ЕДИНЕНИЕ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(2, 1);
          lcd.print(F("ЗА ЕДИНЕНИЕ!"));
          mp3_play (13);  // Проигрываем "mp3/0013.mp3"
          delay(100);
          break;
        case 12: //ЗА РОДИНУ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(3, 1);
          lcd.print(F("ЗА РОДИНУ!"));
          mp3_play (14);  // Проигрываем "mp3/0014.mp3"
          delay(100);
          break;
        case 13://ЗА ЖЕНЩИН!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(3, 1);
          lcd.print(F("ЗА ЖЕНЩИН!"));
          mp3_play (15);  // Проигрываем "mp3/0015.mp3"
          delay(100);
          break;
        case 14: //ЗА ПОБЕДУ!
          lcd.setCursor(7, 0);
          lcd.print(F("НУ,"));
          lcd.setCursor(3, 1);
          lcd.print(F("ЗА ПОБЕДУ!"));
          mp3_play (16);  // Проигрываем "mp3/0016.mp3"
          delay(100);
          break;
        case 15://ЧТОБ ГОЛОВА НЕ ТРЕЩАЛА!
          lcd.setCursor(0, 0);
          lcd.print(F("НУ, ЧТОБ ГОЛОВА"));
          lcd.setCursor(2, 1);
          lcd.print(F("НЕ ТРЕЩАЛА!"));
          mp3_play (17);  // Проигрываем "mp3/0017.mp3"
          delay(100);
          break;
       case 16://ЧТОБ МОРЩИЛО НАС МЕНЬШЕ!
          lcd.setCursor(1, 0);
          lcd.print(F("НУ,ЧТОБ МОРЩИЛО"));
          lcd.setCursor(3, 1);
          lcd.print(F("НАС МЕНЬШЕ!"));
          mp3_play (18);  // Проигрываем "mp3/0018.mp3"
          delay(100);
          break; 
        case 17://ЧТОБ В СТОРОНУ НЕ ВИЛЬНУЛО!
          lcd.setCursor(0, 0);
          lcd.print(F("НУ,ЧТОБ В СТОРО-"));
          lcd.setCursor(0, 1);
          lcd.print(F("НУ НЕ  ВИЛЬНУЛО!"));
          mp3_play (19);  // Проигрываем "mp3/0019.mp3"
          delay(100);
          break; 
        case 18: //НУ ВЫ БЛИН ДАЁТЕ!
          lcd.setCursor(3, 0);
          lcd.print(F("НУ ВЫ БЛИН"));
          lcd.setCursor(5, 1);
          lcd.print(F("ДАЁТЕ!"));
          mp3_play (20);  // Проигрываем "mp3/0020.mp3"
          delay(100);
          break;
       case 19://КТО ХОЧЕТ ВЫПИТЬ?
          lcd.setCursor(3, 0);
          lcd.print(F("КТО ХОЧЕТ"));
          lcd.setCursor(5, 1);
          lcd.print(F("ВЫПИТЬ?"));
          mp3_play (21);// Проигрываем "mp3/0021.mp3"
          delay(100);
          break;
        case 20: //ГРАЖДАНЕ ЩАС БУДЕТ ТОСТ!
          lcd.setCursor(2, 0);
          lcd.print(F("ГРАЖДАНЕ ЩАС"));
          lcd.setCursor(2, 1);
          lcd.print(F("БУДЕТ ТОСТ !"));
          mp3_play (22);// Проигрываем "mp3/0022.mp3"
          delay(100);
          break; 
        case 21: //НАДО ВЫПИТЬ!
          lcd.setCursor(2, 0);
          lcd.print(F("НАДО ВЫПИТЬ!"));
          mp3_play (23);  // Проигрываем "mp3/0023.mp3"
          delay(100);
          break;
        case 22: //НУ,ПРОЩАЙ ЗДОРОВЬЕ
          lcd.setCursor(3, 0);
          lcd.print(F("НУ , ПРОЩАЙ "));
          lcd.setCursor(4, 1);
          lcd.print(F("ЗДОРОВЬЕ!"));
          mp3_play (24);  // Проигрываем "mp3/0024.mp3"
          delay(100);
          break;
        case 23: //ДРУЗЬЯ МОИ СЕГОДНЯ МЫ ВЫПИВАЕМ НЕ ПРОСТО ТАК
          lcd.setCursor(5, 0);
          lcd.print(F("ВЫПЬЕМ "));
          lcd.setCursor(3, 1);
          lcd.print(F("ПО ПОВОДУ!"));
          mp3_play (25);  // Проигрываем "mp3/0025.mp3"
          delay(100);
          break;
        case 24: //НЕ ЖЕЛАЕТЕ ЛИ ТРАХНУТЬ ПО МАЛЕНЬКОЙ?
          lcd.setCursor(2, 0);
          lcd.print(F("НЕ ЖЕЛАЕТЕ ЛИ"));
          lcd.setCursor(4, 1);
          delay(600);
          lcd.print(F("ТРАХНУТЬ"));
          mp3_play (26);  // Проигрываем "mp3/0026.mp3"
          delay(1000);
          lcd.clear();
          lcd.setCursor(2, 0);
          lcd.print(F("ПО МАЛЕНЬКОЙ?"));
          delay(100);
          break;
        case 25: //ЖЕЛАЮ ЧТОБЫ ВСЕ
          lcd.setCursor(0, 0);
          lcd.print(F("ЖЕЛАЮ ЧТОБЫ ВСЕ"));
          lcd.setCursor(5, 1);
          lcd.print(F("!!!!!"));
          mp3_play (31);  // Проигрываем "mp3/0031.mp3"
          delay(100);
          break;
         case 26: //ЭТО ПРОСТО ПРАЗДНИК КАКОЙ ТО!
          lcd.setCursor(3, 0);
          lcd.print(F("ЭТО ПРОСТО"));
          lcd.setCursor(0, 1);
          lcd.print(F("ПРАЗДНИК КАКОЙТО"));
          mp3_play (41);  // Проигрываем "mp3/0041.mp3" 
          delay(100);
          break;
       case 27: //НУ,ПОНЕСЛАСЬ КОЗА ПО ЭПОДРОМУ!
          lcd.setCursor(2, 0);
          lcd.print(F("НУ,ПОНЕСЛАСЬ"));
          lcd.setCursor(0, 1);
          lcd.print(F("КОЗА ПО ЭПОДРОМУ"));
          mp3_play (28);  // Проигрываем "mp3/0028.mp3"
          delay(100); 
          break;
       case 28: //У МЕНЯ РОДИЛСЯ ТОСТ!
          lcd.setCursor(1, 0);
          lcd.print(F("У МЕНЯ РОДИЛСЯ"));
          lcd.setCursor(5, 1);
          lcd.print(F("ТОСТ !"));
          delay(500);
          mp3_play (38);  // Проигрываем "mp3/0038.mp3"
          delay(500);
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print(F("ДАВАЙТЕ "));
           lcd.setCursor(7, 1);
          lcd.print(F("ВЫПЬЕМ..."));
          delay(100);
          break;
        case 29: //ДАВАЙТЕ ВЫПЬЕМ!
          lcd.setCursor(0, 0);
          lcd.print(F("ДАВАЙТЕ,"));
          lcd.setCursor(8, 1);
          lcd.print(F("ВЫПЬЕМ !"));
          mp3_play (29);  // Проигрываем "mp3/0029.mp3"
          delay(100);
          break;
        case 30: //НЕ ЖЕЛАЕТЕ ЛИ ТРАХНУТЬ ПО МАЛЕНЬКОЙ?
          lcd.setCursor(4, 0);
          lcd.print(F("ЗДОРОВЬЯ"));
          lcd.setCursor(3, 1);
          lcd.print(F("И УСПЕХОВ!"));
          mp3_play (32);  // Проигрываем "mp3/0032.mp3"
          delay(100);
          break;
        case 31: //ЦЕЛОВАТЬСЯ БУДЕМ ИЛИ КАК
          lcd.setCursor(3, 0);
          lcd.print(F("ЦЕЛОВАТЬСЯ"));
          lcd.setCursor(4, 1);
          lcd.print(F("БУДЕМ?!"));
          mp3_play (36);  // Проигрываем "mp3/0036.mp3"
          delay(100);
          break;
        case 32: //ЗА ЖЕЛАНИЯ И ВОЗМОЖНОСТИ
          lcd.setCursor(3, 0);
          lcd.print(F("ЗА ЖЕЛАНИЯ"));
          lcd.setCursor(1, 1);
          lcd.print(F("И ВОЗМОЖНОСТИ!"));
          mp3_play (40);  // Проигрываем "mp3/0040.mp3"
          delay(100);
          break;  
        case 33: //ЗА КОЛЛЕКТИВ!
          lcd.setCursor(1, 0);
          lcd.print(F("НЕ ОТРЫВАЙТЕСЬ"));
          lcd.setCursor(2, 1);
          lcd.print(F("ОТ КОЛЛЕКТИВА!"));
          mp3_play (39);  // Проигрываем "mp3/0039.mp3"
          delay(100);
          break;   
      case 34: //ХЛОПНУТЬ ПО РЮМАШКЕ
         lcd.setCursor(0, 0);
         lcd.print(F("А НЕ ХЛОПНУТЬ ЛИ"));
         lcd.setCursor(1, 1);
         lcd.print(F("НАМ ПО РЮМАШКЕ?"));  
         mp3_play (37);  // Проигрываем "mp3/0037.mp3"   
        delay(100);  
        break;
      }
      delay(2000);
      if (++num > 34) num = 0;
  }


void ServoNaliv(byte rumka) {
  servo.attach(PIN_SERVO);
  for (int pos = servo.read(); pos <= Rumka_pos[rumka]; pos += 1) {
    // с шагом в 1 градус
    servo.write(pos); // даем серве команду повернуться в положение, которое задается в переменной 'pos'
    delay(servo_speed); // ждем , пока ротор сервы выйдет в заданную позицию
  }
  servo.detach();

}

void ServoParking () {
  //Serial.println(servo.read());
  servo.attach(PIN_SERVO);
  for (int pos = servo.read();  pos >= 0; pos -= 1) {
    // с шагом в 1 градус
    servo.write(pos); // даем серве команду повернуться в положение, которое задается в переменной 'pos'
    delay(servo_speed); // ждем , пока ротор сервы выйдет в заданную позицию
  }
  servo.detach();
}

void CvetoMuzik() {
  for (int i = 0; i <= 7; i++) {
    for (int y = 0; y < max_DrinkCount; y++) {
      strip.setPixelColor(y, strip.Color(255, 0, 0));
      strip.show();
      delay(30);
    }
    for (int y = 0; y < max_DrinkCount; y++) {
      strip.setPixelColor(y, strip.Color(255, 0, 255));
      strip.show();
      delay(30);
    }
    for (int y = 0; y < max_DrinkCount; y++) {
      strip.setPixelColor(y, strip.Color(0, 255, 0));
      strip.show();
      delay(30);
    }
    for (int y = 0; y < max_DrinkCount; y++) {
      strip.setPixelColor(y, strip.Color(0, 0, 255));
      strip.show();
      delay(30);
    }
  }
}

void setup()  {
  Serial.begin(9600);//
  //устанавливаем Serial порт МП3 плейера если вывод в монитор TX(D0) и RX(D1)не нужен
  mp3_set_serial (Serial);//инициализируем Serial порт МП3 плейера
  /*
    при необходимости создаем програмный порт для управдения МП3 плейером, если вывод в монитор TX(D0) RX(D1) необходим
    SoftwareSerial mySoftwareSerial(10, 11); // RX, TX  обозначаем програмный порт как mySoftwareSerial
    //плейер подключаем D10 D11
    mySoftwareSerial.begin(9600);//инициализируем програмный Serial порт
    mp3_set_serial (mySoftwareSerial);// указываем програмный порт для МП3 плейера
    //инициализируем Serial с скоростью 115200, если вывод в монитор  TX(D0) RX(D1) необходим
    Serial.begin(115200);
  */
  delay (100);//Между двумя командами необходимо делать задержку 100 миллисекунд, в противном случае некоторые команды могут работать не стабильно.
  mp3_set_volume (15);// устанвливаем громкость 30
  delay (100);
  mp3_play (1); // Проигрываем "mp3/0001.mp3"(0001_get started!.mp3)
  delay (100);
  lcd.init();// initialize the lcd
  lcd.backlight();
  lcd.setCursor(7, 0);
  lcd.print(F("НУ,"));
  lcd.setCursor(1, 1);
  lcd.print(F("НАА-ЧАА-ЛИИИИ!"));
  delay (2500);
  pinMode(pin_SW, INPUT); // устанавливаем pin pin_SW как вход
  digitalWrite(pin_SW, HIGH); // Поддяжка вывода к 1
  pinMode(pin_A, INPUT);
  pinMode(pin_B, INPUT);
  pinMode(PIN_PUMP, OUTPUT);
  digitalWrite(PIN_PUMP, 0);
  currentTime = millis();
  loopTime = currentTime;
  //---------------
  oled_menu(0);
  strip.begin();
  for (int i = 0; i < 5; i++) {
    pinMode(Optics[i], INPUT);
  }
  ServoParking();

}

void loop()  {
  currentTime = millis();
  if (currentTime >= (loopTime + 5)) { // проверяем каждые 5мс

    //     int  val = analogRead(0);     // считываем значение
    //  Serial.println(val);
    encoder_A = digitalRead(pin_A);     // считываем состояние выхода А энкодера
    encoder_B = digitalRead(pin_B);     // считываем состояние выхода B энкодера
    if ((!encoder_A) && (encoder_A_prev)) {  // если состояние изменилось с положительного к нулю

      //Вращение влево
      if (encoder_B) {
        if (MenuFlag == 0) {
          (Menu <= 0 ) ? Menu = 2 : Menu--; // Перемещение курсора по главному меню назад
          oled_menu(Menu);
        } else if (MenuFlag == 1) {
          (Drink <= min_Drink ) ? Drink = max_Drink : Drink--; // Уменьшаем кол-во милилитров в рюмку
          oled_auto(Drink);
        } else if (MenuFlag == 2) {
          (DrinkCount >= max_DrinkCount ) ? DrinkCount = 1 : DrinkCount++; // Влево увечичиваем рюмки для ручного режима
          oled_manual(DrinkCount, Drink);
        }
        //Вращение вправо
      } else {
        if (MenuFlag == 0) {
          (Menu >= 2 ) ? Menu = 0 : Menu++; // Перемещение курсора по главному меню вперед.
          oled_menu(Menu);
        } else if (MenuFlag == 1) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink++;
          oled_auto(Drink);
        } else if (MenuFlag == 2) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink++;
          oled_manual(DrinkCount, Drink);
        }
      }

    }

    encoder_A_prev = encoder_A;     // сохраняем значение А для следующего цикла

    int encoder_sw = digitalRead(pin_SW);
    if  (encoder_sw == 0 && encoder_sw != encoder_sw_prew)  { // Нажата кнопка

      int pause_sw = 0;
      boolean promivka = false;
      while (digitalRead(pin_SW) == 0) { // Держим кнопку. Считаем сколько времени прошло...
        delay(100);
        pause_sw++;
        if (pause_sw > 20 && Menu != 2 ) break;

        if (pause_sw > 20 && Menu == 2 && promivka == false) { // Если пункт меню промывка и держим кнопку больше 2 секунд.
          promivka = true;
          pump_enable(); // Включаем насос
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print(F("П Р О М Ы В К А"));
          lcd.setCursor(2, 1);
          lcd.print("<><><><><><>");
        }
      }

      //После отпускания кнопки , обрабатываем
      if (promivka == true) { //Отпустили кнопку. Если включена промывка, выключаем насос и возвращаемся в главное меню
        promivka = false;
        pump_disable() ; //Выключаем насос
        oled_menu(2);

      } else {
        //Обработка всех нажатий кнопки
        if (Menu == 0 && MenuFlag == 0 &&  pause_sw < 10) { //Нажатие кнопки меню авто
          MenuFlag = 1;
          oled_auto(Drink);
        } else if (MenuFlag == 1 && pause_sw > 20) { //Выход из меню авто в главное
          MenuFlag = 0;
          oled_menu(0);
        } else if (MenuFlag == 1 ) { //Начинается автоматический разлив
          Serial.println("AUTO"); //Начало автоматического разлива
          oled_naliv(MenuFlag, Drink, DrinkCount); // Выводим на экран наливаем ...
          byte drink_count = 0;
          for (int y = 0; y < max_DrinkCount; y++) {
            if (analogRead(Optics[y]) > Optics_porog[y] ) {
              strip.setPixelColor(y, strip.Color(255, 0, 0)); // Подствечиваем красным цветом
              strip.show();
              ServoNaliv(y); // Перемещяемся к рюмке
              pump_timer(Drink); // Налив.
              strip.setPixelColor(y, strip.Color(0, 255, 0)); // Подствечиваем зеленым , налито.
              strip.show();
              drink_count++;
            }
          }
          if (drink_count > 0) {
            oled_nalito(MenuFlag, drink_count, Drink );
            ServoParking();
            delay(1000);
            Tost();
            CvetoMuzik();
            oled_auto(Drink);
          } else {
            lcd.setCursor(7, 1);
            lcd.print(F("НЕТ РЮМОК!"));
            delay(2000);
            oled_auto(Drink);

          }
        } else if (Menu == 1 && MenuFlag == 0 &&  pause_sw < 10) { // Нажатие меню ручное
          MenuFlag = 2;
          oled_manual(DrinkCount, Drink);
        } else if (MenuFlag == 2 && pause_sw > 20) { //Выход из меню ручное в главное
          MenuFlag = 0;
          oled_menu(1);
        } else if (MenuFlag == 2 ) { //Начинается ручной разлив
          Serial.println("RUCHNOY" + String(DrinkCount));
          oled_naliv(MenuFlag, Drink, DrinkCount); // Выводим на экран наливаем ...
          for (int y = 0; y < DrinkCount; y++) {
            strip.setPixelColor(y, strip.Color(255, 0, 0)); // Подствечиваем красным цветом
            strip.show();
            ServoNaliv(y); // Перемещяемся к рюмке
            pump_timer(Drink); // Налив.
            strip.setPixelColor(y, strip.Color(0, 255, 0)); // Подствечиваем зеленым , налито.
            strip.show();
          }
          oled_nalito(MenuFlag, DrinkCount, Drink ); // Выводим на экран налито ...
          ServoParking();
          Tost();
          CvetoMuzik();
          oled_manual(DrinkCount, Drink);
        }
      }
    }

    if (currentTime >= (ledTime + 300)) {
      //Опрашиваем оптопары ... Если рюмка поставлена , светодиод светится синим, нет ничего - не светится
      for (int i = 0; i < max_DrinkCount; i++) {

        int val = analogRead(Optics[i]);     // считываем значение
        //        Serial.println(val);
        if (val > Optics_porog[i]) {
          strip.setPixelColor(i, strip.Color(0, 0, 255));
        } else {
          strip.setPixelColor(i, strip.Color(0, 0, 0));
        }
        //    delay(20);

      }
      strip.show();
      ledTime = currentTime;
    }
    encoder_sw_prew = encoder_sw;
    loopTime = currentTime;

  }
}

 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

kvirin1
Offline
Зарегистрирован: 14.09.2019

Уважаемый RW3 в скетче изменены файлы мп3. Если Вам не трудно скиньте Вашу нарезку с мп3 файлами. заранее благодарю!

Sver4ok
Offline
Зарегистрирован: 09.10.2016

Собрал схему на энкодере, сперва дисплей 3 раза включается, отключается, потом все работает, НО проц на ардуине раскаляется, пробовал другую плату - тоже самое. У кого нибудь так было?

Sver4ok
Offline
Зарегистрирован: 09.10.2016

Собрал схему на энкодере, сперва дисплей 3 раза включается, отключается, потом все работает, НО проц на ардуине раскаляется, пробовал другую плату - тоже самое. У кого нибудь так было?

Sver4ok
Offline
Зарегистрирован: 09.10.2016

Схема на переменном резисторе работает стабильно, ничего не греется

kvirin1
Offline
Зарегистрирован: 14.09.2019

Sver4ok пишет:

Схема на переменном резисторе работает стабильно, ничего не греется

Смотрите правильно ли собрана у Вас схема и не ленитесь читать форум с первой страницы

https://yadi.sk/i/6QmeKphJgI5IKA    схема

https://yadi.sk/d/1DOedRRio4NsYA

сборка скетчей библиотек и компонентов

 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

kvirin1 пишет:

Уважаемый RW3 в скетче изменены файлы мп3. Если Вам не трудно скиньте Вашу нарезку с мп3 файлами. заранее благодарю!

стр.9, сообщение №413

kvirin1
Offline
Зарегистрирован: 14.09.2019

Благодарю скачал и добавил в сборку. Просто просматривая кучу ссылок совсем запутался в них, очень много не кликабельных ссылок.

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

Коллеги! Траур у меня сегодня. На 31 году жизни тихо и мирно скончался мой старый друг и соратник "ЭПСН-25/24" . У кого сегодня вечерний преферанс прошу играть стоя, включая "миэЭры" и "девятерные".  "НУ, ПОМЯНЕМ!".

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

 "Le Roi est mort, vive le Roi!"— традиционная французская фраза.

Sver4ok
Offline
Зарегистрирован: 09.10.2016

Оказался косяк в серве, ставил S3003, вроде работала на скетче с переменным резистором и проц не грелся, на счетче с энкодером отцепляю управляющий провод энкодера и нагрев пропадает

Sver4ok
Offline
Зарегистрирован: 09.10.2016

А нет, не в серве, просто питал через юсб порт, подал 5 вольт от отдельного источника и нагрев пропал. Не очень понятна связь между подключением питания и нагревом проца, или какой то возбуд у него начинается.

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

kvirin1 пишет:

Sver4ok пишет:

Схема на переменном резисторе работает стабильно, ничего не греется

Смотрите правильно ли собрана у Вас схема и не ленитесь читать форум с первой страницы

https://yadi.sk/i/6QmeKphJgI5IKA    схема

https://yadi.sk/d/1DOedRRio4NsYA

сборка скетчей библиотек и компонентов

 

Коллега, обнови схему, на V2.1 от 19.09.2019, в V2 манюсенькая ошибка. Ссылка  на V2.1 в сообщении 402.

Lerik-Co
Offline
Зарегистрирован: 30.08.2019

Добрый день!

Ребята, по названию TCRT5000 на алиэкспресе находятся два варианта датчиков. Синие и черные:

https://ru.aliexpress.com/item/32703689686.html

https://ru.aliexpress.com/item/4000036567119.html

Какие лучше заказать?

У кого в теме были проблемы с засветкой датчиков под солнцем, отпишитесь, какие датчики у вас и смогли ли решить проблему.

Спасибо!

RW3
RW3 аватар
Offline
Зарегистрирован: 07.08.2019

Lerik-Co пишет:

Добрый день!

Ребята, по названию TCRT5000 на алиэкспресе находятся два варианта датчиков. Синие и черные:

https://ru.aliexpress.com/item/32703689686.html

https://ru.aliexpress.com/item/4000036567119.html

Какие лучше заказать?

У кого в теме были проблемы с засветкой датчиков под солнцем, отпишитесь, какие датчики у вас и смогли ли решить проблему.

Спасибо!

Я бы заказал эти https://ru.aliexpress.com/item/4000036567119.html

Lerik-Co
Offline
Зарегистрирован: 30.08.2019

Спасибо за Ваш ответ!

А дисплей какой удобнее?

https://ru.aliexpress.com/item/32896971385.html
или
https://ru.aliexpress.com/item/32652739134.html

RW3
RW3 аватар
Offline
Зарегистрирован: 07.08.2019

Lerik-Co пишет:

Спасибо за Ваш ответ!

А дисплей какой удобнее?

https://ru.aliexpress.com/item/32896971385.html
или
https://ru.aliexpress.com/item/32652739134.html


Под эти дисплеи надо скетч переделывать.используйте те что в схеме

Lerik-Co
Offline
Зарегистрирован: 30.08.2019

А разве первая моя ссылка - это не "из  схемы"? А какой тогда "из схемы"?

Переделать скетч не проблема, были бы библиотеки под эти дисплеи.

RW3
RW3 аватар
Offline
Зарегистрирован: 07.08.2019

RW3 пишет:
Lerik-Co пишет:

Спасибо за Ваш ответ!

А дисплей какой удобнее?

https://ru.aliexpress.com/item/32896971385.html
или
https://ru.aliexpress.com/item/32652739134.html


Под эти дисплеи надо скетч переделывать.используйте те что в схеме

https://s.click.aliexpress.com/e/CtbbwZ4 эти уже проверены. В вашей ссылке похоже контроллер у дисплея другой(1306). Нужен 1106 . вывод SCK вместо SCL

kvirin1
Offline
Зарегистрирован: 14.09.2019

Forthomo пишет:

kvirin1 пишет:

Sver4ok пишет:

Схема на переменном резисторе работает стабильно, ничего не греется

Смотрите правильно ли собрана у Вас схема и не ленитесь читать форум с первой страницы

https://yadi.sk/i/6QmeKphJgI5IKA    схема

https://yadi.sk/d/1DOedRRio4NsYA

сборка скетчей библиотек и компонентов

 

Коллега, обнови схему, на V2.1 от 19.09.2019, в V2 манюсенькая ошибка. Ссылка  на V2.1 в сообщении 402.

увидел исправил))) за Вами не угонишься)))

https://yadi.sk/i/AJJ5n1wQ5akS-A

схема v2.1

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019
Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

kvirin1 пишет:

увидел исправил))) за Вами не угонишься)))

https://yadi.sk/i/AJJ5n1wQ5akS-A

схема v2.1

Я еще двигатель насосика шунтирую конденсатором и диодом, и сопротивление на управление лентой 200-470 Ом повесил, но пока перерисовывать не буду.

Sver4ok
Offline
Зарегистрирован: 09.10.2016

Спасибо, по этой ссылке и собрал, у меня двухцветный дисплей, смотрится отлично, только строки меню на 2 строчки пришлось опустить.

stpavel
Offline
Зарегистрирован: 09.10.2018

Печатная плата под ардуино нано и концевики. Задействованы все цифровые пины по максимуму ) 

Схема расчитана на 6 рюмок. Выведены разъемы подключения на концевики, MP3 модуль, экран, светодиодную ленту , серво, насос .

Сама платка получилась такой 

 

Ссылка на плату 

 

yct9
Offline
Зарегистрирован: 27.11.2015

stpavel пишет:

Печатная плата под ардуино нано и концевики. Задействованы все цифровые пины по максимуму ) 

Схема расчитана на 6 рюмок. Выведены разъемы подключения на концевики, MP3 модуль, экран, светодиодную ленту , серво, насос .

Сама платка получилась такой 

 

Ссылка на плату 

 

Золотой вы человек) Если не трудно будет, выложите фото в собранном виде

Lerik-Co
Offline
Зарегистрирован: 30.08.2019
Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

stpavel пишет:

Печатная плата под ардуино нано и концевики. Задействованы все цифровые пины по максимуму ) 

Схема расчитана на 6 рюмок. Выведены разъемы подключения на концевики, MP3 модуль, экран, светодиодную ленту , серво, насос .

Сама платка получилась такой 

 

Ссылка на плату 

 

Подсветку сосуда в зависимости от заряда акума реализовали?

stpavel
Offline
Зарегистрирован: 09.10.2018

Forthomo пишет:

Подсветку сосуда в зависимости от заряда акума реализовали?

Нет. Вывел на плате  аналоговый вход для этого. На будущее . Мне для начала нужно разобраться со своим питанием от аккумов. Те бустеры которые у меня есть видимо левые какие то. Идет конкретная просадка. Вы каким бустером пользуетесь ? 
Аккумы у меня 3300 , две штуки, насос 12 вольт, 0.5А.
​Может еще аккумов добавить..​

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

Forthomo пишет:

vovan47 пишет:

Forthomo пишет:

помпу, шланги - ссылки есть в форуме кажется на 2-3-4 стр.,,  2 сопротивления 10кОм для энкодера, (если со звуком DFplayer, 2 сопротивления 1кОм, динамик) ,  механику сам смотри какую нужно стойки там, болтики - гаечки. Как питание будете организовывать?

Прочитайте тему от начала до конца, там все есть.

питания от аккумулятора! да вроде прочитал)

 

 https://ru.aliexpress.com/item/32467578996.html?spm=a2g0v.12010612.8148356.16.f5e84e7fTkg0vz

https://ru.aliexpress.com/item/32340934616.html?spm=a2g0o.detail.1000060.2.3d2a7151lmb0Cy&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.99734.0&scm_id=1007.13339.99734.0&scm-url=1007.13339.99734.0&pvid=000994c9-f144-4558-a5c0-d898d7304d20

или https://ru.aliexpress.com/item/32815977927.html?spm=a2g0v.12010615.8148356.12.21fe78cdkfNTqb

 

Здесь смотри, обе платы  испытывал,  МТ выглядит надежней но "шумная". У меня акум 8000мА (на самом деле 3300) хватает точно разлить 1,5л.

gfx125
Offline
Зарегистрирован: 27.05.2017

RW3 пишет:
Под эти дисплеи надо скетч переделывать.используйте те что в схеме https://s.click.aliexpress.com/e/CtbbwZ4 эти уже проверены. В вашей ссылке похоже контроллер у дисплея другой(1306). Нужен 1106 . вывод SCK вместо SCL

те же йайца тока в профиль

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

плату на чпу делали?

stpavel
Offline
Зарегистрирован: 09.10.2018

Xumuk пишет:

плату на чпу делали?

Да , небольшой самодельный станочек. 

stpavel
Offline
Зарегистрирован: 09.10.2018

Forthomo пишет:

Forthomo пишет:

vovan47 пишет:

Forthomo пишет:

помпу, шланги - ссылки есть в форуме кажется на 2-3-4 стр.,,  2 сопротивления 10кОм для энкодера, (если со звуком DFplayer, 2 сопротивления 1кОм, динамик) ,  механику сам смотри какую нужно стойки там, болтики - гаечки. Как питание будете организовывать?

Прочитайте тему от начала до конца, там все есть.

питания от аккумулятора! да вроде прочитал)

 

 https://ru.aliexpress.com/item/32467578996.html?spm=a2g0v.12010612.8148356.16.f5e84e7fTkg0vz

https://ru.aliexpress.com/item/32340934616.html?spm=a2g0o.detail.1000060.2.3d2a7151lmb0Cy&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.99734.0&scm_id=1007.13339.99734.0&scm-url=1007.13339.99734.0&pvid=000994c9-f144-4558-a5c0-d898d7304d20

или https://ru.aliexpress.com/item/32815977927.html?spm=a2g0v.12010615.8148356.12.21fe78cdkfNTqb

 

Здесь смотри, обе платы  испытывал,  МТ выглядит надежней но "шумная". У меня акум 8000мА (на самом деле 3300) хватает точно разлить 1,5л.

XL6009 не пойдет.. Он работает от 5 вольт, а мне нужно с 3.7 поднимать. 

Вот второй вариант норм, спасибо. Закажу. 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

stpavel пишет:

XL6009 не пойдет.. Он работает от 5 вольт, а мне нужно с 3.7 поднимать. 

Вот второй вариант норм, спасибо. Закажу. 

Я пытал МТ3608, он похож на XL6009, при последовательном соединении акумов подойдет.

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

Просверлил бутылку Д8мм, как вам идея Павла  ёмкость в самом девайсе? И подсветка снизу -заряд акума от фиолетового к красному.

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019
stpavel
Offline
Зарегистрирован: 09.10.2018

Парни, мой MP3 модуль пока идет, хотел уточнить , достаточна ли громкость встроенного усилителя , или лучше добавить небольшой усилок на каком нибудь PAM8403 ?

 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

stpavel пишет:

Парни, мой MP3 модуль пока идет, хотел уточнить , достаточна ли громкость встроенного усилителя , или лучше добавить небольшой усилок на каком нибудь PAM8403 ?

 

Головки 3 настоящих ватта остаточно на 12м2, приветствие уровень 30, чтобы разбудить скептиков, к плееру добавил  две кнопки чтобы громкость уменьшать при долгом нажатии, короткое следующий тост.

Завтра выложу схему плеера для общего понимания, он кстати больше всех жрет.

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

stpavel пишет:

Схема расчитана на 6 рюмок. Выведены разъемы подключения на концевики, MP3 модуль, экран, светодиодную ленту , серво, насос .

Сбрось схему и скетч в личку если не жалко.forthomo@yandex.ru