Всем привет.

Не буду делать долгие и лирические вступления о том как коротка и жестока судьба бытовой техники. То что еще вчера воспринималось как последнее достижение прогресса, сегодня уже будет привычной частью среднестатистического домохозяйства, а завтра будет просто выброшено на свалку, не смотря на полную работоспособность или в лучшем случае – разобрано на запчасти как донор деталей. Ибо «тут кнопки, а хочу сенсор», и «дизайн совковый» и «нет этой фишки». И ладно если речь идет о какой то китайской микроволновке или чайнике, к которым и привыкнуть то толком не успеваешь из-за их короткого жизненного цикла и пластиковой бездуховности.

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

Что делать?

Правильно! Воскрешать.

Встречайте нашу героиню. Духовка электрическая «Харьков».

image

Для начала короткое знакомство с подопытной:

  • Год выпуска – 1980 (моя ровесница).
  • Мощность – 800 ватт.

И все. Нет ни таймера, ни регулятора температуры или мощности, ни термометра. Вай фая тоже нет, везде искал, честно. Ну нет и все. Ничего нет. Только корпус с ТЭНами и вилка в розетку даже без выключателя. Выпекай как хочешь.

Когда в период моей былой холостяцкой жизни я отрыл в недрах гаражей этот раритет, смахнул ностальгическую слезу и попытался что то в ней приготовить, то до меня стало доходить что при всей своей милой винтажности, этот «генератор пирожков» такой же дружелюбный к пользователю как первый деревянный велосипед 1817 года авторства Карла фон Дреза. В музее посмотреть можно, поумиляться винтажности тоже, но после первой же условной поездки понимаешь что кесарю кесарево, а раритету место в музее, и кататься я буду все таки на современном велике ибо отбивать почки не хочется.

image

Так и тут. При включении этот печко-демон сходу жарил под 400 градусов, убедительно напомнив мне что любая органика при нагревании гарантированно превращается в уголь. И пробная пицца не стала исключением. Не зря в семейных архивах рецепты приготовления пирожков на этой печке более напоминали описание технологических режимов работы доменной печи. Предлагалось разогревать 10 минут, потом вставлять противень с исходниками, далее выпекать Х минут с приоткрытой дверцей, потом У минут с полностью открытой, периодически меняя местами противни. Ибо в 1980 году советская инженерная наука не могла предложить советской женщине иного способа регулировки температуры, кроме как открывая дверцу духовки. Юра Гагарин уже 19 лет как на орбите крутился и наша ядрёная бомба была самая ядрёная, но советские хозяйки все продолжали греть планету духовками «Харьков».

Ладно. Ситуация прояснена, цели поставлены, инструменты наточены. Перейдем к технической части.



Программная составляющая


«Я верю во Единого Отца Вседержителя, Творца неба и земли, видимым же всем и невидимым. Имя богу моему Ардуино. Аминь.»

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

Перед нами стоит следующая задача. Необходимо реализовать следующие функции в контроллере духовки:

  • таймер — задание времени работы нашей программы;
  • термостат — задание и поддержание температуры на определенном уровне;
  • звуковая сигнализация первого выхода на заданную температуру — момент когда пора пироги ставить;
  • звуковая сигнализация окончания программы — момент когда пора пироги доставать;
  • визуальная индикация режимов работы — что бы понимать что происходит в данный и еще это просто красиво. Индикаторов два – включена программа и включен тэн.
  • отображение оставшегося времени работы. Что бы понимать когда пора выделять желудочный сок.

Пошерстив свитки мудрецов на ардуинофорумах, с божьей помощью был сотворен следующий говнокод. Критика не принимается. Кто будет критиковать, тот не получит пирогов.

