Вторник, 26.11.2024, 13:16
Радиосервис - ИЗМАИЛ

Меню сайта

Статистика
Форма входа
Друзья сайта

Форум поддержки программ "Tiny Tools" (CPLD/USB-S/USB-F/USB-SPI EJTAG Tiny Tools)

Электроника на KitPost
Поиск
Наш опрос
Оцените мой сайт
1. Отлично
2. Хорошо
3. Неплохо
4. Ужасно
5. Плохо
Всего ответов: 86
Ссылки по uCoz
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    Модератор форума: Alexandr_  
    Инфракрасная паяльная станция своими руками на ARDUINO
    Alexandr_
    Дата: Среда, 08.02.2017, 19:55 | Сообщение # 1        
    Генералиссимус
    Группа: Администраторы
    Сообщений: 814
    Статус: Offline

    Форумчане, куплю-продажу и личные сделки выяснять в личке, либо в новом форуме, этот форум для вопросов по электронной части станции.

    Архив по станции от hominidae с проектом efimsu ->здесь
    Проект Леонида, Leonid0071 "UNO-MAX6675-PC" и его доработки на форуме Амперки -> скачать

    Люби грешников, ненавидь сам грех!
     

    snmar4enko
    Дата: Вторник, 05.06.2018, 13:30 | Сообщение # 151        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Цитата Cinema ()
    Теперь о грустном:Какой-бы пин я не назначал для верха, при подаче питания, после заставки, начинает моргать, примерно, 2Гц светодиод, подключенный вместо силовой верха.
     в сторону детектора нуля - который подается как прерывание на D2 - смотри - такое уже было, а может только прерывание - спад - фронт, или другое ..... поменяй в программе.
    А еще проще возьми нормальную ардуинку (2 доллара) - а то подпалленная как то стремно -  пока ключи целы!!!!!!


    Сообщение отредактировал snmar4enko - Вторник, 05.06.2018, 13:32
     

    fedorchuk007
    Дата: Среда, 06.06.2018, 08:29 | Сообщение # 152        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    Цитата Cinema ()
    Теперь о грустном:Какой-бы пин я не назначал для верха, при подаче питания, после заставки, начинает моргать, примерно, 2Гц светодиод, подключенный вместо силовой верха.

    Попробуй собрать несколько детекторов нуля,(на pc814 или на 4n25) сам сталкивался с данной проблемой
     

    Cinema
    Дата: Суббота, 23.06.2018, 19:10 | Сообщение # 153        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Хм... Захотел скомпилировать 2.0.9. - Нихрена не выходит :(.
    Использую IDE 1.8.5 или IDE 1.6.3
    Высыпает такой текст:
    
    Код
    C:\Users\DELL\Desktop\REWORK_LCD1602nano\REWORK_LCD1602nano.ino: In function 'void setup()':

    REWORK_LCD1602nano:325: error: no matching function for call to 'LiquidCrystal_I2C::begin()'

       lcd.begin(); //  закомментировать если дисплей без I2C

                 ^

    C:\Users\DELL\Desktop\REWORK_LCD1602nano\REWORK_LCD1602nano.ino:325:13: note: candidate is:

    In file included from C:\Users\DELL\Desktop\REWORK_LCD1602nano\REWORK_LCD1602nano.ino:6:0:

    C:\Users\DELL\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

       void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

            ^

    C:\Users\DELL\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note:   candidate expects 3 arguments, 0 provided

    exit status 1
    no matching function for call to 'LiquidCrystal_I2C::begin()'

    В версии 2.0.5 (с дисплеем без I2C такого не было...
    Так. Разобрался. snmar4enko вспешке забыл пару символов вписать. Должно быть так:
    
    Код
    lcd.begin(16, 2); //  закомментировать если дисплей без I2C
    Мой 1602 завелся только с либой LiquidCrystal_PCF8574.h  и мне пришлось инициализировать подсветку:
    
    Код
    //собщение приветствия
      lcd.begin(16, 2); // закомментировать если дисплей без I2C
    // Для дисплеея спецсимвол Градус целсия ....
      lcd.setBacklight(255);  // включаем подсветки дисплея
      lcd.createChar(0, GC);
      lcd.createChar(1, Th);
      lcd.createChar(2, Bh);


    Добавлено (23.06.2018, 18:23)
    ---------------------------------------------
    Еще поправил циферку здесь (Вместо "8" поставил "9", иначе "Pb+" профиль №1 имел знак "-", относящий его к "Pb-" профилям):
    
    Код
    if (temperatureStep[profileSteps-2]<191) {lcd.print("+");

    Добавлено (23.06.2018, 19:10)
    ---------------------------------------------
    Вот что не понятно:
    Сразу после запуска профиля, в центре верхней строки дисплея идет отсчет температуры, при том, что вместо нагревателей - светики (который вместо НИ - показывает, что НИ работает), а температура от MAX6675-ых  пляшет вокруг 28-29*С.  
    Счетчик этот дощёлкивает до уставки НИ и останавливается на значении уставки НИ, низ отрубается и включается в работу только ВИ.
    И тут никаких счетчиков уже нет - светик ВИ горит, и на экране уже ничего не меняется, кроме как "температура от MAX6675-ых  пляшет вокруг 28-29*С".
    Кто-нибудь может объяснить?


    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Суббота, 23.06.2018, 18:25
     

    Cinema
    Дата: Понедельник, 25.06.2018, 16:30 | Сообщение # 154        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    В архиве скетч, для UNO + LCD2004. Нумерацию выводов сделал в точности как в 2.0.9 у snmarc4enko. Детектор тоже как у snmarc4enko - с трансформатором.
    Из замеченного - нет глюков (подача мощи в IDLE) на выходах на НИ и ВИ, при отсутствии сигналов от детектора нуля.

    Добавлено (25.06.2018, 16:30)
    ---------------------------------------------
    fedorchuk007 У вас ведь тоже скетч 2.0.9? Давайте представим! Мы включили питание контроллера и силовую разом. Режим простоя. По каким-то причинам не приходит сигнал от детектора. А один из нагревателей шпарит не по-детски! - Это в режиме простоя!
    Другая ситуация - счетчик, о котором писАл выше - Отказали нижние ТЭНы. Счетчик после нажатия RUN спокойно отсчитает 150*С и включится ВИ! - Что мы получим? - у нас ведь нет вывода информации на компьютер, у нас нет функций сигнализации о подобных ситуациях!
    В общем, без участия snmar4enko я не могу разрулить это. Может, кто есть, проанализировать, откуда эти баги растут?
    #s3gt_translate_tooltip_mini { display: none !important; }

    Прикрепления: my_IR_lcd2004_R.zip (8.2 Kb)

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    mon
    Дата: Понедельник, 25.06.2018, 19:52 | Сообщение # 155        
    Подполковник
    Группа: Модераторы
    Сообщений: 191
    Статус: Offline

    Цитата Cinema ()
    По каким-то причинам не приходит сигнал от детектора
    Ну так напишите защиту,например:в общем цикле инкремент переменной,а в прерывании её обнуление(куда приходят импульсы от zcd),если она станет больше чем должно наступить следующее прерывание(нужно подобрать константу) выполните событие которое вам нужно: перевести пины в z-состояние,синализация... Да и вообще инициализацию пинов на вывод на те же moc можно сделать после нажатия старт,это гарантирует не включение тенов в простое,как вариант.У меня сделано так:
    Код
    bool ControlCapt(void)//вызывается в основном цикле для проверки наличия импульсов перехода ноля
    {
    if(++Lock_Counter > 20)
    {
    return 0;
    }

    return 1;

    }
        Её вызываю в в функции проверки нажатия кнопок,примерно каждые 70ms,а в прерывании по захвату (у меня туда приходят импульсы 0) ее очищаем Lock_Counter = 0;
    
    Код
    #pragma vector = TIMER1_CAPT_vect
    __interrupt void Timer_Cap(void)
    {
    //------------------------- Прерывание по захвату: ---------------------------
    //прерывание по событию захват
    //В прерывании по захвату вычисляется текущая ошибка фазы: dPh = ICR1 + Delay.
    //Она является входной величиной для PI-регулятора, который служит петлевым фильтром
    //программной PLL: Period [i]= Period[i-1] - Kp * (dPh[i - 1] - dPh[i]) + Ki * dPh[i].
    //Выходной сигнал PI-регулятора представляет собой текущий период таймера 1, который загружается в регистр OCR1A.
    //Таймер работает в режиме очистки по сравнению (CTC), причем TOP = OCR1A.
    //В результате работа таймера оказывается синхронизированной с сетью с точностью до фазы
    //(если точнее, с удвоенной частотой сети). PLL позволяет получить постоянный сдвиг Delay относительно сигнала ZCD,
    // который позволяет скомпенсировать конечную длительность импульса ZCD и задержку срабатывания ZCD.
      //предыдущее значение ошибки фазы:
      static int Spll_Xp = 0;
      //внутреннее представление воздействия (х256):
      static long Spll_Y = HALF_PERIOD_NOM * 256L;//589824
      //vid = ICR1;
      
      Spll_X = ICR1 +(unsigned int)Delay;//вычисление текущей ошибки фазы:
      //vid = (unsigned int)Delay;
      if(Spll_X > Half_Period >> 1) Spll_X = Spll_X - Half_Period - 1;//сдвиг в диапазон ±Half_Period / 2:
      Spll_Y = Spll_Y - (int)(Spll_Xp - Spll_X)* PllKp;  //учет пропорциональной составляющей:
      Spll_Y = Spll_Y + (int)Spll_X * PllKi; //учет интегральной составляющей:
      //ограничение результата:
      if(Spll_Y > HALF_PERIOD_MAX * 256L) Spll_Y = HALF_PERIOD_MAX * 256L;//655360
      if(Spll_Y < HALF_PERIOD_MIN * 256L) Spll_Y = HALF_PERIOD_MIN * 256L;//453632
      //вычисление нового периода:
      Half_Period = Spll_Y >> 8;
      //сохранение предыдущего значения ошибки фазы:
      Spll_Xp = Spll_X;
      //загрузка нового периода:
      OCR1A = Half_Period;
      //коррекция угла открытия триака:
       OCR1B = (long)Half_Period * AngleUp / MAX_ANGLE;
       OCR1C = (long)Half_Period * AngleDn / MAX_ANGLE;
     
    Lock_Counter = 0;//обнуляем счетчик
    }
    Если наступит условие Lock_Counter > 20 ,примерно 1.4сек с момента как нет импульсов 0, прекращаю работу станции и вывожу сообщение.
     

    Cinema
    Дата: Понедельник, 25.06.2018, 20:18 | Сообщение # 156        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    mon, эх, мне бы ваш светлый разум :). Большое спасибо за подсказки!
    Попробую найти людей, которые помогут разобраться с реализацией предложенных вами функций...
    я ещё по-прежнему, словно "с гумызным рылом в калашный ряд!" в кодинге smile

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    snmar4enko
    Дата: Среда, 27.06.2018, 14:56 | Сообщение # 157        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    По поводу LCD1602  на I2c шине - если проблемы -чистим библиотеку и выкачиваем заново, на других форумах уже писалось, что:  только первый символ из надписи на экране пишет, то подсветку не включает и подобное ..... как правило помогает.

    Детектор нуля у меня двухполупериодный, ловлю спад в конце импульса. Он очень короткий и поэтому глюки от его неправильной работы приводят к  ложным включениям нагревателей. Если не удается получить нормальный импульс можно еще параллельно диодам, которые формируют импульс ZCC резисторы 47-200 ком - это сместит импульс в минус и сделает более четким импульс.

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

    Центр верхней строки во время пайки показывает температурную цель к которой стремится нагреватель- правая часть индикатора показывает фактический нагрев. На первом шаге, или на нескольких первых шагах с температурами меньшими заданной температуре низа - цель для низа. Далее включается верх - нагревается до температуры низа - выдерживается на уровне заданное время секунд и приступает к следующему шагу. Далее температурная цель задается для верха.

    Профилей пайки у нас 14. Чтобы одним символом отобразить в одном поле - использую 16 ричную систему:
    1 2 3 4 5 6 7 8 9 A B C D E
    Первые 7 свинцовые - на дисплее знак минус. Следующие профили безсвинцовые - знак плюс. Хотя по логике ошибочка - нужно наоборот знаки.
     

    Cinema
    Дата: Среда, 27.06.2018, 15:13 | Сообщение # 158        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    snmar4enko, приветствую!
    Как раз проблема в том, что без сигнала от ZCC шпарит НИ на D3. Собрано у меня несколько схем ZCC, легко меняю.
    Вторая проблема в том, что при нажатии на "Старт пайки" счетчик градусов начинает отсчет, а фактическая температура скетчем игнорируется - термопара висит в воздухе далеко от нагревателей. Но при этом счетчик этот досчитав до уставки низа, переводит скетч на следующий шаг, т.е. на включение ВИ. Этого ведь не должно быть - фактическая температура значительно ниже перехода на следующий шаг!...
    Остальное понятно, что поправил - я указал выше.

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    Dmitrysh
    Дата: Пятница, 29.06.2018, 09:20 | Сообщение # 159        
    Рядовой
    Группа: Пользователи
    Сообщений: 3
    Статус: Offline

    Цитата Cinema ()
    Как раз проблема в том, что без сигнала от ZCC шпарит НИ на D3. Собрано у меня несколько схем ZCC, легко меняю.

    Если по-быстрому, то можно так поправить
    
    Код
    if((DimmerDOWN < tic) && (!chet)&& (DimmerDOWN!=220)) D3_High;  //управляем выходом
     

    snmar4enko
    Дата: Понедельник, 02.07.2018, 15:38 | Сообщение # 160        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    
    Код
    if((DimmerDOWN < tic) && (!chet)&& (DimmerDOWN!=220)) D3_High;  //управляем выходом
    - и что - на самом деле включаем - а нужно выключать D3_LOW. Или я не про то место вставки кода думаю?

    Но проблемы в основном в отсутствии дружбы детектора нуля и фазового регулятора. Необходимо понимать что мы регулируем фазу открытия симистора следующим образом: полупериод сети - и период регулирования составляет 10милисекунд (одна сотая секунды - 100 гц), мы запускаем таймер на 50 микросекунд, после прерывания по таймеру считаем периоды таймера tic. И получаем их максимум 200. 200*50микросекунд = 10милисекунд - наш полупериод сети. Максимальная мощность нагрузки при меньших  DimmerDOWN. Минимальная мощность при DimmerDOWN=0.
    Но давайте рассмотрим проблемные случаи: основной это когда происходит задержка сигнала датчика перехода через ноль. Получается что даже при низких заданных ПИДом мощностях  и при DimmerDOWN=220 -то есть гарантированом выключении - фактически импульс попадает в следующий полупериод сети - и включает на весь полупериод нагреватель. Так сказать ложные срабатывания даже в режиме ожидания IDLE или настройки...
    Я уже вводил полное выключение
    
    Код
    if (!TopStart) DimmerUP=220;
        else {
          myPID1.Compute();
          DimmerUP=map(Output1,0,200,200,16);
          }
           
    if (!flag) DimmerDOWN=220;
        else {
          myPID2.Compute();
          DimmerDOWN=map(Output2,0,200,200,16);
        }

    И в режиме простоя и настройки не должно срабатывать включение нагрузки. Если все таки низ ложно срабатывает посмотрите в сторону переменной flag.

    Ложные срабатывание в режиме пайки можно откорретировать например так:
    
    Код
    ....
    DimmerUP=map(Output1,0,200,184,16);
    ....
    DimmerDOWN=map(Output2,0,200,184,16);
    ....

    Но эти все манипуляции рекомендую делать после реальной проверки ZCC осциллографом.

    Да и на неопределенный период наверно исчезну .... так что кто возьмется переписывать скетч - я буду не против  - только плиз комментировать  подробно что меняем ...

    Добавлено (02.07.2018, 15:38)
    ---------------------------------------------
    Цитата Cinema ()
    термопара висит в воздухе далеко от нагревателей
    уже вроде бы писали ранее - низ нагреватель должен контачить с термодатчиком низа и плата размещается над нагревателем в 1-1.5 см. Термодатчик можно даже через термопасту. Верхний термодатчик через термопасту к верху платы возле чипа, который паяем. Правильнось регулировки верха получем скоростью нагрева на 1 градус за 2 секунды или медленней.


    Сообщение отредактировал snmar4enko - Понедельник, 02.07.2018, 15:39
     

    dscOlga
    Дата: Понедельник, 02.07.2018, 19:54 | Сообщение # 161        
    Майор
    Группа: Пользователи
    Сообщений: 83
    Статус: Offline

    
    Цитата
    - и что - на самом деле включаем - а нужно выключать D3_LOW. Или я не про то место вставки кода думаю?
    Нет, на самом деле нужно не дать включить.
    Я объясню. Когда у нас нет сигнала с датчика нуля, у нас не работает вот эта часть кода
    
    Код
    void  detect()  // обработка внешнего прерывания.
    {
    D4_Low; D3_Low; //логический ноль на выходы
    RestartTimer1();
    tic=0;       //обнулить счетчик
    chet=!chet; //ЧЕТНОСТЬ ПОЛУВОЛНЫ
    }

    Здесь самое главное строчка сброса таймера. Все дело в том, что у нас сам таймер считает до 255, но обработчик детектора нуля не дает ему считать более 200, потому как 50мкс*200=10мс - полупериод синусоиды сети и время через которое приходит сигнал с датчика нуля и сбрасывает таймер.
    Если сигнала детектора нет и таймер не сбрасывается то он считает до 255 и условие
    
    Код
    if((DimmerDOWN < tic) && (!chet)) D3_High;  //управляем выходом
    срабатывает, т.к переменная tic "перебегает" через барьер DimmerDOWN = 220. А сбрасывается выход уже здесь
    
    Код
    else
      {
        D3_Low;
        D4_Low;
      }
      End

    В итоге на выходе "шлак" бесполезный.
    А почему это происходит только с нижним нагревателем? А потому, что не меняется переменная chet. Она равна нулю, а ноль это полупериод для нижнего нагревателя.
    А если написать как я предложил:
    
    Код
    if((DimmerDOWN < tic) && (!chet)&& (DimmerDOWN!=220)) D3_High;  //управляем выходом
    эта проблема уходит. Это конечно решение "лоховское", но чтобы сильно код не лохматить подойдет.

    Добавлено (02.07.2018, 19:18)
    ---------------------------------------------
    И расскажите как мне вернуть мой нормальный ник, я вошел через яндекс и стал dscOlga

    Добавлено (02.07.2018, 19:54)
    ---------------------------------------------
    

    Цитата
    Минимальная мощность при DimmerDOWN=0.
    Это максимальная мощность.
    
    Цитата
    основной это когда происходит задержка сигнала датчика перехода через ноль. Получается что даже при низких заданных ПИДом мощностях  и при DimmerDOWN=220 -то есть гарантированом выключении - фактически импульс попадает в следующий полупериод сети
    Детектор должен подавать импульс чуть раньше прихода самого нуля. Что собственно и происходит почти во всех ZCC. Ваш код нормально работает.
    
    Цитата
    Я уже вводил полное выключение
    Это не поможет. Я выше писал почему. Если ZCC работает, то без проблем, а вот если нет сигнала то ...
    
    Цитата
    И в режиме простоя и настройки не должно срабатывать включение нагрузки. Если все таки низ ложно срабатывает посмотрите в сторону переменной flag.
    Срабатывают, проблема в таймере.

    А вообще это все ерунда. Если не работает ZCC то и смысла от работы кода нет никакого.

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


    Сообщение отредактировал dscOlga - Понедельник, 02.07.2018, 19:16
     

    Cinema
    Дата: Понедельник, 02.07.2018, 21:45 | Сообщение # 162        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Dmitrysh Я думал, что только мне "везёт" на глюки сайта smile

    Вы правы, что без ZCC глупо работать со скетчем, который на его использование "заточен". Я привел аварийную ситуацию в пример, а не штатную. На днях Alexandr отписывал, что его контроллер от LDZ дал сбой высокой ценовой категории... Ну, и, бережёного, сами знаете :). А у snmar4enko не предусмотрены меры для упреждения подобных катаклизмов, и вроде-бы ничто не предвещало беды, пока она не случилась...
    Я - так вообще, за то, чтоб преднагревателем управлял отдельный контроллер, пускай хоть digispark
    

    , хоть Pro Mini 168. Если преднагреватель плита, чугунная электроконфорка, или воздушные ТЭНы - нет надобности задействовать полный ПИД, ИМХО. А вот для ВИ можно вылизывать прошивку до состояния ограненного бриллианта, и вводить в него "плюшки" и функции защиты, в т.ч. и возможность "отрубить нахрен" НИ. Контроль температуры платы и индикацию её и скорости прироста её уверенно выполнит контроллер ВИ, сможет и направить корректирующий "пинок" - "паузу" контроллеру НИ...

    snmar4enko. Присоединяюсь к словам Dmitrysh - вы действительно очень позитивный, потрясающе трудоспособный человек. Вы генерируете стОящие мысли и к тому же почти мгновенно их реализуете и в железе и в коде! Вы таки принуждаете задуматься, взять в руки измерительные приборы и разобраться, что же в самом деле происходит при работе наших железок :). Прошу вас, если существует такая возможность - не покидайте нас!

    Здесь, на сайте Alexandr есть раздел, позволяющий некоторого рода коммерческую составляющую. Нужно просто им заняться и привести наши проекты к подобающему виду - тема популярная, возможно узлы, готовые модули-контроллеры типа All-in-One с поддержкой обновлений прошивок, ещё какие-то интересные девайсы - будут востребованы, если будет нормальное их описание и доступная стоимость...

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    fedorchuk007
    Дата: Среда, 18.07.2018, 07:55 | Сообщение # 163        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    snmar4enko Нас покинул?
     

    Cinema
    Дата: Воскресенье, 19.08.2018, 20:14 | Сообщение # 164        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    fedorchuk007 Если интерес ещё теплится в вас, предлагаю тестировать немного доработанную и "причёсанную" мною версию скетча 2.0.9. Изменения прописаны в текстовых файлах.Добавлю вложения немного позже, т.к. обнаружил несколько своих ошибок.
    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Вторник, 21.08.2018, 14:46
     

    Cinema
    Дата: Воскресенье, 19.08.2018, 20:25 | Сообщение # 165        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    По поводу резистивной аналоговой клавиатуры и её настройки под скетч, цитирую SOLOway:
    
    Цитата
    На время экспериментов собрал аналоговые кнопки с этого ресурса:
    
    Из-за некоторого разброса номиналов использованных сопротивлений пришлось поправить под себя значения кнопок в скетче, т.к. не
    управлялись 4 из 5 кнопок. Залил скетч с того ресурса в arduino Mega2560
    и в serial-мониторе выяснил реальные значения. В строке
    else if (val < 500) return 4;
    заменил < 500 на < 510, т.к. реально отдавалось значение 506 и
    монитор выдавал, что нажата кнопка 3, у которой строка выглядит так
    else if (val < 800) return 3;
    Архив прилагаю.

    Добавлено (19.08.2018, 20:29)
    ---------------------------------------------
    Прошу в обязательном порядке указывать, какие нагреватели используются при тестировании и где производится установка датчиков - без этих сведений корректно ответить по поводу возможных недоработок будет невозможно, т.к. автор не мог тестировать скетч на всех вариантах и комбинациях конструктивов станций.

    Прикрепления: __arduino_analo.zip (422.7 Kb)

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    Поиск: