Хотелось бы совета

  • В этой теме 32 ответа, 5 участников, последнее обновление 1 месяц сделано Sergey_r.
Просмотр 15 сообщений - с 1 по 15 (из 33 всего)
  • Автор
    Сообщения
  • #54584
    Dark
    Участник
    • Ответов: 605
    @dark

    Совершенно пьяный Dark, думал и вот что у него получилось :

    5 датчиков температуры

    10 клапанов

    2 управления тэнами

    3 мотора

    Минимальная хотелка в автоматике.

    Температура (бак, царга, узел отбора, охлаждающая жидкость, температура продукта)

    Клапана (подача воды(или мотор один насоса) открытие отбора, 6 отбор по емкостям, верхний и Нижний отбор)

    Тэны(один разгонный, и один основной)

    Моторы (подача воды охлаждения, мешалка, насос сусла)

    Весы под вопросом.

    Может что пропустил

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #60709
    Dark
    Участник
    • Ответов: 605
    @dark

    Чтобы не плодить тем. Может кто сталкивался с подключением нескольких esp по шине i2c, c разным количеством подключённых модулей i2c на каждой. Вопрос возможно ли организовать две шины i2c для каждого устройства, или они все будут весеть на одной?

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #62819
    Андрей
    Участник
    • Ответов: 273
    @5-158

    На квадратной шине должно находиться ОДНО мастер устройство и несколько подчиненных. При использовании аппаратной шины I2C, ESP может работать ТОЛЬКО в режиме мастер. Поэтому в подчиненных устройствах необходимо будет реализовать программный I2C.

    Опять же никто не запрещает, используя программный протокол, назначать под него имеющиеся пины.

    0
    #73641
    Dark
    Участник
    • Ответов: 605
    @dark

    Трезвый ум творит всякую чепуху, вот что получилось, и есть мысля что этот код можно чуток оптимизировать:

    #include <OneWire.h>
    #include <DallasTemperature.h>
    #include <iarduino_I2C_connect.h>
    //#include <LiquidCrystal_I2C.h>
    //LiquidCrystal_I2C lcd(0x27,20,4);
    iarduino_I2C_connect I2C2;
    int Tem_pin[8]={1, 2,3,4,5,6,7,8}; //номера пинов к которым подключенны датчики
    int Temp_dal[8]={0,0,0,0,0,0,0,0};
    int work_on = 0;
    int work_rez = 0;// пока резерв
    OneWire mt_ds_1(Tem_pin[0]);
    OneWire mt_ds_2(Tem_pin[1]);
    OneWire mt_ds_3(Tem_pin[2]);
    OneWire mt_ds_4(Tem_pin[3]);// резерв

    OneWire dt_ds_1(Tem_pin[4]);
    OneWire dt_ds_2(Tem_pin[5]);
    OneWire dt_ds_3(Tem_pin[6]);
    OneWire dt_ds_4(Tem_pin[7]);// резерв

    DallasTemperature sensor_main1(&mt_ds_1);
    DallasTemperature sensor_main2(&mt_ds_2);
    DallasTemperature sensor_main3(&mt_ds_3);
    DallasTemperature sensor_main4(&mt_ds_4);// резерв

    DallasTemperature sensor_safuty1(&dt_ds_1);
    DallasTemperature sensor_safuty2(&dt_ds_2);
    DallasTemperature sensor_safuty3(&dt_ds_3);
    DallasTemperature sensor_safuty4(&dt_ds_4);// резерв

    byte Temp_Massive[38];

    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    Wire.begin(0x02);
    I2C2.begin(Temp_Massive);
    sensor_main1.begin();
    sensor_main2.begin();
    sensor_main3.begin();
    sensor_main4.begin();
    sensor_safuty1.begin();
    sensor_safuty2.begin();
    sensor_safuty3.begin();
    sensor_safuty4.begin();
    }

    void loop() {
    // put your main code here, to run repeatedly:
    switch (work_on){
    case 0:{
    work_on = Temp_Massive[0]<<8; // Считываем указатель начала работы
    work_on += Temp_Massive[1];
    work_rez = Temp_Massive[2]<<8; // Считываем указатель режим работы – резерв – или другое
    work_rez += Temp_Massive[3];
    break;
    }
    case 1:{
    int t=0;
    for (int i=4;i<20;i=i+2){
    Temp_dal[t] = Temp_Massive<<8; // Считываем используемые датчики
    Temp_dal[t] += Temp_Massive;
    if (Temp_dal[t]=1) { // Если датчик используется то запрашиваем температуру
    switch (t){
    case 0:{
    sensor_main1.requestTemperatures();
    break;
    }
    case 1:{
    sensor_main2.requestTemperatures();
    break;
    }
    case 2:{
    sensor_main3.requestTemperatures();
    break;
    }
    case 3:{
    sensor_main4.requestTemperatures();
    break;
    }
    case 4:{
    sensor_safuty1.requestTemperatures();
    break;
    }
    case 5:{
    sensor_safuty2.requestTemperatures();
    break;
    }
    case 6:{
    sensor_safuty3.requestTemperatures();
    break;
    }
    case 7:{
    sensor_safuty4.requestTemperatures();
    break;
    }
    }
    }
    t==t++;
    }
    float temp_temp;
    for(int i=0;i<8;i++){
    if (Temp_dal[t]=1) { // Если датчик используется то запрашиваем температуру
    switch (t){
    case 0:{
    temp_temp == sensor_main1.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 1:{
    temp_temp == sensor_main2.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 2:{
    temp_temp == sensor_main3.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 3:{
    temp_temp == sensor_main4.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 4:{
    temp_temp == sensor_safuty1.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 5:{
    temp_temp == sensor_safuty2.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 6:{
    temp_temp == sensor_safuty3.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 7:{
    temp_temp == sensor_safuty4.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    }
    }
    }
    Temp_Massive[36] = work_on>>8; // отправляем данные что приступили к работе
    Temp_Massive[37] = work_on;
    break;
    }
    }
    }

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #73895
    Dark
    Участник
    • Ответов: 605
    @dark

    Спасибо Sergey_r, что не вмешивались в процесс, Dark, пьяный, но еще большое содержание крови в алкоголе.

    Обидно, ошибку на самом видном месте и ни кто не сказал, маленькая подсказка про экранчик, ни кто не поинтересовался, а зачем тебе Dark, там такая приблуда, ну да ладно.

    Описание, модуль контроля температуры, при установки экрана 4х20, и парочки изменений, получаем простой индикатор температуры на 8 точек. В автоматике будет всегда с номером 0x01 ошибся, с 0x02 пойдет модуль отбора на 6 клапанов и 2 крана, управление тэном будет скорее всего в самой простой конфигурации аналогично управлению тэном от Sergey_r, только управление будет по i2c и номер будет 0x03, контроль за безопасностью модуль с номером 0x04, весы с номером 0x05 , модуль охлаждения будет или такой-же как и модуль отбора но уже с номером 0x06 или просто будет использовать часть ресурсов модуля отбора, модуль управления всякими двигателями будет с номером 0x07, возможно в будущем, часть модулей можно будет устанавливать парами.

    Ну и самое не нужное модуль с номером 0x08, будет отвечать за вэб и всякие другие приблуды отображения.

    На сим Dark, уходит в запой нирвану.

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #73993
    Dark
    Участник
    • Ответов: 605
    @dark

    А теперь не много серьезного, после долгого отсутствия, замены нескольких компьютеров, встал вопрос о восстановление, схем, прошивок элементов лакибокса, центральный блок, управление тэном, весы и так далее, и Dark, не может столько пить, может сделать отдельную тему где размещать только схемы и прошивки, а все обсуждения удалять, а то не хочется писать люди подскажите где искать …. и получать ответ типа тебе чего лень три ветки сообщений посмотреть, или этот вопрос уже обсуждали три страницы назад.

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #75782
    Dark
    Участник
    • Ответов: 605
    @dark

    Черт, на каркал, подскажите как прошивать Ардуино нано, а то уно прошивается спокойно а нано выдаёт ошибки

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #75783
    Sergey_r
    Участник
    • Ответов: 2630
    @serjrv

    Черт, на каркал, подскажите как прошивать Ардуино нано, а то уно прошивается спокойно а нано выдаёт ошибки

    Так у них 2 типа бутлоадера встречается, в среде Ардуино можно из этих 2-х вариантов выбирать. Хотя конечно лучше лог ругачки показал бы.

    0
    #75785
    Dark
    Участник
    • Ответов: 605
    @dark

    Примерно так.

    Второй файл с фоткой не нрузиться

    Вложения:
    Вы должны войти для просмотра вложений.

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #75808
    Sergey_r
    Участник
    • Ответов: 2630
    @serjrv

    Посмотри здесь, и на предыдущей странице я отписывался.

    0
    #75809
    Dark
    Участник
    • Ответов: 605
    @dark

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

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #75826
    Stason553
    Участник
    • Ответов: 5
    @stason553

    Честно говоря, не понимаю как автоматизировать процесс.  Куб нагревается, царга нагревается,  срабатывает клапан воды, далее стабилизация, после этого открывается кран, начинается отбор голов. Почему после отбора голов в автоматическом режиме невозможно отобрать в другую емкость тело используя кран? Далее отжать хвосты в третью ёмкость. И только потом все процессы должны быть завершены, как мне кажется. Или я чего-то не понимаю? Интересует только отбор по пару с использованием роботизированного крана и клапанов отбора голов и тела

    1+
    #76287
    Dark
    Участник
    • Ответов: 605
    @dark

    Вопрос для умников, есть такой код:

    void test(){

    i=k; (допустим k=1)

    if (i=0) {} else{}

    if (i=1) {} else{}

    if (i=2) {} else{}

    }

    после этого кода получаем i=2, и к=1; внутри i и k ни где не используются, если if поменять местами, то i будет равно последнему условию в if, на всякий случай прошивка 72% переменные 71%. Ваше мнение? Sergey_r, не вмешиваемся

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #76308
    Андрей
    Участник
    • Ответов: 273
    @5-158

    В СИ один символ “=” это операция присвоения значения. Поэтому i получает значение, присвоенное в последней строчке.

    В твоём случае нуно писать if (i==0) {}

    Посмотри в сторону case. Несмотря на то, что он тоже построен на условиях, мне кажется выходной объем меньше.

    Эта типа тестирования?

    Если внутри подпрограммы переменные i и k не модифицируются, нет необходимости i=k. Сократится число переменных. А если такое практикуется повсеместно – ещё высвободится память.

    0
    #76325
    Dark
    Участник
    • Ответов: 605
    @dark

    Ищу того кто будет оптимизировать код 🙂

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
Просмотр 15 сообщений - с 1 по 15 (из 33 всего)
  • Для ответа в этой теме необходимо авторизоваться.