Скетч
    /*
    d6 - светодиод режима работы (желтый)
    d7 - реле тэна (желтый) и светодиод режима нагрева (фиолетовый) 
    d8 - пищалка
    d9 - ce (экран) (белый)
    d10 - rst (экран) (коричневый)
    d11 - dc (экран) (черный)
    d12 - din экран (зеленый)
    d13 - clk экран (розовый)
    gnd - bl экран (к gnd)
    a0 - кнопка валкодера (серый)
    a1 - вход валкодера (оранж)
    a2 - вход валкодера (голубой)
    a4 - вход термистора. резистор 10 к между а4 и +5. термистор между - и а4
    vcc - питание (красный)
    gnd - земля (синий)
  */    
    
    #include <Adafruit_GFX.h>
    #include <Adafruit_PCD8544.h>
    #include <EEPROM2.h>
    #include <SPI.h> 


    volatile byte seqA = 0;
    volatile byte seqB = 0;
    volatile byte cnt1 = 0;
    volatile byte cnt2 = 0;
    volatile int Temp = 150; // температура по дефолту
    volatile int Time = 30; // время работы по дефолту
    boolean heat = false;
    boolean work = false;
    boolean first_heat;
    volatile boolean right = false;
    volatile boolean left = false;
    volatile boolean button = false;
    long previousMillis = 0;
    int temp_count;
    long time_ost;
    long time_millis;
    
    byte menuitem = 1; //при включении отобразится пункт меню 1  
    byte page = 1; // и страница 1
        
    unsigned long heatMillis = 0;

    #define RT0 10000   // Ом
    #define B 3950      // K
    #define VCC 5    //Напр-е питания
    #define R 10000  //R=10 КОм
    float RT, VR, ln, TX, T0, VRT, temp_izmer, temp_itog;
    
    Adafruit_PCD8544 display = Adafruit_PCD8544(13, 12, 11, 9, 10);

    //**************************************************************************************************
    void setup() {//*************************************************************************************
    //***************************************************************************************************
    Serial.begin(115200);
         
    pinMode(A0, INPUT); 
    pinMode(A1, INPUT);
    pinMode(A2, INPUT);
    pinMode(A4, INPUT);
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(LED_BUILTIN, OUTPUT);

    digitalWrite(A0, HIGH);   //валкодер
    digitalWrite(A1, HIGH);    //валкодер
    digitalWrite(A2, HIGH);    // валкодер
    digitalWrite(6, LOW); //светодиод состояния работы
    digitalWrite(7, HIGH);  //реле тена
    digitalWrite(8, LOW);  //пищалка

    T0 = 25 + 273.15;                 //Температура T0 из даташита, преобразуем из цельсиев в кельвины
     
    PCICR =  0b00000010; // 1. PCIE1: Pin Change Interrupt Enable 1
    PCMSK1 = 0b00000111; // Enable Pin Change Interrupt for A0, A1, A2

    // Initialize LCD
    display.setRotation(2); // Set LDC orientation
    display.begin(60);      // Set LCD contrast
    display.clearDisplay(); // Clear display
    display.display();      // Apply changes

    
    Temp = EEPROM_read_byte(0);
    Time = EEPROM_read_byte(3);
    sei();
    }


    //************************************************************************************************
    void loop() {//**********************************************************************************
    //************************************************************************************************

    //начинаем отсчет времени  
    unsigned long currentMillis = millis();

    // первое главное меню*****************************************************************************
    if (page==1) {
    display.setTextSize(1);
    display.clearDisplay();
    display.setTextColor(BLACK, WHITE);
    display.drawFastHLine(0,0,83,BLACK);
    display.drawFastHLine(0,47,83,BLACK);
    display.drawFastVLine(0,0,47,BLACK);
    display.drawFastVLine(1,0,47,BLACK);
    display.drawFastVLine(2,0,47,BLACK);
    display.drawFastVLine(3,0,47,BLACK);
    display.drawFastVLine(4,0,47,BLACK);
    display.drawFastVLine(83,0,83,BLACK);
    
    display.setCursor(5, 2);//первый нукт меню
    if (menuitem==1) { 
    display.setTextColor(WHITE, BLACK); //выделяем инверсией активный пункт меню
    display.drawFastHLine(0,1,83,BLACK);  //*************************
    }     
    else {display.setTextColor(BLACK, WHITE); //если не пункт не активный то без инверсии
    }                  
    display.print(" TEMP        ");
    
    display.setCursor(5, 14);
    if (menuitem==2) {
    display.setTextColor(WHITE, BLACK);
    display.drawFastHLine(0,13,83,BLACK);
    }
    else {display.setTextColor(BLACK, WHITE);}    
    display.print(" TIME        ");

    
    if (menuitem == 3) { 
    display.setTextColor(WHITE, BLACK);
    display.drawFastHLine(0,25,83,BLACK);
    }
    else {
    display.setTextColor(BLACK, WHITE);
    }  
    display.setCursor(5, 26);
    display.print(" START:   ");
    if (work) {
    display.print("ON ");
    }
    else {
    display.print("OF ");
    }
    
    display.setCursor(5, 38);
    if (menuitem==4) { 
    display.setTextColor(WHITE, BLACK);
    display.drawFastHLine(0,37,83,BLACK);
    }
    else {display.setTextColor(BLACK, WHITE);}    
    display.print(" INFO        ");
    
    if (left) {
    left = false;
    menuitem--;
    if (menuitem==0) {
    menuitem=1;
    }      
    
    }
    
    if (right) {
    right = false;
    menuitem++;
      
    if (menuitem==5) {
    menuitem = 4;      
    }    
    }
    display.display();
    
    if (button) {
    button = false;
    digitalWrite(8, HIGH);
    delay (50);  // одновременно и антидребезг и продолжительность звуковой индикации
    digitalWrite(8, LOW);
    
        
    if (page == 1 && menuitem==1) {
    page=3;
    }

    else if (page == 1 && menuitem==2) {
    page=4;
    }

    else if (page == 1 && menuitem==4) {
    page=5;
    }

    //включение режима работы********************************************************************************
    else if (menuitem == 3 && page == 1) {
    if (work) { 
    work = false;
    digitalWrite(6, LOW); // выключаем светодиод работы 
    }
    else {
    heatMillis = currentMillis;
    work = true;
    first_heat = true;
    digitalWrite(6, HIGH);  // включаем светодиод работы 
    } 
    }
    
    }
    }
      

    //первый нункт меню (температура)***************************************************
    if (page==3) {
    display.setTextSize(1);
    display.clearDisplay();
    display.drawFastHLine(0,0,83,BLACK);
    display.drawFastHLine(0,1,83,BLACK);
    display.drawFastHLine(0,47,83,BLACK);
    display.drawFastVLine(0,0,47,BLACK);
    display.drawFastVLine(83,0,83,BLACK);
    display.drawFastVLine(82,0,10,BLACK);
    display.drawFastVLine(81,0,10,BLACK);
    display.drawFastVLine(80,0,10,BLACK);
    display.drawFastVLine(79,0,10,BLACK);
    display.setTextColor(WHITE, BLACK);
    display.setCursor(1, 2);
    display.print("     Temp    ");
    display.drawFastHLine(0,10,83,BLACK);
    display.setTextColor(BLACK, WHITE);
    display.setCursor(26, 12);
    display.print("Degree");
    display.setTextSize(3);
    if (Temp >=100) {
    display.setCursor(16, 23);
    }
    else {
    display.setCursor(27, 23); 
    }
    
    display.print(Temp);
    if (left) {
    left = false;
    Temp--;
    }
    if (Temp==49) {
    Temp=50;
    }
      
    if (right) {
    right = false;
    Temp++;
    }
    if (Temp==251) {
    Temp=250;
    }
    if (button) {
    digitalWrite(8, HIGH);
    delay (50);
    digitalWrite(8, LOW);
    button = false;
    page=1;
    EEPROM_write_byte(0, Temp);
    }
    display.display();
    }



    //второй нункт меню (время)***************************************************************************
    else if (page==4) {
    display.setTextSize(1);
    display.clearDisplay();
    display.drawFastHLine(0,0,83,BLACK);
    display.drawFastHLine(0,1,83,BLACK);
    display.drawFastHLine(0,47,83,BLACK);
    display.drawFastVLine(0,0,47,BLACK);
    display.drawFastVLine(83,0,83,BLACK);
    display.drawFastVLine(82,0,10,BLACK);
    display.drawFastVLine(81,0,10,BLACK);
    display.drawFastVLine(80,0,10,BLACK);
    display.drawFastVLine(79,0,10,BLACK);
    display.setTextColor(WHITE, BLACK);
    display.setCursor(1, 2);
    display.print("     Time    ");
    display.drawFastHLine(0,10,83,BLACK);
    display.setTextColor(BLACK, WHITE);
    display.setCursor(22, 12);
    display.print("Minutes");
    display.setTextSize(3);
    if (Time >=10) {
    display.setCursor(27, 23);
    }
    else {
    display.setCursor(38, 23); 
    }
    display.print(Time);
    if (left) {
    left = false;
    Time--;
    }
    if (Time==0) {
    Time=1;
    }
      
    if (right) {
    right = false;
    Time++;
    }
    if (Time==61) {
    Time=60;
    }
    if (button) {
    digitalWrite(8, HIGH);
    delay (50);
    digitalWrite(8, LOW);
    button = false;
    page=1;
    EEPROM_write_byte(3, Time);
    }
    display.display();
    }


     //четвертый нункт меню (панель состояния)***********************************************************
    else if (page==5) {
    display.clearDisplay();
    display.setTextColor(BLACK, WHITE);
    display.setTextSize(1);
    display.drawFastHLine(0,0,83,BLACK);
    display.drawFastHLine(0,47,83,BLACK);
    display.drawFastVLine(0,0,47,BLACK);
    display.drawFastVLine(83,0,83,BLACK);
    display.setCursor(3, 5);
    display.print("TEMP_UST:");
    display.setCursor(64, 5);
    display.print(Temp);
    
    display.setCursor(3, 20);
    display.print("TEMP_TEK:");
    display.setCursor(64, 20);
    display.print(temp_itog, 0);

    display.setCursor(3, 35);
    display.print("TIME_OST:");
    display.setCursor(64, 35);
    display.print(time_ost);

        
    if (button) {
    digitalWrite(8, HIGH);
    delay (50);
    digitalWrite(8, LOW);
    button = false;
    page=1;
    }
    display.setTextSize(2);
    display.display();
    }

    //вычисляем оставшееся время*********************************************
    if (work) {
    time_millis = Time * 1000;
    time_millis = time_millis * 60;
    
    time_ost = ((time_millis) - (currentMillis - heatMillis));
    time_ost = time_ost/1000;
    time_ost = time_ost/60;
    }
    else {
    time_ost = 0;
    }

    //опеределяем время окончания*******************************************
    if (((currentMillis - heatMillis) > time_millis) && (work)) {
    work = false;
    digitalWrite(6, LOW);  // выключаем светодиод работы
    digitalWrite(8, HIGH);// подаем сигнал
    delay (1000);
    digitalWrite(8, LOW);
    delay (500);
    digitalWrite(8, HIGH);
    delay (1000);
    digitalWrite(8, LOW);
    delay (500);
    digitalWrite(8, HIGH);
    delay (1000);
    digitalWrite(8, LOW);
    }
    
    //измерение температуры*************************************************
    if (currentMillis - previousMillis > 500) {
    previousMillis = currentMillis; 
    VRT = analogRead(A4);              //Считываем аналоговое значение VRT
    VRT = (5.00 / 1023.00) * VRT;      //Преобразуем в напряжение
    VR = VCC - VRT;
    RT = VRT / (VR / R);               //Сопротивление RT
    ln = log(RT / RT0);
    TX = (1 / ((ln / B) + (1 / T0))); //Температура с термистора
    TX = TX - 273.15;                 //Преобразуем в цельсии
    temp_count++;
    temp_izmer = temp_izmer + TX;
    }

    if (temp_count == 10) {
    temp_itog = temp_izmer/10;
    temp_count = 0;
    temp_izmer = 0;
    }

     // сравнение текущей и заданной температуры**********************
    if (temp_itog < (Temp - 1)) {   // гистерезис
    heat = true;
    }
    if (temp_itog > (Temp + 1)) {
    heat = false;
    
    if (first_heat) {   // при первом достижении рабочей Т подаем сигнал
    first_heat = false;
    digitalWrite(8, HIGH);// подаем сигнал
    delay (200);
    digitalWrite(8, LOW);
    delay (300);
    digitalWrite(8, HIGH);
    delay (200);
    digitalWrite(8, LOW);
    delay (300);
    digitalWrite(8, HIGH);
    delay (200);
    digitalWrite(8, LOW);
    }
    
    }

    

    //включение тена*****************************************************
    if ((work) && (heat)) {
    digitalWrite(7, LOW);  // включаем тен
    digitalWrite(5, HIGH);  // включаем светодиод тена
    }
    else {
    digitalWrite(7, HIGH);  // выключаем тен
    digitalWrite(5, LOW); // выключаем светодиод тена
    }


    // контроль перегрева или обрыва датчика********************************************
    if ((temp_itog < 0) || (temp_itog > 250)) {
    digitalWrite(8, HIGH);// подаем сигнал
    delay (500);
    digitalWrite(8, LOW);
    delay (500);
    }
    
    }

    // обработка прерываний валкодера ******************************************************************
    ISR (PCINT1_vect) {

    // If interrupt is triggered by the button
    if (!digitalRead(A0)) {
    button = true;
    }
    else {    // Else if interrupt is triggered by encoder signals
    boolean A_val = digitalRead(A1);   // Read A and B signals
    boolean B_val = digitalRead(A2);
    
    // Record the A and B signals in seperate sequences
    seqA <<= 1;
    seqA |= A_val;
    
    seqB <<= 1;
    seqB |= B_val;
    
    // Mask the MSB four bits
    seqA &= 0b00001111;
    seqB &= 0b00001111;
    
    // Compare the recorded sequence with the expected sequence
    if (seqA == 0b00001001 && seqB == 0b00000011) {
    cnt1++;
    left = true;
    }
     
    if (seqA == 0b00000011 && seqB == 0b00001001) {
    cnt2++;
    right = true;
    }
    }
    }


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

