The second life of electric oven "Kharkov"

 3r33848. 3r3-31. Hello. 3r33836.  3r33848. 3r33836.  3r33848. I will not do a long and lyrical introduction about how short and cruel the fate of household appliances. What was perceived yesterday as the last achievement of progress will now be a familiar part of the average household, and tomorrow it will simply be thrown into a landfill, in spite of its full working capacity or, at best, dismantled as a donor of parts. For "there are buttons, but I want a sensor," and "design is soviet" and "there is no this chip." And it’s okay if we are talking about some kind of Chinese microwave or kettle, which you don’t have time to get used to because of their short life cycle and plastic lack of spirituality. 3r33836.  3r33848. 3r33836.  3r33848. But what to do when it comes to the thing that remembers several generations of your family and from childhood has been for you the epitome of home comfort, grandma's delicacies and the whole "lamp". Throwing out a hand will not rise, as with this thing there are too many memories, and in general this is blasphemy. But it’s also impossible to use it because of the total obsolescence and frankly unpresentable view. 3r33836.  3r33848. 3r33836.  3r33848. What to do? 3r33836.  3r33848. 3r33836.  3r33848. Right! Resurrect. 3r33836.  3r33848.
3r33836.  3r33848. Meet our heroine. Oven electric "Kharkov". 3r33836.  3r33848. 3r33836.  3r33848. The second life of electric oven "Kharkov" 3r33836.  3r33848. 3r33836.  3r33848. For a start, a quick introduction to the test subject: 3r33836.  3r33848. 3r33836.  3r33848.
 3r33848. 3r3777. Year of release - 1980 (my age). 3r3678.  3r33848. 3r3777. Power - 800 watts. 3r3678.  3r33848. 3r38080. 3r33836.  3r33848. And that's all. There is no timer, no temperature or power regulator, or a thermometer. Wai Fai is also not, everywhere I was looking for, honestly. Well, not all. There is nothing. Only the case with the heaters and the plug into the outlet, even without a switch. Bake as you like. 3r33836.  3r33848. 3r33836.  3r33848. When, during the period of my former bachelor life, I discovered this rarity in the depths of garages, brushed off a nostalgic tear and tried to cook something in it, it began to come to me that, for all its sweet vintage, this “pie generator” was as user-friendly as the first wooden bicycle of 181? by Carl von Dres. You can see the vintage in the museum too, but after the first conditional trip you realize that Caesar is Caesar’s, and there’s no place for a rare book in the museum, and I’ll still ride on a modern bike because I don’t want to beat the kidneys. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. So here. When turned on, this stove-demon immediately roasted under 400 degrees, convincingly reminding me that any organic matter when heated turns into charcoal. And the test pizza was no exception. Not for nothing in the family archives recipes for cooking pies on this stove more resembled the description of the technological modes of operation of the blast furnace. It was suggested to warm up for 10 minutes, then insert a pan with source, then bake for X minutes with the door ajar, then At the minutes with a fully open, periodically changing the position of the baking tray. For in 198? Soviet engineering science could not offer a Soviet woman any other way to adjust the temperature, except by opening the oven door. Yura Gagarin has been spinning in orbit for 19 years and our vigorous bomb was the most radiant, but the Soviet mistresses continued to heat the planet with the Kharkov ovens. 3r33836.  3r33848. 3r33836.  3r33848. Okay. The situation is clarified, goals are set, tools are ground. Let us turn to the technical part. 3r33836.  3r33848. 3r33836.  3r33848.
3r33836.  3r33848.

The software component

