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

Тема в разделе "Arduino & Shields", создана пользователем Jalnin, 2 ноя 2012.

  1. tssergej

    tssergej Нерд

    Просто мистика какая-то. Сегодня сделал в принципе тоже самое и что раньше- удалил из папки libraries ориг. UTFT и положил вашу - скетч нормально компилируется и загружается в ардуину.
    Правда теперь возникла другая проблема....вместо кирилицы сплошные ????????????????.
    Этот же самый эфект наблюдался когда я пытался в скетче от alfataks изменить хоть что то. Стоило просто удалить к примеру одну букву из меню или изменить цвет шрифта - в итоге вместо кирилицы ??????.
    [​IMG]


    Сейчас проверил ещё раз - стоит хоть что то изменить в скетче (даже в коментариях к коду, а не в самом коде) -вместо кирилицы билиберда. Отмена изменений в скетче проблему не решает. Только загрузка оригинального кода возвращает кирилицу.
    Кто то ещё сталкивался с такой проблемой?

    [​IMG]
     
    Последнее редактирование: 10 июн 2017
  2. m2blit

    m2blit Нерд

    IDE 1.8.2 используете?
    Может что с архивом, упаковал RARом, попробуйте https://yadi.sk/d/gj_4u5BC3JzupN
     
    Последнее редактирование: 10 июн 2017
  3. vector99

    vector99 Гик

    было такое и с дисплеем 20х4. при компиляции с IDE 1.8.2 ошибок нет, а на дисплее белиберда. при компиляции IDE 1.6.3 всё норм. думаю есть там какой то баг!!!
     
    SOLOway нравится это.
  4. vector99

    vector99 Гик

    заморочился сделать микроскоп из школьного микроскопа + вэбка от ноута. может кто чего путнего подсказать, пнуть в нужное русло? а то с кумом бухнул и он мне микроскоп подогнал!!!!!
     
  5. mcureenab

    mcureenab Гуру

    Нужна камера с небольшой матрицей.

    Варианта 2.
    1. Приладить камеру к окуляру. Так можно установить любую камеру с маленьким диаметром передней линзы. Меньше диаметра окуляра.

    2. Удалить из камеры линзы и поместить голую матрицу вместо окуляра в фокусе объектива. Но скорее всего в микроскопе дешёвый объектив и резкое изображение по всей поверхности матрицы не получится.
    Вот например камера для микроскопа.

    http://www.biomed.ru/info/item/91/
     
  6. tssergej

    tssergej Нерд

    Возможно я нечетко описал проблему.Траблы с кирилицей были ещё до того как я использовал библиотеку с поддержкой HX8357B - любое изменение в тексте скетча вызывало некорректное отображение кирилицы.
    Эту проблему я сегодня тоже решил. Всё оказалось банально просто - до этого я загружал код в ардуину с бука и рабочего компа (у обоих локализация немецкая) сегодня с домашнего компа с русской локализацией и кирилица в порядке. Изменение кода тоже не вызывает проблем. Как то всё сложно с ардуиной...слишком много нюансов в которых новичку разобраться очень тяжело.
     
  7. m2blit

    m2blit Нерд

    Смотря для каких целей, микробов разглядывать:). Ноутбучные вебки заторможенные, пробовал штуки 3 от разных ноутов. Я себе для работы собрал на базе фотоувеличителя крокус 4, фокусное расстояние большое.
    IMG-20170301-WA0000.jpg IMG-20170301-WA0001.jpg
    Очень хорошо.
     
  8. mcureenab

    mcureenab Гуру

    Как интересно! Раньше изображение увеличивали до размеров глаза с помощью микроскопической оптики (конечно и сейчас увеличивают). А теперь уменьшают размер электронного "глаза" - сенсора цифровой камеры, и получают такую же детализацию.
     
  9. xakdima

    xakdima Нуб

    Объясните пожалуйста как здесь реализован рост температуры с заданной скоростью, а то я что-то не пойму
     
  10. vector99

    vector99 Гик

    Код (Text):

    //счётчик скорости роста температуры                
          if ((currentMillis - previousMillis) > 4000 / rampRateStep[currentStep - 1])  //seconds counter
           {
            previousMillis = currentMillis;
            counter = counter + 1;
            setpointRamp = counter + startTemp;
            lcd.setCursor(8, 2);
            lcd.print("   ");    
            lcd.setCursor(8, 2);
            lcd.print(setpointRamp);
            lcd.print("  ");
            Setpoint1 = setpointRamp;
           }    

     
    rampRateStep целое число, чем оно больше тем быстрее тикает счётчик
     
    Последнее редактирование: 15 июн 2017
  11. konsys

    konsys Нуб

  12. konsys

    konsys Нуб

    а какое максимальное время тикания? -
    то есть какая самая медленная скорость нагрева?
     
    Последнее редактирование: 2 июл 2017
  13. vector99

    vector99 Гик

    В версии TFT от alfataks сейчас 0,1 градус в секунду, в моей версии 0,25 градуса в секунду.
    Заказал вот такую -113224846-1057113661.jpg
    https://drw.sh/bimifp
    Когда приедет буду пробовать переделывать скетч, таким образом сокращу количество пинов на ардуино.
     
  14. konsys

    konsys Нуб

    Можно ли сделать 1 градус в 30 сек?
    или это будет соответствовать 0,033 градуса в сек?
    есть ли возможность выставить такое значение?
    и если есть, то где7
     
  15. vector99

    vector99 Гик

    За это отвечает вот эта строка
    Код (C++):
    if ((currentMillis - previousMillis) > 4000 / rampRateStep[currentStep - 1])
    А вот как это реализовать зависит от фантазии
     
  16. konsys

    konsys Нуб

    то есть изменяя 4000 я могу получить свое время изменения температуры на 1 градус?
     
  17. vector99

    vector99 Гик

    Менять надо
    Код (C++):
    4000 / rampRateStep[currentStep - 1])
    В моём случае rampRateStep это целые числа, чтоб легче было сохранять в епром память. 4000/1=4000 это соответствует что на 1 градус температура увеличится за 4 секунды, здесь нет точности в 0,25 градуса!
    Если надо 1 градус в 30 секунд то это будет выглядеть примерно так:
    Код (C++):
    if ((currentMillis - previousMillis) > 30000
     
    konsys нравится это.
  18. konsys

    konsys Нуб

    Отлично.
    Теперь понятно.

    ----------------------------------
    Следующий вопрос.
    я хочу испольховать MAX31855 вместо MAX6675

    для этого я в папку lib кидаю папку Adafruit-MAX31855-library-master

    в скетче sketch_TFT-320x480_dimer_V3.ino
    меняю
    Код (C++):
    #include <MAX6675.h>
    на
    Код (C++):
    #include <Adafruit_MAX31855.h>
    далее меняю
    Код (C++):
    MAX6675 thermocouple1(thermoCLK, thermoCS, thermoDO);//термопара "ВЕРХНЕГО" нагревателя
    MAX6675 thermocouple2(thermoCLK2, thermoCS2, thermoDO2);//термопара "НИЖНЕГО" нагревателя
    на
    Код (C++):
    Adafruit_MAX31855 thermocouple1(thermoCLK, thermoCS, thermoDO);//термопара "ВЕРХНЕГО" нагревателя
    Adafruit_MAX31855 thermocouple2(thermoCLK2, thermoCS2, thermoDO2);//термопара "НИЖНЕГО" нагревателя

    далее меняю
    Код (C++):
    myGLCD.print("TFT-LCD 480*320 MAX6675",CENTER, 160);
    на
    Код (C++):
    myGLCD.print("TFT-LCD 480*320 Adafruit_MAX31855",CENTER, 160);

    -- это все? или я еще что-то забыл?
     
  19. vector99

    vector99 Гик

    Можно сделать немного по другому
    Код (C++):
    if ((currentMillis - previousMillis) > 1000)  //seconds counter
           {
            previousMillis = currentMillis;
            counter = counter + rampRateStep[currentStep-1];
            setpointRamp = counter + startTemp;
            lcd.setCursor(8, 2);
            lcd.print("   ");  
            lcd.setCursor(8, 2);
            lcd.print(setpointRamp);
            lcd.print("  ");
            Setpoint1 = setpointRamp;
           }
    Где rampRateStep нужная вам скорость. Только переменные нужно будет объявить как float. И правильно сохранить скорость в епром.
     
    konsys нравится это.
  20. vector99

    vector99 Гик

    konsys нравится это.