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

Тема в разделе "Глядите, что я сделал", создана пользователем Jalnin, 2 ноя 2012.

  1. SOLOway

    SOLOway Гуру

    Разбирая скетч 209 от snmar4enko, понял, что правил он его в спешке, поэтому исправлять пришлось что-то и дописывать.
    Кто расшифрует вот это:
    Код (C++):
        static byte rom2[] = {
          // PID верха, Kd умноженое на 100, Ki Rd умноженое на 10

          55, 7, 30,[/B]
          // PID низа, Kd умноженое на 100, Ki Rd умноженое на 10

          63, 3, 30,[/B]
          // ограничение мощности верха и низа в процентах умноженное на 2
          80, 170
        };
        for (int i = 480; i < 488; i++) EEPROM.write(i, rom2[i - 480]);

        // Записываем метку CFG о том что в памяти уже есть значения
        EEPROM.write(500, 'C');
      }
    P.S.: За оригинальный выдал тоже немного правленный мною. Поэтому перезалил именно оригинал 2.0.9 от snmar4enko.
     

    Вложения:

    Последнее редактирование: 21 авг 2018
  2. Dmitrysh

    Dmitrysh Гуру

    Нет не нужна, можно выкинуть.
     
  3. Dmitrysh

    Dmitrysh Гуру

    Это массив инициализации первоначальных значений коэффициентов ПИДов и ограничения мощности, если EEPROM пустой. Сделано для того, чтобы иметь хоть какие-то значения коэффициентов, а не 255 как это бывает при пустом EEPROM.
     
  4. SOLOway

    SOLOway Гуру

    Это, какраз, я понимаю, а вот выделенные пояснения - в них явно неверно вписано: "// PID верха, Kd умноженое на 100, Ki Rd умноженое на 10". Т.е. надо читать: "// PID верха, KP умноженЫЙ на 100, KI и KD умноженЫЕ на 10" - так?
     
  5. Dmitrysh

    Dmitrysh Гуру

    так, просто выделение в блоке кода не работает
     
  6. SOLOway

    SOLOway Гуру

    Dmitrysh, спасибо! Я забыл, что не работает выделение - ведь уже пробовал так :).
    Этот скетч snmar4enko подкупает размером и элементной базой при своем функционале, и 14 профилей радуют...
    А в скетче Roniks59 тоже можно до ума довести, возможно, что некоторые замененные на byte будут некорректно работать, я не проверял...
     
  7. maestro_x

    maestro_x Нерд

    Вот фото...полёт моей фантазии,если что не так не судите строго :)
     

    Вложения:

    texmaster, Нафаня, revolover и 4 другим нравится это.
  8. SOLOway

    SOLOway Гуру

    Привет всем.
    В скетчах, где применена аналоговая резистивная клавиатура, состояние кнопок по умолчанию прописано так:
    Код (C++):
    //состояние кнопок по умолчанию
    int upSwitchState = 0;
    int downSwitchState = 0;
    int cancelSwitchState = 0;
    int okSwitchState = 0;
    Допустимо ли использовать конструкцию:
    Код (C++):
    //состояние кнопок по умолчанию
    boolean upSwitchState = false;
    boolean downSwitchState = false;
    boolean cancelSwitchState = false;
    boolean okSwitchState = false;
    Последнее взято у snmar4enko, он использует дополнительную библиотеку cyberlib. Библиотеку (не правленую им) прилагаю.
     

    Вложения:

  9. Dmitrysh

    Dmitrysh Гуру

    Я думаю можно, должно работать.
     
  10. mrzevs

    mrzevs Нерд

    Потихоньку собираю сабж. Возникло пару вопросов.
    Вот этот код в какой момент времени работает?

    Код (C++):
      //фиксируем размер стола
      case REFLOW_STATE_TABLE_SIZE:
      if (tableSize == 1) {
      digitalWrite(P1_PIN, LOW);
      }
      if (tableSize == 2) {
      digitalWrite(P1_PIN, LOW);
      digitalWrite(P2_PIN, LOW);
      }
      if (tableSize == 3) {
      digitalWrite(P1_PIN, LOW);
      digitalWrite(P2_PIN, LOW);
      digitalWrite(P3_PIN, LOW);
      }
      break;
    Почему то релюхи на него не реагируют (реле живые, переключаются низким уровнем)

    И еще, собрал детектор нуля, его работу как то можно проверить без осциллографа?
     
  11. revolover

    revolover Гик

    Смотря как проверить... можно на готовом устройстве. В идеале осликом на два канала, сличать с синусоидой сети. И оценить, как и когда происходит импульс.
    Он не просто должен работать, а правильно... Я например больше вариантов не вижу, может подскажет кто еще...
     
    SOLOway нравится это.
  12. mrzevs

    mrzevs Нерд

    так а на готовом устройстве как понять, что ZCC работает правильно?)
     
  13. SOLOway

    SOLOway Гуру

    Возможно, косвенно можно судить по поведению графиков на экране ПК, и то, при условии применения низкоинерционных нагревателей (например, ламп накаливания, на время тестов) и измерении температуры непосредственно на них. Хотя, врядли...
     
  14. Dmitrysh

    Dmitrysh Гуру

    Вот, наконец-то свершилось! Нашёлся человек который заметил, что вот этот код
    Код (C++):
    case REFLOW_STATE_TABLE_SIZE:
      if (tableSize == 1) {
      digitalWrite(P1_PIN, LOW);
      }
      if (tableSize == 2) {
      digitalWrite(P1_PIN, LOW);
      digitalWrite(P2_PIN, LOW);
      }
      if (tableSize == 3) {
      digitalWrite(P1_PIN, LOW);
      digitalWrite(P2_PIN, LOW);
      digitalWrite(P3_PIN, LOW);
      }
      break;
    нигде и не работает. Я у себя его заставил работать. Но больше никто и не спрашивал про него, я подумал, что никому и не надо.
     
    SOLOway и mrzevs нравится это.
  15. Dmitrysh

    Dmitrysh Гуру

    Если детектор нуля не работает вообще, то у вас не будет работать ни низ, ни верх.
     
    SOLOway нравится это.
  16. mrzevs

    mrzevs Нерд

    к нагревателям не подключал контроллер, но при запуске пайки на твердотелке загорается светодиод. Сам детектор даже к 220 не подключал еще).

    так как же заставить работать релюхи?)) видимо все реализовывают подключение нагревателей на физических переключателях. Может поделитесь своим скетчем?
     

    Вложения:

    • ZCC.jpg
      ZCC.jpg
      Размер файла:
      324,2 КБ
      Просмотров:
      363
    • zcc.jpg
      zcc.jpg
      Размер файла:
      135,4 КБ
      Просмотров:
      722
  17. Dmitrysh

    Dmitrysh Гуру

    Мой ещё не готов, не дописан новый алгоритм ПИД.
    Скажите какой у вас, я покажу где исправить.
     
  18. revolover

    revolover Гик

    Берете лампу вместо нагревателя, Ставите П, Д = 0 а И - некоторое небольшое значение. Термопару отводите в сторонку. Мощность будет плавно нарастать, следите за мерцанием лампы - анализируйте. Если у вас "диммер" - то будет сначала один импульс в секунду (1%) и так будет нарастать...
     
  19. mrzevs

    mrzevs Нерд

    Сейчас залит скетч от уважаемого revolover, с мелкими правками. Но, практически у всех здесь выложенных, основа одинакова.

    Вообще, интересно, на керамике тут у кого нибудь нормально работает? Или все кварц поставили?)))
     

    Вложения:

  20. revolover

    revolover Гик

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