ИК паяльная станция на Arduino Mega 2560. Доработка скетча "ARS_v2_Lilium_JSN"

Тема в разделе "Arduino & Shields", создана пользователем vector99, 7 дек 2016.

  1. Yojiq

    Yojiq Гик

    ввести третий датчик вместо верхнего графика и повторить алгоритм термопро :)
     
  2. SOLOway

    SOLOway Гик

    У Yurik-o в его реализации использован обработчик кнопок s.button.h
    #761
    #777
    Также xake у нас в теме главный по выносу мозга кнопок и по энкодерам :) #1479
    Когда упорядочивал и рихтовал по рекомендациям Dmitrysh старый код Yurik-o из поста #160 , я не смог разобраться с таким вариантом обработки кнопок (навскидку не вспомнил в каких участках кода, надо будет посмотреть...) и в упорядоченном скетче, в посте #2372 , применил тот же способ, что и в релизах v1.3.3
     
  3. RSR3000

    RSR3000 Нерд

    Осталась третья термопара, незадействованная.
     

    Вложения:

  4. Watashi

    Watashi Гик

    Все это работает, но слабовато, не меняет структуру программы для улучшения кода.
     
  5. SOLOway

    SOLOway Гик

    Тут недавно испекли свежие видосики о равномерности нагрева.

    Ссылается на вот эти видео

    и оттуда же

    Я не спорю, я это для тех, кто всё равно не будет читать всю тему :)
     
  6. Yojiq

    Yojiq Гик

    такая плотность нагревателей излишняя, все равно будет с верху рассеиватель не важно какой ...
     
  7. SOLOway

    SOLOway Гик

    yojiq это вы случайно пропустили важную информацию от RSR3000:

    Изначально спирали с завода бывают уложены в трубках очень даже равномерно. Однако перевозка, небрежность при хранении, делают из конфетки какашку. Знакомые мне владельцы этого инструмента сами перекладывали спирали. Несовершенство же ПО ставили на второе место.
    Теорию и практику использования сплошного расположения трубок очень воодушевляюще изложил VladSko:
     
    Последнее редактирование: 21 апр 2019
  8. RSR3000

    RSR3000 Нерд

    Размер кварцевого НИ 180х220, какой размер стола ставить, в настройках 1,2,3 , эта настройка принципиальна?
    ПО я поставил на первое место, т.к, трубки поправил можно, а ПО не поправишь, плюс два четырех сегментных непонятных (индикатора). В силовой части два запараллеленных bta 20600b.и мос3021.
     
    Последнее редактирование: 21 апр 2019
  9. Yojiq

    Yojiq Гик

    у тебя какой размер платы ? - вот под него и ставишь.
     
    RSR3000 нравится это.
  10. RSR3000

    RSR3000 Нерд

    Аха вон как, думал от размера площади ни, так как у всех разная она.
    Как реализована эта функция, виде дополнительного подключения нагрузки НИ, или программная обработка ?
     
    Последнее редактирование: 21 апр 2019
  11. SOLOway

    SOLOway Гик

    RSR3000 У вас преднагреватель не разделен на секции. Вам недоступна функция меню, которая позволяет выбирать количество подключенных к силовому модулю управления низом нагревательных элементов!
     
    RSR3000 нравится это.
  12. RSR3000

    RSR3000 Нерд

    Спасибо, так и предполагал ))
     
  13. and-payalnik

    and-payalnik Нерд

    "Попробуйте ещё раз перегрузить скетч из поста #2400, я его немного поправил."
    все так и осталось.
    для укрощения низа собрал простой генератор на UNO. работать все-таки надо...
    Код (C++):
    const int buttonPin = 11; // номер порта управления
    const int ledPin =    13; // номер порта выхода
    void setup() {
        // устанавливаем порт на выход
        pinMode(ledPin, OUTPUT);
        // устанавливаем порт на вход
        pinMode(buttonPin, INPUT);
    }

    void loop() {
        // читаем состояние порта кнопки и записываем в переменную
        int buttonState = digitalRead(buttonPin);

        // делаем простую проверку нашей переменной,
        // если на входе в порт кнопки присутствует напряжение - включаем , иначе - выключаем
        if (buttonState == HIGH) {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(300);
      digitalWrite(LED_BUILTIN, LOW);
      delay(2000);
    }
    }
    Он включается при запуске пайки, подобрал время on=off,
    и после отключения низа температура
    около 148-152(уст 150). до платы 7см.
    с низа платы около 120.
     
  14. Watashi

    Watashi Гик

    Вы поясните ,плиз, зачем этот генератор и что пытаетесь с его помощью добиться?
    Если пытаетесь ограничить мощность низа, то есть ограничение по мин и мах в настройках.
     
  15. SOLOway

    SOLOway Гик

    Простенький термостат для низа от mvm_ksaa:
    Код (C++):
    #include <max6675.h>
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(3, 4, 5, 7, 8, 9);
    int TempBottom;
    int SetTempBottom;
    int PinBottom = 6;
    int thermoDO = 12;
    int thermoCLK = 10;
    int thermoCS_b = 11;
    int PinPlus = 0;
    int PinMinus = 1;
    int PeriodReadTemp = 0;
    MAX6675 thermocouple_b(thermoCLK, thermoCS_b, thermoDO);
    const byte DESIRED_WIDTH = 3;
    void setup() {
      //Serial.begin(9600);
      SetTempBottom = 0;
      pinMode(PinPlus, INPUT);
      pinMode(PinMinus, INPUT);
      digitalWrite(PinPlus, HIGH);
      digitalWrite(PinMinus, HIGH);
      pinMode(PinBottom, OUTPUT);
      digitalWrite(PinBottom, LOW);
      lcd.begin(16, 2);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("ALEXSEY  JUYCKOV");
      lcd.setCursor(1, 1);
      lcd.print("BOTTOM  HEATER");
      delay(3000);
      lcd.clear();
    }
    String addZeroes(const String& src, byte pad)
    {
    if(src.length() >= pad)
    return src;
    String result;
    byte add = pad - src.length();
    while(add--)
    result += "0";
    result += src;
    return result;
    }
    void loop() {
      lcd.setCursor(0, 0);
      lcd.print("HEATING  CONTROL");
      PeriodReadTemp++;
      if (PeriodReadTemp == 200) {
      TempBottom = thermocouple_b.readCelsius();
      PeriodReadTemp = 0;
      }
      lcd.setCursor(0, 1);
      lcd.print("FACT "+(addZeroes(String(TempBottom),DESIRED_WIDTH)));
      lcd.setCursor(9, 1);
      lcd.print("INS "+(addZeroes(String(SetTempBottom),DESIRED_WIDTH)));
      if (digitalRead(PinPlus) == LOW) {
        SetTempBottom++;
        delay(100);
      }
      if (digitalRead(PinMinus) == LOW) {
        SetTempBottom--;
        delay(100);
      }
      if (SetTempBottom <=0) {
        SetTempBottom = 0;
      }
      if (SetTempBottom > 500) {
        SetTempBottom = 500;
      }
      if (SetTempBottom > TempBottom) {
       digitalWrite(PinBottom,HIGH);
      }
      if (SetTempBottom <= TempBottom) {
       digitalWrite(PinBottom,LOW);
      }
    }
     
    Последнее редактирование: 21 апр 2019
    buivol135 нравится это.
  16. tssergej

    tssergej Нерд

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

    SOLOway Гик

    1). А вот здесь как раз можно и воспользоваться идеей 4uvak о 14-и профилях , примененной для AVR snmar4enko в его версии REWORK_LCD1602nano и адаптированной Dmitrysh для ветки UNO+LCD2004.
    Платы все пакостнее становятся, а для Mega2560+tft 480*320 так и осталось всего 5 профилей...
    Предложенный Watashi в посте #1827 способ хорош, когда есть или легкий доступ к карте памяти, или карта навечно поселится в слоте.
    2). И еще полезняшка, которая пока не реализована: задавать условие для включения верха через меню.
    3). Ещё в теме упоминали, что работа с дисплеем - очень ресурсоёмкая. А сейчас на дисплей выводится большое количество информации, присутствует мелкий шрифт. При этом важность отображения всего, что сейчас отображается ещё не обсуждалась. Мне на моём смартфоне случайно попалась функция изменения стиля экрана - можно выбрать "простой режим", "обычный режим", "пользовательские настройки". Может ли быть применен такой подход в нашем случае? - т.е. "рабочий режим", "сервисный режим", и т.п.
     
  18. Dmitrysh

    Dmitrysh Гик

    Профилей можно сделать достаточно много, даже не используя карту памяти, у mega2560 достаточно большой eeprom - 4кБ, а профиль занимает байт 100(это с запасом на будущее), так что считайте сами.
    Объясните поподробнее, что вы имеете в виду.
    По поводу пункта 3) Я скажу так, всё что успевает укладываться в 220-240милисекунд можно выводить смело. Есть вариант выводить всё что угодно, хоть видео, но он сложный, у меня работает, но пока не вижу смысла усложнять, то что есть.
     
  19. Dmitrysh

    Dmitrysh Гик

    Можно, и где-то даже и нужно, наверное. Можно что-то убрать, я, допустим, у себя убрал графики мощности верха и низа. В дальнейшем, наверное, уберу график температуры и скорее всего в отдельный экран с возможностью переключения.
     
    SOLOway и Yojiq нравится это.
  20. Dmitrysh

    Dmitrysh Гик

    А ещё вариант для любителей расширенного eeprom - прицепить внешний по I2C, это по ресурсам и скорости выгоднее, чем карта памяти.
     
    SOLOway нравится это.