Меню состоит из 4 пунктов: «TEMP», «TIME», «START» и «INFO». Что за что отвечает, думаю ясно из фото. При необходимости можно остановить программу, добавить или убавить время или температуру и вновь продолжить.

image

Естественно, наши настройки сохраняются в энергонезависимой памяти.

Так же была добавлен контроль перегрева духовки и контроль обрыва или порчи термодатчика. При выходе температуры за 250 градусов (залипание реле или какой то неучтенный сбой) или падении температуры ниже нуля (обрыв датчика, в обрыве он показывает – 270 градусов) будет тревога.



Аппаратная составляющая


Для реализации описанного выше функционала нам потребуются следующие компоненты:

  • Блок питания 220 – 5 вольт, выдранный из какой то зарядки. Питает всю электронику.
  • Arduino pro mini. Кремниевый супермозг, отвечающий за управление нашим детищем.
  • Экран монохромный Нокия 5110, разрешением 84*48 точек с небольшой доработкой. Отображает пункты меню, позволяя настраивать температуру, время, включать программу на исполнение и просматривать текущие параметры в процессе работы.
  • Энкодер (он же валкодер, он же крутилка). Позволяет в интуитивной форме управлять меню настроек и требует всего одно отверстие в панели управления.
  • Реле. Самое обычный модуль реле на 10 китайских ампер. Даже без опторазвязки. Да, риск мое второе имя.
  • Термистор в качестве датчика температуры. Когда то мной был выломан из какого то устройства неопознанный термодатчик на резьбе, лежал без дела, теперь стал востребован. Тестирование показало что внутри обычный NTC термистор на 10 ком. То есть все более чем просто и паспортный предел температуры в 250 — 300 градусов соответствует моим задачам. Для уверенности сделал пробный стенд из термистора и цифрового датчика DS18B20. До 100 градусов показывали ноздря в ноздрю и точность более чем избыточная. Любо!
  • Световая индикация – пара оранжевых светодиодов. Звуковая индикация — активная пьезопищалка.

image