3r33836.  3r33848. “I believe in the One Father of the Almighty, the Creator of heaven and earth, visible and invisible to all. Name to my god Arduino. Amen. ”3r33636.  3r33848. 3r33836.  3r33848. Being a zealous parishioner of the church Arduinova, I naturally decided to sculpt my creation on this godly platform. For it is simple and cheap and suitable for the legs. But on the e-stuffing a little later, but now we turn our attention to the program stuffing. Sketch, I mean. 3r33836.  3r33848. 3r33836.  3r33848. We face the next challenge. It is necessary to implement the following functions in the oven controller: 3r33636.  3r33848. 3r33836.  3r33848.
 3r33848. 3r3777. timer - the job time of our program; 3r3678.  3r33848. 3r3777. thermostat - setting and maintaining the temperature at a certain level; 3r3678.  3r33848. 3r3777. the sound alarm system of the first exit to the set temperature - the moment when it is time to put pies; 3r3678.  3r33848. 3r3777. sound signaling the end of the program - the moment when it is time to get the pies; 3r3678.  3r33848. 3r3777. visual indication of the modes of operation - to understand what is happening in this and yet it is just beautiful. There are two indicators - the program is on and the PETN is on. 3r3678.  3r33848. 3r3777. display the remaining work time. To understand when it is time to secrete gastric juice. 3r3678.  3r33848. 3r38080. 3r33836.  3r33848. Pasting over the scrolls of the wise men at the Arduino forums, with the help of God the next shit-code was created. Criticism is not accepted. Who will criticize, he will not get pies. 3r33836.  3r33848. 3r33836.  3r33848. 3r3115. 3r3116. Sketch [/b] 3r3118. 3r3119. /* 3r33848. d6 - operation mode LED (yellow)
d7 - Teng relay (yellow) and heating mode LED (violet) 3r-3848. d8 is a
squeaker. d9 - ce (screen) (white) 3r33848. d10 - rst (screen) (brown) 3r33848. d11 - dc (screen) (black) 3r33848. d12 - din screen (green)
d13 - clk screen (pink)
gnd - bl screen (to gnd)
a0 - valcoder button (gray) 3r33848. A1 is the input of the valcoder (orange) 3r33848. a2 - valcoder input (blue) 3r33848. a4 - thermistor input. resistor 10 to between a4 and +5. thermistor between - and a4
vcc - food (red)
gnd - the earth (blue)
* /3r33848. 3r33848. #include
3r33848. #include
3r33848. #include
3r33848. #include
3r33848. 3r33848. 3r33848. volatile byte seqA = 0; 3r33848. volatile byte seqB = 0; 3r33848. volatile byte cnt1 = 0; 3r33848. volatile byte cnt2 = 0; 3r33848. volatile int Temp = 150; //default temperature
volatile int Time = 30; //default run time
boolean heat = false; 3r33848. boolean work = false; 3r33848. boolean first_heat; 3r33848. volatile boolean right = false; 3r33848. volatile boolean left = false; 3r33848. volatile boolean button = false; 3r33848. long previousMillis = 0; 3r33848. int temp_count; 3r33848. long time_ost; 3r33848. long time_millis; 3r33848. 3r33848. byte menuitem = 1; //when enabled, the menu item 1
appears. byte page = 1; //and page 1
3r33848. unsigned long heatMillis = 0; 3r33848. 3r33848. #define RT0 1?000 //Ohm
#define B 3950 //K
#define VCC 5 //Power supply
#define R 10000 //R = 10 KΩ
float RT, VR, ln, TX, T? VRT, temp_izmer, temp_itog; 3r33848. 3r33848. Adafruit_PCD8544 display = Adafruit_PCD8544 (1? 1? 1? ? 10); 3r33848. 3r33848. //************************************************ ************************************************** 3r33848. void setup () {//******************************************* ******************************************
//************************************************ ************************************************** * 3r33848. Serial.begin (115200); 3r33848. 3r33848. pinMode (A? INPUT); 3r33848. pinMode (A? INPUT); 3r33848. pinMode (A? INPUT); 3r33848. pinMode (A? INPUT); 3r33848. pinMode (? OUTPUT); 3r33848. pinMode (? OUTPUT); 3r33848. pinMode (? OUTPUT); 3r33848. pinMode (LED_BUILTIN, OUTPUT); 3r33848. 3r33848. digitalWrite (A? HIGH); //valcoder
digitalWrite (A? HIGH); //valcoder
digitalWrite (A? HIGH); //valcoder
digitalWrite (? LOW); //LED status of work
digitalWrite (? HIGH); //relay tena
digitalWrite (? LOW); //squeaker
3r33848. T0 = ​​25 + ???; //Temperature T0 from datasheet, convert from Celsius to Kelvin
3r33848. PCICR = 0b00000010; //1. PCIE1: Pin Change Interrupt Enable 1
PCMSK1 = 0b00000111; //Enable Pin Change Interrupt for A? A? A2
3r33848. //Initialize LCD
display.setRotation (2); //Set LDC orientation
display.begin (60); //Set LCD contrast
display.clearDisplay (); //Clear display
display.display (); //Apply changes
3r33848. 3r33848. Temp = EEPROM_read_byte (0); 3r33848. Time = EEPROM_read_byte (3); 3r33848. sei (); 3r33848.}
3r33848. 3r33848. //************************************************ ************************************************
void loop () {//******************************************* ***************************************
//************************************************ ************************************************
3r33848. //start the countdown
unsigned long currentMillis = millis (); 3r33848. 3r33848. //first main menu ********************************************* ********************************
if (page == 1) {3r33848. display.setTextSize (1); 3r33848. display.clearDisplay (); 3r33848. display.setTextColor (BLACK, WHITE); 3r33848. display.drawFastHLine (??8? BLACK); 3r33848. display.drawFastHLine (?4?8? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (8??8? BLACK); 3r33848. 3r33848. display.setCursor (? 2); //first menu item 3r33848. if (menuitem == 1) {3r33848. display.setTextColor (WHITE, BLACK); //select inverse the active menu item 3r34848. display.drawFastHLine (??8? BLACK); //*************************
}
else {display.setTextColor (BLACK, WHITE); //if the item is not active then without inversion 3r33848.}
display.print ("TEMP"); 3r33848. 3r33848. display.setCursor (? 14); 3r33848. if (menuitem == 2) {3r33848. display.setTextColor (WHITE, BLACK); 3r33848. display.drawFastHLine (?1?8? BLACK); 3r33848.}
else {display.setTextColor (BLACK, WHITE);}
display.print ("TIME"); 3r33848. 3r33848. 3r33848. if (menuitem == 3) {3r33848. display.setTextColor (WHITE, BLACK); 3r33848. display.drawFastHLine (?2?8? BLACK); 3r33848.}
else {
display.setTextColor (BLACK, WHITE); 3r33848.}
display.setCursor (? 26); 3r33848. display.print ("START:"); 3r33848. if (work) {
display.print ("ON"); 3r33848.}
else {
display.print ("OF"); 3r33848.}
3r33848. display.setCursor (? 38); 3r33848. if (menuitem == 4) {3r33848. display.setTextColor (WHITE, BLACK); 3r33848. display.drawFastHLine (?3?8? BLACK); 3r33848.}
else {display.setTextColor (BLACK, WHITE);}
display.print ("INFO"); 3r33848. 3r33848. if (left) {
left = false; 3r33848. menuitem--; 3r33848. if (menuitem == 0) {3r33848. menuitem = 1; 3r33848.}
3r33848.}
3r33848. if (right) {
right = false; 3r33848. menuitem ++; 3r33848. 3r33848. if (menuitem == 5) {3r33848. menuitem = 4; 3r33848.}
}
display.display (); 3r33848. 3r33848. if (button) {
button = false; 3r33848. digitalWrite (? HIGH); 3r33848. delay (50); //simultaneously both the anti-chatter and the duration of the sound indication 3r33848. digitalWrite (? LOW); 3r33848. 3r33848. 3r33848. if (page == 1 && menuitem == 1) {
page = 3; 3r33848.}
3r33848. else if (page == 1 && menuitem == 2) {
page = 4; 3r33848.}
3r33848. else if (page == 1 && menuitem == 4) {
page = 5; 3r33848.}
3r33848. //Enable operation mode ********************************************* ***********************************
else if (menuitem == 3 && page == 1) {3r33848. if (work) {
work = false; 3r33848. digitalWrite (? LOW); //turn off the work LED
}
else {
heatMillis = currentMillis; 3r33848. work = true; 3r33848. first_heat = true; 3r33848. digitalWrite (? HIGH); //turn on the work LED
}
}
3r33848.}
}
3r33848. 3r33848. //first menu item (temperature) ****************************************** *********
if (page == 3) {3r33848. display.setTextSize (1); 3r33848. display.clearDisplay (); 3r33848. display.drawFastHLine (??8? BLACK); 3r33848. display.drawFastHLine (??8? BLACK); 3r33848. display.drawFastHLine (?4?8? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (8??8? BLACK); 3r33848. display.drawFastVLine (8??1? BLACK); 3r33848. display.drawFastVLine (8??1? BLACK); 3r33848. display.drawFastVLine (8??1? BLACK); 3r33848. display.drawFastVLine (7??1? BLACK); 3r33848. display.setTextColor (WHITE, BLACK); 3r33848. display.setCursor (? 2); 3r33848. display.print ("Temp"); 3r33848. display.drawFastHLine (?1?8? BLACK); 3r33848. display.setTextColor (BLACK, WHITE); 3r33848. display.setCursor (2? 12); 3r33848. display.print ("Degree"); 3r33848. display.setTextSize (3); 3r33848. if (Temp> = 100) {3r33848. display.setCursor (1? 23); 3r33848.}
else {
display.setCursor (2? 23); 3r33848.}
3r33848. display.print (Temp); 3r33848. if (left) {
left = false; 3r33848. Temp--; 3r33848.}
if (Temp == 49) {3r33848. Temp = 50; 3r33848.}
3r33848. if (right) {
right = false; 3r33848. Temp ++; 3r33848.}
if (Temp == 251) {3r33848. Temp = 250; 3r33848.}
if (button) {
digitalWrite (? HIGH); 3r33848. delay (50); 3r33848. digitalWrite (? LOW); 3r33848. button = false; 3r33848. page = 1; 3r33848. EEPROM_write_byte (? Temp); 3r33848.}
display.display (); 3r33848.}
3r33848. 3r33848. 3r33848. //second menu item (time) ****************************************** *********************************
else if (page == 4) {
display.setTextSize (1); 3r33848. display.clearDisplay (); 3r33848. display.drawFastHLine (??8? BLACK); 3r33848. display.drawFastHLine (??8? BLACK); 3r33848. display.drawFastHLine (?4?8? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (8??8? BLACK); 3r33848. display.drawFastVLine (8??1? BLACK); 3r33848. display.drawFastVLine (8??1? BLACK); 3r33848. display.drawFastVLine (8??1? BLACK); 3r33848. display.drawFastVLine (7??1? BLACK); 3r33848. display.setTextColor (WHITE, BLACK); 3r33848. display.setCursor (? 2); 3r33848. display.print ("Time"); 3r33848. display.drawFastHLine (?1?8? BLACK); 3r33848. display.setTextColor (BLACK, WHITE); 3r33848. display.setCursor (2? 12); 3r33848. display.print ("Minutes"); 3r33848. display.setTextSize (3); 3r33848. if (Time> = 10) {
display.setCursor (2? 23); 3r33848.}
else {
display.setCursor (3? 23); 3r33848.}
display.print (Time); 3r33848. if (left) {
left = false; 3r33848. Time--; 3r33848.}
if (Time == 0) {3r33848. Time = 1; 3r33848.}
3r33848. if (right) {
right = false; 3r33848. Time ++; 3r33848.}
if (Time == 61) {
Time = 60; 3r33848.}
if (button) {
digitalWrite (? HIGH); 3r33848. delay (50); 3r33848. digitalWrite (? LOW); 3r33848. button = false; 3r33848. page = 1; 3r33848. EEPROM_write_byte (? Time); 3r33848.}
display.display (); 3r33848.}
3r33848. 3r33848. //fourth menu item (status bar) ***************************************** ******************
else if (page == 5) {
display.clearDisplay (); 3r33848. display.setTextColor (BLACK, WHITE); 3r33848. display.setTextSize (1); 3r33848. display.drawFastHLine (??8? BLACK); 3r33848. display.drawFastHLine (?4?8? BLACK); 3r33848. display.drawFastVLine (??4? BLACK); 3r33848. display.drawFastVLine (8??8? BLACK); 3r33848. display.setCursor (? 5); 3r33848. display.print ("TEMP_UST:"); 3r33848. display.setCursor (6? 5); 3r33848. display.print (Temp); 3r33848. 3r33848. display.setCursor (? 20); 3r33848. display.print ("TEMP_TEK:"); 3r33848. display.setCursor (6? 20); 3r33848. display.print (temp_itog, 0); 3r33848. 3r33848. display.setCursor (? 35); 3r33848. display.print ("TIME_OST:"); 3r33848. display.setCursor (6? 35); 3r33848. display.print (time_ost); 3r33848. 3r33848. 3r33848. if (button) {
digitalWrite (? HIGH); 3r33848. delay (50); 3r33848. digitalWrite (? LOW); 3r33848. button = false; 3r33848. page = 1; 3r33848.}
display.setTextSize (2); 3r33848. display.display (); 3r33848.}
3r33848. //calculate the remaining time ********************************************* 3r33848. if (work) {
time_millis = Time * 1000; 3r33848. time_millis = time_millis * 60; 3r33848. 3r33848. time_ost = ((time_millis) - (currentMillis - heatMillis)); 3r33848. time_ost = time_ost /1000; 3r33848. time_ost = time_ost /60; 3r33848.}
else {
time_ost = 0; 3r33848.}
3r33848. //define the end time *******************************************
if (((currentMillis - heatMillis)> time_millis) && (work)) {
work = false; 3r33848. digitalWrite (? LOW); //turn off the work LED
digitalWrite (? HIGH); //give the signal 3r34848. delay (1000); 3r33848. digitalWrite (? LOW); 3r33848. delay (500); 3r33848. digitalWrite (? HIGH); 3r33848. delay (1000); 3r33848. digitalWrite (? LOW); 3r33848. delay (500); 3r33848. digitalWrite (? HIGH); 3r33848. delay (1000); 3r33848. digitalWrite (? LOW); 3r33848.}
3r33848. //temperature measurement ********************************************** *** 3r33848. if (currentMillis - previousMillis> 500) {
previousMillis = currentMillis; 3r33848. VRT = analogRead (A4); //Read the analog value of the VRT
VRT = (??? /???) * VRT; //Convert to voltage
VR = VCC - VRT; 3r33848. RT = VRT /(VR /R); //Resistance RT
ln = log (RT /RT0); 3r33848. TX = (1 /((ln /B) + (1 /T0))); //Temperature from thermistor
TX = TX - ???; //Convert to Celsius
temp_count ++; 3r33848. temp_izmer = temp_izmer + TX; 3r33848.}
3r33848. if (temp_count == 10) {3r33848. temp_itog = temp_izmer /10; 3r33848. temp_count = 0; 3r33848. temp_izmer = 0; 3r33848.}
3r33848. //comparison of the current and set temperature **********************
if (temp_itog
heat = true;
}
if (temp_itog> (Temp + 1)) {
heat = false;
if (first_heat) {//when you first reach the working T, send a signal
.first_heat = false; 3r34848; digitalWrite (? HIGH); //send a signal 3r3-3848; delay (200); 3r3-3848. digitalWrite (? LOW); 3r33848. delay (300); 3r34848. digitalWrite (? HIGH); 3r34848 delay (200); 3-33848 digitalwrite (? LOW); 3r34848 delay (300); 3-334848 digitalWrite (? HIGH); 3r34848 delay (200); 3r34848 digitalWrite (? LOW);
}
}
3r33848.
3r33848. //turn on the tena ********************************* *********************
If ((work) && (heat)) {
DigitalWrite (? LOW); //turn on ten
DigitalWrite (? HIGH ); //we turn on the led of the tena
}
else {
digitalWrite (? HIGH); //turn off ten
digitalWrite (? LOW); //turn off the led of the tena
}
3r33848. 3r33848. //control overheating or breakage of the sensor ******************************************* * 3r33848. if ((temp_itog 3r33535. 250)) {3r3-3848. digitalWrite (? HIGH); //give the signal 3r34848. delay (500); 3r33848. digitalWrite (? LOW); 3r33848. delay (500); 3r33848.}
3r33848.}
3r33848. //Interrupt processing of the valcoder ********************************************* *********************
ISR (PCINT1_vect) {3r33848. 3r33848. //If interrupt is triggered by the button
if (! digitalRead (A0)) {3-334848. button = true; 3r33848.}
else {//Else if interrupt is triggered by encoder signals
boolean A_val = digitalRead (A1); //Read A and B signals
boolean B_val = digitalRead (A2); 3r33848. 3r33848. //Record the B and B signals in sequence sequences
seqA = 1; 3r33848. seqA | = A_val; 3r33848. 3r33848. seqB = 1; 3r33848. seqB | = B_val; 3r33848. 3r33848. //Mask the MSB four bits
seqA & = 0b00001111; 3r33848. seqB & = 0b00001111; 3r33848. 3r33848. //Compare the recorded sequence with the expected sequence
if (seqA == 0b00001001 && seqB == 0b00000011) {
cnt1 ++; 3r33848. left = true; 3r33848.}
3r33848. if (seqA == 0b00000011 && seqB == 0b00001001) {
cnt2 ++; 3r33848. right = true; 3r33848.}
}
}
3r31717. 3r3618. 3r33836.  3r33848. 3r33844. 3r33844. 3r33836.  3r33848. More and more than usual, in essence, is molded from the most basic examples of working with a Nokia 5110 screen, an encoder, a thermistor and a reel. Your choice in favor of these components is justified in the next part of our fascinating story. 3r33836.  3r33848. 3r33836.  3r33848. The menu consists of 4 items: “TEMP”, “TIME”, “START” and “INFO”. What is responsible for what, I think it is clear from the photo. If necessary, you can stop the program, add or decrease the time or temperature and continue again. 3r33836.  3r33848. 3r33836.  3r33848. 3r33333. 3r33836.  3r33848. 3r33836.  3r33848. Naturally, our settings are stored in non-volatile memory. 3r33836.  3r33848.
 3r33848. Also, the control of the oven overheating and the control of the breakage or damage of the thermal sensor was added. When the temperature reaches 250 degrees (sticking of the relay or some kind of unrecorded failure) or the temperature drops below zero (sensor breaks, it shows 270 degrees in the break) there will be an alarm. 3r33836.  3r33848. 3r33836.  3r33848.
3r33836.  3r33848.

Hardware component

3r33836.  3r33848. To implement the above functionality, we need the following components: 3r33836.  3r33848. 3r33836.  3r33848.
 3r33848. 3r3777. Power supply 220 - 5 volts, torn from some kind of charging. It feeds all electronics. 3r3678.  3r33848. 3r3777. Arduino pro mini. Silicon super brain, responsible for the management of our brainchild. 3r3678.  3r33848. 3r3777. Monochrome screen Nokia 511? resolution 84 * 48 pixels with a slight refinement. Displays menu items, allowing you to adjust the temperature, time, turn on the program for execution and view the current parameters in the process. 3r3678.  3r33848. 3r3777. Encoder (also known as valcoder, also known as twister). Allows you to intuitively manage the settings menu and requires just one hole in the control panel. 3r3678.  3r33848. 3r3777. Relay. The most common relay module for 10 Chinese amps. Even without optocoupler. Yes, the risk is my middle name. 3r3678.  3r33848. 3r3777. Thermistor as a temperature sensor. Once, an unidentified thermal sensor on a thread was broken by me from some device, lay idle, now it has become popular. Testing has shown that inside a normal NTC thermistor for 10 com. That is, everything is more than simple and the passport temperature limit of 250 - 300 degrees corresponds to my tasks. For confidence, I made a test bench of a thermistor and a digital DS18B20 sensor. Up to 100 degrees showed nostril in the nostril and the accuracy is more than excessive. Anyway! 3r3678.  3r33848. 3r3777. Light indication - a pair of orange LEDs. Sound indication - active piezo squeaker. 3r3678.  3r33848. 3r38080. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. For better atmosphere, you need to finish the screen. By default, the screens of the Nokia 5110 come with either white or bright blue backlight LEDs. White LEDs do not correspond to the planned external style, and the blue outlined LEDs seem to provoke epilepsy attacks among users and in general there is the creation of Satan, designed to contribute to the early coming of the Antichrist. Vypivaem and their fire. Pater noster. Amen. 3r33836.  3r33848. 3r33836.  3r33848. Next, we take the orange smd light-emitting diodes, designed to imitate old-school incandescent bulbs and solder them instead of regular ones, after removing the metal rim of the screen and the LCD screen itself under it. Now everything is Feng Shui. 3r33836.  3r33848. 3r33836.  3r33848. We find a suitable plastic box with mounting ears. In it we place the power unit, arduinka, squeaker and relyushka. Display a pair of wires to the mains supply, a pair of wires to the thermistor and the wiring to the front panel to the screen, the encoder and status LEDs with diffusers. Place the control unit - on the belly of the oven. 3r33836.  3r33848. 3r33836.  3r33848. 3r33700. 3r33836.  3r33848. 3r33836.  3r33848.
3r33836.  3r33848.

The iron component

3r33836.  3r33848. With all my love for the old technology, I would never have undertaken to restore this oven if it were not for one thing - I have a Provence style kitchen and the rounded vintage case of this oven fits perfectly into the interior. Therefore, it was decided to fool around. 3r33836.  3r33848. 3r33836.  3r33848. We remove the back panel by unbending 4 fastening ears to get to the back wall of the internal cavity of the stove. We take out a layer of weapons of massive destruction under the name "glass wool". In the middle of the back wall of the inner cavity, we drill a hole in the size of the thermistor rod, insert a thermistor, tighten the nut, draw the wires under the case, pick out the remains of glass wool, instead of it we stuff basalt cotton wool and assemble it back. 3r33836.  3r33848. 3r33836.  3r33848. Next, prepare the control panel, the elements of pens and stencils for decoration. No plastic, only metal. Since I do not know how to draw in AutoCAD, I draw the details I need in Photoshop and convert it into a dwg format through some kind of cloud service. Yes, I'm a pervert, I know, I like it. We give the drawings for laser cutting. 3r33836.  3r33848. 3r33836.  3r33848. 3r33724. 3r33836.  3r33848. 3r33836.  3r33848. Weld the dashboard on the planned place. We finish the missing triangles on the sides, we spat and we clean the welding place, creating the appearance of a solid part as much as possible. On the dashboard, 4 slots - place under the screen, place under the encoder with holes for the LEDs under the “for beauty” twist under the twist, and shaped slots for the operation and heating indicators. The panel is made of steel with a thickness of 2 mm, so that was not enough. "Weight is reliable." Boris Razor. 3r33836.  3r33848. 3r33836.  3r33848. The venerable age of the oven and many years of being in inhumane conditions could not leave no trace on its body. There were scratches of paint, small dents and pockets of corrosion. We put on the grinder-kartsovka grinder and clean up as much as possible. We putty dents and defects in car putty. We clean again. Degreased. 3r33836.  3r33848. 3r33836.  3r33848. 3r3737. 3r33836.  3r33848. 3r33836.  3r33848. Next on painting. I did not find in my area the ability to fill pentaphthalic enamel in colors to choose from, therefore I chose from available ready-made colors. Ivory was chosen for the main body color and pistachio for the body decoration elements. 3r33836.  3r33848. 3r33836.  3r33848. We paint, kosyachy, curse, clean up the drips, repaint, again kosyachim, we vow never to fool with the like again, but just peacefully plump like all normal men, calm down, paint again, remain satisfied. We are waiting for a week until the paint is exactly dry. 3r33836.  3r33848. 3r33836.  3r33848. 3r33750. 3r33836.  3r33848. 3r33836.  3r33848. While the stove is drying, we boil fastenings for the door locking handle, draw a sketch of wooden handles and give it to the turner. We paint the pens themselves and leave them to dry. We paint the handle of the encoder and the metal cover on the screen body. 3r33836.  3r33848. 3r33836.  3r33848. 3r3759. 3r33836.  3r33848. 3r33836.  3r33848. 3r33737. 3r33836.  3r33848. 3r33836.  3r33848. After the hull has completely dried, we apply stencils and paint it with pistachio paint. 3r33836.  3r33848. 3r33836.  3r33848. Further, approximately we put everything in a heap and we understand that the side surfaces of the oven are provocatively empty and we cannot but hold on so as not to stick that else there. But it is extremely inconvenient to paint through metal stencils due to the paint leaking under the stencil and the need to later adjust the drawing with a brush with the solvent. A stencils to order from the oracle could not order because of the lack of understanding with the "manager" of the advertising agency. Therefore I found ready-made, suitable in size in the internet. 3r33836.  3r33848. 3r33836.  3r33848. Pasted. We paint We admire. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. Next, we collect everything in a heap - install the screen, the encoder and the encoder handle. We make diffusers for the mode of operation indicators from the plastered Plexiglas and glue them to the bottom of the dashboard. We pull and solder the wires of the modules and install the network power connector with the power key. We drill and install holders for wooden handles. On the inside of the Open-Close pointer, we glue the felt so that the handle does not scratch the surface of the door during rotation. 3r33836.  3r33848. 3r33836.  3r33848. Next, we call the hostess, we hand her this creative, we listen to what I am smart and beautiful, and while we are waiting for the pies, we add a couple of lines, explaining why I did it this way and not otherwise. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. 3r33836.  3r33848. 3r3799. 3r33836.  3r33848. 3r33836.  3r33848. 3r3804. 3r33836.  3r33848. 3r33836.  3r33848. 1. Why is the temperature keeping algorithm so stupid and not the PID? 3r33836.  3r33848. 3r33836.  3r33848. Because there is simply no need. For a standard program of work, 30-40 minutes, the temperature of the stove just a couple of times passes the target point. The stove is small, well insulated, it cools slowly. PID algorithm has no place to turn. A small temperature inertia occurs only once when the first set of temperature and overlap is about 20 degrees, which is not at all essential for baking and is conveniently leveled by opening the door at this moment to set the baking tray. To do this, and the signal goes to the operating temperature. The next iteration generally occurs in the range of the order of + - 2 degrees. 3r33836.  3r33848. 3r33836.  3r33848. 2. Why a relay, not a triac, and why not PWM? 3r33836.  3r33848. 3r33836.  3r33848. All for the same reason. I like the simistor and I can cook them, but at least you don’t consider it necessary to push them into the device, in which the relay clicks four times in half an hour. And at 800 watts of power, that is, three amperes of current, even in the Chinese relay there will be an adequate margin of safety. But Shimu here has nothing to do at all, not the level of the device. And the relay is soulful and lamplike, and the triac is arrogance and pride. Yes, and the hostess is more than satisfied, and this was a strategic goal. In short, everything. 3r33836.  3r33848. 3r33836.  3r33848. 3. What else is planned? 3r33836.  3r33848. 3r33836.  3r33848. Stainless steel trays. For in the original there are baking trays of chernyashki and if this is already such a heat, then the baking trays must correspond. Later I draw and give to the laser. 3r33836.  3r33848. 3r33836.  3r33848. 3r33833. 3r33836.  3r33848. 3r33836.  3r33848. Behind this, allow me to bow out, test pies gone. Privit from Ukraine. 3r33844. 3r33848. 3r33848. 3r33841. ! function (e) {function t (t, n) {if (! (n in e)) {for (var r, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e.parentNode.insertBefore (r, e)}; "[object Opera]" == e.opera? a.addEventListener? a.addEventListener ("DOMContentLoaded", d,! 1): e.attachEvent ("onload", d ): d ()}}} t ("//mediator.mail.ru/script/2820404/"""_mediator") () (); 3r33842. 3r33848. 3r33844. 3r33848. 3r33848. 3r33848. 3r33848.
+ 0 -

Add comment