Для пущей атмосферности, необходимо допилить экран. По умолчанию, экранчики Нокии 5110 идут или с белыми или с ярко-синими светодиодами подсветки. Белые светодиоды не соответствую запланированному внешнему стилю, а синие вырвиглазные светодиоды будто призваны провоцировать приступы эпилепсии у пользователей и вообще есть творение сатаны, призванные способствовать скорейшему пришествию Антихриста. Выпаиваем и на костер их. Pater noster. Amen.

Далее берем оранжевые smd светододы, призванные имитировать олдскульные лампочки накаливания и впаиваем их вместо штатных, предварительно сняв металлический ободок экрана и сам ЖК экран под ним. Теперь все по фен-шую.

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

image



Железная составляющая


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

Снимаем заднюю панель, отогнув 4 крепежных ушка, что бы добраться до задней стенки внутренней полости печки. Вынимаем слой оружия массово поражения под названием «стекловата». Посредине задней стенке внутренней полости сверлим отверстие по размеру стержня термистора, вставляем термистор, закручиваем гайку, выводим провода под корпус, выковыриваем остатки стекловаты, вместо нее напихиваем базальтовую вату и собираем обратно.

Далее готовим панель управления, элементы ручек и трафареты для декора. Никакого пластика, только металл. Так как я не умею чертить в Автокаде, то необходимые мне детали рисую в Фотошопе и конвертирую в dwg формат через какой то облачный сервис. Да, я извращенец, я знаю, мне нравится. Отдаем чертежи на лазерную порезку.

image

Привариваем приборную панель на запланированное место. Довариваем по бокам недостающие треугольнички, шпатлюем и зачищаем место сварки, максимально создавая видимость сплошной детали. На приборной панели 4 прорези – место под экран, место под энкодер с отверстиями для светодиодов под крутилкой «для красоты» под крутилкой, и фигурные прорези для индикаторов работы и нагрева. Панель из стали толщиной 2 мм, что бы не мало было. «Вес это надежно». Борис Бритва.

Почтенный возраст духовки и многолетнее нахождение в негуманных условиях не могли не оставить следов на ее корпусе. Имели место царапины краски, мелкие вмятинки и очаги коррозии. Одеваем на болгарку щетку-крацовку и максимально зачищаем. Шпатлюем вмятины и дефекты автомобильной шпатлевкой. Снова зачищаем. Обезжириваем.

image

Далее по покраске. Я не нашел в своей местности возможности заколорировать пентафталевую эмаль в цвета на выбор, посему выбирал из доступных готовых цветов. Была выбрана слоновая кость для основного цвета корпуса и фисташковая для элементов декора корпуса.

Красим, косячим, материмся, убираем потеки, перекрашиваем, опять косячим, клянемся больше никогда не морочиться с подобным, а просто мирно бухать как все нормальные мужики, успокаиваемся, снова красим, остаемся довольны. Ждем неделю пока краска точно высохнет.

image

Пока сохнет печка, варим в кучу крепления для запирающей ручки двери, чертим эскиз деревянных ручек и отдаем токарю. Красим уже сами ручки и оставляем на просушку. Красим ручку энкодера и металлическую накладку на корпусе экрана.

image

image

После полного высыхания корпуса, накладываем трафареты и красим уже фисташковой краской.

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

Наклеваем. Красим. Восхищаемся.

image

Далее собираем все в кучу – устанавливаем экран, энкодер и ручку энкодера. Из ошкуренного оргстекла делаем рассеиватели для индикаторов режимов работы и клеим их снизу приборной панели. Протягиваем и паяем провода модулей и устанавливаем сетевой разьем питания с клавишей включения. Сверлим и устанавливаем держатели для деревянных ручек. На изнанку указателя Open-Close клеим фетр, что бы ручка при вращении не царапала поверхность дверцы.

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

image

image

image

1. Почему алгоритм поддержания температуры такой тупой, а не PID?

Потому что просто нет необходимости. За стандартную программу работы, 30-40 минут, температура печки всего пару раз переходит целевую точку. Печка небольшая, неплохо утеплена, остывает медленно. PID алгоритму банально негде развернуться. Небольшая температурная инерция имеет место всего один раз при первом наборе температуры и перехлест составляет порядка 20 градусов, что совсем не принципиально для выпечки и удобно нивелируется открыванием дверки в этот момент для закладки противня. Для этого и звучит сигнал выхода на рабочую температуру. Следующая итерация вообще происходит в диапазоне порядка +- 2 градуса.

2. Почему реле, а не симистор и почему не ШИМ?

Все потому же. Симисторы люблю и готовить их умею, но хоть ты тресни не считаю необходимым их пихать в девайс, в котором за полчаса работы реле щелкает аж четыре раза. И при 800 ват мощности, то есть трех амперах тока даже в китайском реле будет достаточный запас прочности. А ШИМу тут вообще нечего делать, не тот уровень устройства. Да и реле это душевно и лампово, а симистор то высокомерие и гордыня. Да и хозяйка более чем довольна, а это и была стратегическая цель. Короче, все.

3. Что еще планируется?

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

image

За сим разрешите откланяться, ушел пироги тестировать. Привіт з України.

Комментарии (112)


  1. Dvlbug
    07.11.2018 19:29
    +1

    Одно из немногих статей про Ардуино, в которой нет метеостанции))

    PS. Хозяйка не замужем? ;) Только ради этого и был написан комментарий.


    1. sidristij
      08.11.2018 10:55
      +1

      Скорее даже так: а жена не замужем, случаем? :)


    1. SpiritEagle
      08.11.2018 12:55

      Ну, теоретически, если выставить духовку на балкон с приоткрытой дверцей и вывести на экран температуру с датчика, то вполне себе и может послужить метеостанцией :-).
      А автор молодец — очень полезная статья лично для меня, да и, думаю, для многих, кто интересуется Arduino.


      1. sim31r
        08.11.2018 15:32

        С закрытой дверцей будет среднесуточную температуру показывать, иногда полезно, для управления котлом например ))


  1. skymal4ik
    07.11.2018 19:37

    Очень круто и стильно! Мотивирует создать что-то своё, более осязаемое, чем чистый софт))

    Ps над светодиодами ничего нету? Я бы поставил матовое стекло, чтобы подсветка более равномерной была


    1. Konstacio Автор
      08.11.2018 19:32

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


  1. Andy_Big
    07.11.2018 19:47
    +1

    Я бы вместо «OPEN-CLOSE» написал бы «ОТКР-ЗАКР» :)


    1. u010602
      08.11.2018 03:13

      Напомнило жуткие красные надписи трафаретом на стенах в бассейне — «ЗАКРОЙ КРАН!». Нет уж лучше «OPEN-CLOSE».


    1. gban
      08.11.2018 16:08
      +5

      «С газом» и «Без газа» :)


    1. CKOPOCTb
      08.11.2018 20:34

      ПОРОШОК НЕ ВХОДИ!


      1. Lucidus
        09.11.2018 08:55
        +1

        ПИРОЖОК НЕ ВХОДИ!


      1. s60
        09.11.2018 11:40
        +1

        ПОРОШОК УХОДИ
        image


  1. vlreshet
    07.11.2018 19:47

    Блин, очень круто!) Кстати, давно хочу сделать похожую вещь, и ардуино даже есть, но не хватает знаний в плане электроники. Может немного подскажете, если не сложно? Задача: есть китайская бутербродница, без какой-либо электроники, тупая до безобразия: стоят спирали, стоит «кнопка» которая нажимается когда бутербродницу закрываешь. После достижения нужной температуры «кнопка» должна отключаться. Но, видимо, что-то в этой конструкции не так, потому что термопредохранитель на 220 градусов я менял уже трижды. Поэтому хочется сделать «умную» бутербродницу — с ручным заданием температуры и временем работы. Вопрос — какой датчик температуры целеобразно использовать (в связке с ардуино)? Температура работы — ну градусов до двухсот, не больше.


    1. Andy_Big
      07.11.2018 20:09

      Если задача — именно довести до ума бутербродницу, а не повозиться с ардуинами, то может быть проще будет купить готовый термостат? :) Типа такого — www.aliexpress.com/item/Free-Shipping-PID-digital-Temperature-Control-Panel-REX-C100-for-BGA-rework-station/1920308843.html
      К нему термопару для мультиметра (K-типа) и твердотельное реле :)
      Если же хочется самому на ардуине, то выбор термодатчика, в общем-то, очевиден — термистор (например, один из используемых в 3D-принтерах, они продаются на каждом углу и в Китае и у нас).


      1. Ig_B
        07.11.2018 20:15

        С ардуиной можно использовать модули на MAX31855 или MAX6675 с термопарой типа К.


        1. Andy_Big
          07.11.2018 20:24

          Можно, но зачем? Термистор — наиболее простое решение с достаточной для этих целей точностью :)


          1. Ig_B
            07.11.2018 20:26

            Термистор отпаяется в печке.


            1. Andy_Big
              07.11.2018 20:30

              Для принтеров они вроде с приваренным высокотемпературным проводом идут :)


              1. Konstacio Автор
                08.11.2018 19:33

                так точно )


      1. vlreshet
        08.11.2018 10:09

        Чтобы просто довести её до ума нужно поменять ту «кнопку», которая, судя по всему, не отстреливает после нужной температуры, и допускает сгорание предохранителя. Но это же не интересно) Что я, зря ардуину покупал? :D За советы спасибо)


  1. semmaxim
    07.11.2018 19:52

    Хм, а почему надписи на бусурманском?


    1. Ig_B
      07.11.2018 20:03

      Не все, вместо «TEMP_SET» там «TEMP_UST»…


    1. vortexteam
      07.11.2018 23:47
      -1

      Этот вопрос всех походу коробит…


  1. robux
    07.11.2018 20:27
    +1

    Дивчине косынку надень (в том числе по санитарным нормам).
    И ещё замени механическое реле на твердотельное.
    А так, молодец )


    1. tormozedison
      07.11.2018 23:47

      Не на твердотельное, а на контактор с мостиковыми контактами. Он не залипнет.


      1. Andy_Big
        08.11.2018 01:18

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


        1. sim31r
          08.11.2018 02:38
          +2

          Иногда щелкание и полезно, индикация что работает всё хорошо.


          1. Andy_Big
            08.11.2018 11:00

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


            1. sim31r
              08.11.2018 15:30

              У меня 3D принтер, стол нагревается от грелки силиконовой на 220В, мощность 300Вт. Вот, когда отправляю на 3D принтер щелчок включения первый признак что всё в порядке. Там чуть громче нажатия клавиши клавиатуры. Плюс когда принтер завис, или сам вручную послал команду прогрева стола (типа заранее прогрею и на минуту быстрее напечатаю всё), а потом забыл, щелкание признак того что устройство зря стоит нагретым. Даже купил электронное реле, но лень менять привык к механическому реле ))


              1. Andy_Big
                08.11.2018 17:49

                У меня тоже принтер, стол греется от 12 вольт (около 360 Ватт) ШИМом через мощный MOSFET. Сама плата принтера тоже коммутирует стол транзистором, но менее мощным, что-то около 150 Ватт в оригинальной конструкции. Не испытываю никаких неудобств от отсутствия щелчков :)

                Там чуть громче нажатия клавиши клавиатуры.

                Вы слышали как срабатывают предлагаемые в том комментарии контакторы? Я Вас уверяю — если бы у Вас в принтере стоял контактор, Вы бы очень быстро поставили купленное электронное реле вместо него :)
                К тому же механические реле (китайские) — менее надежная штука чем твердотельные реле (тоже китайские).


                1. sim31r
                  09.11.2018 00:39

                  Твердотельное реле может пробиться даже в выключенном состоянии, от мощной сетевой помехи. Реле или не включится (если обмотка реле сгорит) или залипнет после включения под минимальным наблюдением.
                  Реле работает не на индуктивную нагрузку, износ минимальный. В обогревателях биметалические пластинки могут более 10 лет работать, на токах существенно больших.
                  А если реализовывать ШИМ, то, конечно, только электронное реле применимо.


                  1. Andy_Big
                    09.11.2018 01:07

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

                    Может, но шансов на это меньше, чем у китайского реле — залипнуть :) Вот если реле от какого-нить Omron, тогда другое дело. У меня 8 из 10 реле условного «ДжиньШунь» отказали в течении года, при том, что коммутировали они вообще сигнальные линии. А вот штук 8 твердотельников того же условного «СяньМинь» (но с гордой надписью OMRON, конечно же) работают уже пару лет.


                    1. sim31r
                      09.11.2018 01:26

                      А с какой частотой коммутировали линии? Если 1-2 раза в секунду, то мало какое реле долго проживет. Может во включенном состоянии долго были, а обмотка рассчитана на меньшее напряжение или бракованная и перегревается. В моем случае включения редки, как и нахождение во включенном состоянии, практически идеальный режим работы для реле.


                      1. Andy_Big
                        09.11.2018 02:52

                        Включение-выключение — несколько раз в день, может быть 20-50. Во включенном состоянии могли и долго находиться, до одного часа. Реле герметичные слаботочные, обмотка на 5 вольт запитывалась примерно 4.8 вольтами, ток около 40 мА. Но с обмоткой все нормально, выходили из строя контактные группы — большинство переставали замыкать, а остальные залипали, причем точно не из-за нагрузки — они коммутировали единицы миллиампер при 3-5 вольтах :)
                        Где-то у меня так и лежат несколько пеналов по 25 штук этих реле, потому что после того как почти все девайсы с ними вернулись по гарантии, я перешел на такие же реле от Omron. Вот с ними за 5 лет ни одной проблемы :)


        1. tormozedison
          08.11.2018 06:56

          Так напрямую не обязательно, можно через промежуточное реле.


  1. Iv38
    07.11.2018 20:54
    +3

    Ин совьет раша pirogi готовили в домашних муфельных печах.
    Отличная работа!


  1. iig
    07.11.2018 21:59

    Результат эстетически прекрасен. Программа не очень, но это и не особо важно, добавлять туда особо нечего. Хотя, если захочется добавить, к примеру, менюшку с предустановленными настройками для эклеров, тут захочется и pid-регулятор, и половину кода переписать..


  1. xFFFF
    07.11.2018 23:42
    +1

    Девушка очень красивая)))


  1. maksimrep
    07.11.2018 23:47
    +1

    Шикарно! У меня такая. Когда съезжал от родителей на свою съемную квартиру, на чердаке откопал сие чудо что бы печь пироги. Тогда, я ее всю почистил от ржавчины и покрасил жаростойкой краской, теперь видимо еще и апгрейт сделаю))). Кстати, кому интересно, буквально на днях делал в ней коржи для торта =D


    1. kvazimoda24
      08.11.2018 00:22

      Вы про девушку или духовку? :)


      1. Stas911
        08.11.2018 05:21

        Да!


  1. USBLexus
    08.11.2018 01:53

    Но что делать, когда речь идет о вещи, которая помнит несколько поколений твоей семьи и с детства была для тебя воплощением домашнего уюта, бабушкиных вкусностей и всего самого «лампового»


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


  1. alakond
    08.11.2018 02:02

    «Схема подключения» энкодера странная. Вы GND с VCC нигде не перепутали?


    1. Konstacio Автор
      08.11.2018 19:36

      Вроде нет. Работает нормально.


      1. alakond
        08.11.2018 19:56

        Проверьте ещё раз ) По вашей схеме на энкодер подается только GND. VCC никак не подается. Не будет кнопка энкодера работать без подтяжки к VCC.


        1. sim31r
          09.11.2018 00:41
          +1

          Там Pull Up резисторы включены встроенные в микроконтроллер:

          pinMode(A0, INPUT);
          pinMode(A1, INPUT);
          pinMode(A2, INPUT);
          pinMode(A4, INPUT);

          digitalWrite(A0, HIGH); //валкодер
          digitalWrite(A1, HIGH); //валкодер
          digitalWrite(A2, HIGH); // валкодер


    1. Andy_Big
      08.11.2018 19:57
      +1

      Если входы контроллера подтянуты внутри к питанию (Pull-UP), то вполне нормальная схема :)


  1. sim31r
    08.11.2018 02:50

    if (temp_itog > (Temp + 1)) {
    heat = false;
    if (first_heat) { // при первом достижении рабочей Т подаем сигнал
    first_heat = false;
    ...

    Вот тут же можно сделать, чтобы при первом нагревании отключения тэна произошло на 20 градусов ниже, и звуковой сигнал тоже подать на 20 градусов ниже. Если пироги уже в духовке не будет перегрева. А если по сигналу пироги отправляются в печку, то он прозвучит раньше, экономя хотя бы пол минуты времени.
    После сигнала можно отключить нагреватель на 30 секунд, чтобы переходные процессы установились и далее работа без изменений.
    Не нужно ни переменных новых вводить, ни алгоритм менять, только несколько строк кода. Первый запуск и так отрабатывается отдельно, еще добавить эту особенность и будет вообще почти идеальная работа.
    Еще можно поставить аппаратный тепловой предохранитель на 300 градусов, который бы отключал всё, если вдруг микроконтроллер зависнет, реле заклинит, тиристор пробьется…

    Если сделаете поддержку низких температур, от 40 градусов, там можно будет сушить фрукты-овощи-орехи. Да и телефон я пару раз сушил в духовке при 40-70 градусах (без аккумулятора), отлично справилась.


  1. Jeyko
    08.11.2018 04:20

    Все в рассказе красиво получилось. Особенно последняя фота удалась!


  1. Stas911
    08.11.2018 05:22

    Отличный рассказ, спасибо!


  1. REPISOT
    08.11.2018 06:05

    Имя богу моему Ардуино. Аминь.»
    Ардуинопоклонники.


    1. Process0169
      08.11.2018 12:55

      Мне кажется ардуинопоклонникам нужно создать и зарегистрировать свою церковь, чтобы попадать под защиту закона об оскорблении чувств верующих :)


  1. Cyrill
    08.11.2018 06:54
    +2

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


    1. olartamonov
      08.11.2018 12:19
      +1

      Термопредохранитель надо поставить, который при перегреве просто рвёт 230 В физически — типа www.quartz1.com/price/model.php?group=4703&ext=2701 (а ещё лучше найти такой же, но с кнопкой — он при перегреве один раз отщёлкивается, а обратно включается только после физического нажатия кнопки).

      А от софта достаточно алярмы, полагаться в таких вопросах на софт всё равно нельзя.


      1. sim31r
        08.11.2018 15:33
        +2

        Там более не увидел в софте включение сторожевого таймера WDT, он в микроконтроллере есть.


        1. olartamonov
          08.11.2018 18:09
          +1

          На софт нельзя независимо от таймера, мало ли что там с микроконтроллером случится.

          В печках/котлах/etc. всегда ставят два независимых канала контроля — основной и аварийный, в совсем ответственных применениях даже три — основной, резервный и аварийный.


      1. Konstacio Автор
        08.11.2018 19:40

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


  1. mikelavr
    08.11.2018 07:10

    Очень удивился, не увидев в техзадании на доработку пункта WiFi или BT4.0/BLE :-).
    Доработки корпуса, стальные панели — великолепно! И это точно лучше, чем бухать.


    1. spc
      08.11.2018 17:55
      +1

      Тогда это уже даже не Xiarkiv, а просто Xiaomi получится. К тому же Wi-Fi сам пироги в печь не положит, зачем множить сущности?


      1. sim31r
        09.11.2018 00:44

        Ну хлебопечка тоже сама тесто в себя не положит. Но некоторым нравится когда с утра свежая еда, приготовленная точно к моменту пробуждения )


        1. spc
          09.11.2018 01:00

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


  1. vassabi
    08.11.2018 08:44

    и противни! противни тоже покажите, когда сделаете!


  1. RinonNinqueon
    08.11.2018 08:48

    Сделано очень красиво. Даже не хочется возмущаться, что сделано на ардуино/модулях/все_ленивые.
    Сколько в итоге % флешки занято?


    1. Konstacio Автор
      08.11.2018 19:42

      42% и на переменные 46%


  1. juray
    08.11.2018 10:29

    Классная доработка, сам давно о такой думаю, но всё руки не доходят (сапожник без сапог, как обычно).

    Надо сказать, у меня завалялась почти такая же, единственное отличие — заслонки на дверце нет. И пожалуй, постарше, чем 80-й год, она у нас в начале 80-х появилась уже в состоянии «сильно б/у», и мне даже довелось ее ремонтировать на уроке труда в начальных классах. Дали задание притащить какой-нить неисправный электроприбор — настольную лампу там, утюг… а я эту дуру притарабанил. Надо сказать, внутри у нее не ТЭНы, а нихромовая спиралька (как в старых электроплитках), обмотанная вокруг внутренней камеры. Разумеется, с керамическими изоляторами. Теплоизоляция — асбестовый картон, так что во время выпечки еще можно что-то разогревать прямо на корпусе.

    Жарит она действительно огого, я в ней как-то попробовал слегка обжечь поверхность неких деревянных резных поделок (раньше я это делал термофеном или слабенькой горелкой). Чуть зазевался — изделия превратились угольки.

    Так вот, давно вынашиваю мысль вот так же доработать её до нормального регулируемого термошкафа — не кулинарного а технологического (в будущем даже с термопрофилями, но это уже программные усовершенствования). Я думал разместить панель управления вертикально между передними ножками, но ваш дизайн куда лучше.

    А для кулинарных целей у меня имеется другая кандидатура на подобную доработку — дешевенькая двухтэновая духовка с механическим таймером и люфтящим регулятором мощности:
    image


  1. Romario1974
    08.11.2018 10:31

    Типичная задача для ардуино, использовать его как PLC для автоматизации железа. Сделано супер, впечатлили вырезаные лазером символы с подсветкой.


  1. alexhott
    08.11.2018 10:48

    У меня у мамы такая духовка с 80-х годов
    image
    Но она родилась с терморегулятором
    До сих пор все работает, а сколько вкуснятины из нее мы съели…

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


  1. tvr
    08.11.2018 11:28
    +1

    Юра Гагарин уже 19 лет как на орбите крутился


    Т.е.
    письма родственников нигерийских космонавтов
    Меня зовут Бакаре Тунде, я брат первого нигерийского космонавта, майора ВВС Нигерии Абака Тунде. Мой брат стал первым африканским космонавтом, который отправился с секретной миссией на советскую станцию «Салют-6» в далеком 1979 году. Позднее он принял участие в полете советского «Союза Т-16З» к секретной советской космической станции «Салют-8Т». В 1990 году, когда СССР пал, он как раз находился на станции. Все русские члены команды сумели вернуться на землю, однако моему брату не хватило в корабле места. С тех пор и до сегодняшнего дня он вынужден находиться на орбите, и лишь редкие грузовые корабли «Прогресс» снабжают его необходимым. Несмотря ни на что, мой брат не теряет присутствия духа, однако жаждет вернуться домой, в родную Нигерию. За те долгие годы, что он провел в космосе, его постепенно накапливающаяся заработная плата составила 15 000 000 американских долларов. В настоящий момент данная сумма хранится в банке в Лагосе. Если нам удастся получить доступ к деньгам, мы сможем оплатить Роскосмосу требуемую сумму и организовать для моего брата рейс на Землю. Запрашиваемая Роскосмосом сумма равняется 3 000 000 американских долларов. Однако для получения суммы нам необходима ваша помощь, поскольку нам, нигерийским госслужащим, запрещены все операции с иностранными счетами. Вечно ваш, доктор Бакаре Тунде, ведущий специалист по астронавтике.


  1. werklop
    08.11.2018 11:37

    Сразу видно, что руки растут откуда надо! Респект и уважуха!


  1. Mladolaborant
    08.11.2018 11:49

    Добрый день. А традиционный двухручечный интерфейс «температура/выдержка» вами не рассматривался? Как у такого девайса: image


    1. Konstacio Автор
      08.11.2018 19:43

      уж очень хотелось экранчик и менюшку влепить )))))


  1. avs24rus
    08.11.2018 11:58

    Везет людям, у кого руки не из ж.! :)


  1. barbalion
    08.11.2018 13:24

    Привіт з України.

    Привет из России! :)


  1. klirichek
    08.11.2018 14:09
    -1

    А я бы тупо влепил биметаллическую термуху от старого утюга!
    А на ардуине — либо термометр с "пищалкой" (без всякого касания силовой части вообще), либо может быть ещё реле времени.


  1. namikiri
    08.11.2018 14:18

    Очень крутая и аутентичная штука вышла!
    А я бы всё же поставил вместо скучного и модного ЖКИ крутой и ламповый электролюминесцентный индикатор, японцы делают даже матричные, например.


    1. torkve
      08.11.2018 15:36
      +2

      Я посмотрел на текст этой ссылки и моя жизнь никогда не будет прежней.


      1. vchslv13
        08.11.2018 17:01
        +2

        Ох ёй, у них действительно часть SQL-запроса прямо в URL? Жесть.


        1. Andy_Big
          08.11.2018 17:56
          +2

          Да там все условие :)


    1. u010602
      08.11.2018 16:01
      +1

      За 200-300 баксов (цены по вашей ссылке) можно купить крутую современную духовку, или запас пирожков на всю жизнь.


  1. lorc
    08.11.2018 14:26

    Осталось таки добавить ПИД, поддержку термопрофилей и можно будет паять платы на дому.


  1. cyberly
    08.11.2018 15:07

    Здорово получилось!
    Меня только немного смущает базальтовая вата, в ней, по идее, фенол-формальдегидная смола используется для склеивания волокон.


    1. juray
      08.11.2018 23:38

      Вот да, кстати.
      Я в своей будущей переделке планирую применять вермикулит (или перлит) с жидким стеклом.


  1. quartz64
    08.11.2018 15:13

    Замечательный проект. А лазерную резку где заказывали, если не секрет? Не могу уже два дня найти сервис: либо опт с большой суммой минимального заказа, либо просто не отвечают на запрос.


    1. Konstacio Автор
      08.11.2018 19:48

      По соседству находится пром зона, где просто россыпь аргонщиков, ЧПУшников, токарей и в том числе маленький цех металлообработки с лазером. Точно знаю что в нашем городе на 300 тысяч населения таких «технопарков» несколько.


  1. gerasimenkoao
    08.11.2018 15:22

    Прекрасная работа, в которой прежде всего восхищает умение работать руками.


    1. sim31r
      08.11.2018 15:38

      И гармоничность общая, проект не оторван от жизни, сбалансирован и уместен.


  1. sim31r
    08.11.2018 15:50

    Ибо в 1980 году советская инженерная наука не могла предложить советской женщине иного способа регулировки температуры, кроме как открывая дверцу духовки.

    А там точно нет отрицательной обратной связи по температуре? Возможно биметаллическая пластинка, которая разрывает цепь 220В при нагреве. Со временем могла испортится просто. Это типичное инженерное решение в те годы:
    Электродуховка ссср

    Да и сейчас часто встречается. А лайф хак с открытой дверцей, возможно, уже придумали чтобы не чинить духовку.
    Если бы изначально не было регулятора, думаю хотя бы мощность ограничили бы до 300Вт, чтобы температура не уходило в далеко не кулинарные значения.

    Кстати еще есть идея, после разогрева питать духовку через диод. Через диод мощность нагревателя упадет до 400Вт и улучшится точность поддержания температуры, и реле будет реже включаться-выключаться. Из минусов решения нужно 2 реле…


    1. u010602
      08.11.2018 16:49

      Я думаю подключать такую нагрузку через диод — дурной тон. Лучше сделать трансформатор понижающий или две спирали.


      1. s_kirill
        08.11.2018 22:40

        автотрансформатор тогда, но он тоже габаритный…


      1. sim31r
        09.11.2018 00:51

        В подъездах же подключают и ничего страшного не происходит. Самый простой способ снизить действующее напряжение. При наличии других вариантов, конечно не желательно. Но если конструкция не позволяет ставить 2 спирали то почему бы и нет?
        Трансформатор на 800 Вт сравним со сварочным аппаратом будет.
        Тиристоры и ШИМ могут дать помеху такой мощности, что лучше уже диод. Ну как вариант низкочастотная ШИМ, с частотой менее 1 Гц и электронным реле.
        Еще можно дроссель использовать для снижения тока через нагрузку, но опять же размеры будут значительными. Как и у автотрансформатора.


        1. juray
          09.11.2018 13:30

          В подъездах — лампочка 100 Вт, плюс-минус. Хотя если все этажи просуммировать — то как раз несколько сотен ватт и набегает.

          Для мощных нагревателей с большой тепловой инерцией все-таки двухпозиционное регулирование (включать-выключать при пересечении порога) вполне достаточно. И при фиксированном пороге биметаллический термовыключатель — самое простое и дешевое решение. Непонятно, почему в этой печке такого не ставили (в моей аналогичной его тоже не оказалось).
          ШИМ или ФИМ для нагревателя совершенно избыточны (из-за той ж инерции), а проблемы лишние создают (помехи). Оптимальное управление мощностью нагревателя — таки долгопериодное включение-выключение, с привязкой моментов коммутации к пересечению ноля. И это скорее, не широтно-импульсный, а число-импульсный метод получается, то есть включение на целое число полупериодов-«импульсов».


          1. sim31r
            09.11.2018 15:23

            а проблемы лишние создают (помехи)

            Кроме помех механическое разрушение спиралей. Если тиристором включать на половине сетевой волны, резкое нарастание тока di/dt вызывает «звон» спиралей нагревательных и механическое разрушений. Я даже в лампочке слышу звон при работе диммера, спираль дергается 100 раз в секунду и вибрирует на своей резонансной частоте.


        1. u010602
          10.11.2018 19:07

          В подъездах давно уже светодиоды, но даже если рассматривать такой аргумент, то там лампочек много, и направление диода — разное, и фаз несколько. В итоге влияние низкое. А тут почти 1квт, да внутри квартиры.


    1. Konstacio Автор
      08.11.2018 19:51

      Точно никакой регулировки нет и не было изначально, поскольку такие духовки были почти у всех родственников, и у всех изначально был почти один и тот же подход к уменьшению температуры.


  1. sim31r
    08.11.2018 15:59

    Автор статьи не написал ни одного комментария, вот это выдержка.


    1. Konstacio Автор
      08.11.2018 19:51
      +1

      Исправляюсь ))


  1. aapazhe
    08.11.2018 16:15
    +2

    Столько труда — и всё испоганить дурацки-огромным «close-open».


    1. u010602
      08.11.2018 16:28

      А мне нравится, красивое решение


  1. Berkof
    08.11.2018 16:17

    Прямые руки мужа и красавица-хозяйка… приятно почитать, спасибо.


  1. bougakov
    08.11.2018 16:34
    +1

    критически не хватает железного термопредохранителя, который будет рвать цепь 220В при перегреве. И watchdog для Ардуины, а то от искрения в реле она может словить помеху и зависнуть.


    1. torkve
      08.11.2018 18:53

      И watchdog для Ардуины, а то от искрения в реле она может словить помеху и зависнуть.

      Вот так, читая про духовку, я узнал, как чинить свой холодильник)


      1. bougakov
        08.11.2018 19:35

        Холодильник — не страшно. У меня был опыт попытки «пересадки мозга» посудомоечной машине — плата выгорела, запчастей не было и я решил применить Ардуину, но постоянно нарывался на зависания. Когда в один момент вдруг увидел, что МК завис после включения ТЭН и тот уже стал ярко-малиновым, свернул эксперимент и пошёл в магазин за новой посудомойкой.


  1. ikirin
    08.11.2018 17:16
    +1

    и кататься я буду все таки на современном велике ибо отбивать почки не хочется

    Не понял я как на нем кататься, но есть подозрения, что почки отобьешь в последнею очередь…


  1. Iamkaant
    08.11.2018 18:28

    Лампово! Спасибо и вкусных пирогов!


  1. Vilos
    08.11.2018 19:52

    Жинка дуже красива :)
    Мне показалось или в носу (в правой ноздре) украшение?


    1. Konstacio Автор
      08.11.2018 19:52

      Не показалось )))))


  1. DmitryShagin
    08.11.2018 22:41

    Ещё немного доработать и после пирожков можно запекать печатные платы по термопрофилю :)


    1. sim31r
      09.11.2018 01:01

      Или использовать как ИК паяльную станцию ))


    1. Andy_Big
      09.11.2018 01:12

      Только после запекания плат пирожки уже не попечешь :)


  1. odissey_nemo
    09.11.2018 14:32

    Да, красиво сделано в пост-СССР.
    Жаль только, что из отечественных материалов в этой поделке ничего нет, что нельзя было бы сделать и в СССР. Т.е. пост-СССР никуда сам так и не продвинулся. Да и Юра Гагарин, будучи рождённым в пост-СССР вместе С Королёвым, не полетел бы никуда. Т.к. и Королёва бы не было. Зачем? Когда всё уже придумано в Китае? Который, если кто забыл, учился именно у СССР. Это и есть диалектика, а не досужие личностные измышления.


    1. tvr
      09.11.2018 14:40

      Какой глубокий философски-пятничный комментарий, раскрывающий всю глубину, нет, даже больше — трагическую бездну, вскрытую в обсуждаемой здесь статье.


      1. odissey_nemo
        10.11.2018 03:12

        Ирония здесь неуместна. Смешное — оно всегда слишком уж на поверхности чего-бы то ни было. Возразите по существу, а не по подсознательноым ощущениям правоты СМдезИ.