Программное обеспечение для электроплиты

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Программное обеспечение для электроплиты

Сообщение Symbiosis »

У меня есть варочная панель Hansa стеклокерамическая. Ей уже много лет , но менять не хочу так как выглядит совершенно как новая. В ней сенсорные кнопки и два семисегментных индикатора. Нажимаешь кнопку включения, загораются дефисы на обоих семисегментных индикаторах. Они горят 10 секунд, за это время надо включить одну из конфорок кнопками +/- для соответсвующей конфорки. Если в течении 10 секунд этого не сделать, то печь выключится.
Печь импульсная. Там одна спираль и при выборе мощности (1-9 диапазон) включается на разные интервалы конфорка. Вопрос первый - где это время узнать, ну т.е. чтобы не эксперементировать, а конкретные значения времени уже знать и использовать ?
Вопрос второй: может быть уже встречался кому-нибудь готовый проект ?

А причины вопроса - электроника варочной панели накрылась... Во всем винаваты тараканы, которые сожрали или как то провзаимодействовали с платой, плата вся в коррозии. Изучать и повторять схемотехнику нет желания. К тому же хочется добавить пару своих фишек - звуковой сигнал каждые 10 минут работы печи, чтобы не забывать про нее (часто вода выкипает). Организовать автоотключение после часа (возможно более) работы, чтобы случайно включенная печь не спалила дом (мало ли чего). Изменить цвет индикаторов =)

Может быть еще чего порекомендуете ?
Реклама
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Aheir »

Собственно, здесь, как всегда, 2 варианта:
1. Начинать ДЕЛАТЬ самому, по ходу спрашивая непонятные моменты на форуме
2. Поручить это специалисту...
Оптимизм х (Опыт + Знания) = const
Реклама
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Вот собственно фирменная плата управления. Сенсоры - ИК фототранзистор и ИК-светодиод.
Размеры своей платы буду делать точ в точ по этой.

Возник вопрос, насколько будут глючные сенсоры, если я буду использовать непрерывно светящиеся ИК диоды ? Расстояние работы должно быть не более 1 см + просветить стекло прозрачное для ИК. Насколько будет чувствителен сенсор к боковой засветке и к самой печке во время работы? Наверное имеет смысл сделать модуляцию, например 38кГц, как в пульте. Есть ли для этого специальные микросхемы - для построения сенсоров ? Не хочу это вводить в задачи микроконтроллера, боюсь запутаться =)

Пока вижу такое решение - использовать непрерывный режим, компаратором задать очень узкое окно, чтобы сенсор работал только при непосредственно на стекле лежащем пальце. Отфильтровать случайные срабатывания "антидребезгом" программно.
Вложения
_DSC0164.JPG
Фирменная плата управления
(130.43 КБ) 457 скачиваний
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Составил алгоритм работы печи. Прошу более опытных в разработке устройств товарищей прокоментировать. Думаю недочетов много.
Вложения
Алгоритм варочной панели.jpg
Блок схема
(171.06 КБ) 446 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Контроллер выбрал MEGA16? потому что много очень их у меня. Думал сперва динамическую индикацию и опрос кнопок в прерывание засунуть. Но в итоге решил статическую индикацию использовать. Опрос кнопок прямо в теле цикла делать. Т.е. вообще от прерываний отказаться.

Код: Выделить всё

while (1)
      {
      m1:   if (PORTA==0x00)
           {
             delay_ms(drebezg);
           };
            if (PORTA==0x00)
           {
             PORTC = number[10];
             PORTD = number[10];
             BUZZER=1;
             delay_ms(450);
             BUZZER=0;
             delay_ms(550);
             PORTC = 0x00;
             PORTD = 0x00;
             goto m2;
             
           };    
                else
                {  
                   PORTC = number[11];
                   PORTD = number[11];
                   for (b=1; b<=6; b++) 
                     { 
                       BUZZER=1;
                       delay_ms(200)
                       BUZZER=0;
                       delay_ms(200)
                     };
                   goto m1; 
                };
      m2:   if (POWER == 1)
              {
              PORTC = number[0];
              PORTD = number[0];
              };
            else 
              {
               goto m1;
              };
            if (1UP == 1)
              {
               delay_ms(drebezg);
               if (1UP == 1)
               {
                heat1++;
               };
              };
            if (1DOWN == 1)
              {
               delay_ms(drebezg);
               if (1DOWN == 1)
               {
                heat1--;
               };
              };
            if (2UP == 1)
              {
               delay_ms(drebezg);
               if (2UP == 1)
               {
                heat2++;
               };
              };
            if (2DOWN == 1)
              {
               delay_ms(drebezg);
               if (2DOWN == 1)
               {
                heat2--;
               };
              };
             
Вот что получилось до настоящего момента. PORTC и PORTD - это индикаторы. Где я уже натворил ошибок ?
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Убрать все goto, очень неудобно с ними. В алгоритме написать где "Да", где "Нет" в блоках проверки. Схему выложить.
Docendo discimus
Реклама
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Код: Выделить всё

if (1UP == 1)               // Если кнопка + первой конфорки нажата, увеличиваем переменную на 1
              {
               delay_ms(drebezg);
               if (1UP == 1)
               {
                heat1++;
                BUZZER=1;               // Пищим буззером   
                delay_ms(200);
                BUZZER=0;
                if (heat1 == 0 || heat1 == 9)   // Если достигли пределов, 
                 {
                   heat1 = -heat1;              // то идем в обратную сторону
                 };
               };
              };
Будет ли работать такая структура ?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Код: Выделить всё

heat1 = -heat1;              // то идем в обратную сторону
???
Docendo discimus
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Ну в arduino так делал =) былНе уверен что в CVAVR так можно )
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Нет, так можно. Смысл?
Docendo discimus
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Ну у меня значение от 0 до 9 должно быть. 9 градаций мощности. Надо или по кругу пускать или просто невозможно сделать дальше листать... Какие еще варианты могут быть ?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Так зачем его в минуса вгонять, если должно быть по кругу? + вложение.
Вложения
_DSC0164_1.JPG
(82.77 КБ) 378 скачиваний
Docendo discimus
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Как прогнать по кругу ? )
Разъем правый используется - через него питание поступает +12В. Через него подключаются два реле , которые коммутируют конфорки. Верхний разъем используется для программирования.
Вложения
_DSC0164 копия.jpg
(146.91 КБ) 356 скачиваний
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Насколько понял конфорки две. Что такое Lock? Как два реле коммутируют две конфорки с изменением нагрева? На определенное время включаются?
По всей видимости не по кругу надо гонять. При нажатии на "+" гнать до 9, а при нажатии на "-" до 0, то биш до выключения. Не так ли?
Docendo discimus
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

lock - блокировка кнопок. выключенную плиту можно заблокировать долгим нажатием кнопки. снятие с блокировки - повторное длительное нажатие. да, реле включают обогреватель на определенное время. максимум - 90% заполнение, период 150 сек.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Реле так работает? Естественно на каждую конфорку свое.
Вложения
Реле.JPG
(20.75 КБ) 382 скачивания
Docendo discimus
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

ага, совершенно верно )
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение pyzhman »

Нарисуйте схему. И для начала в приложении.
Вложения
Begin.jpg
(46.48 КБ) 346 скачиваний
Docendo discimus
Аватара пользователя
Symbiosis
Вымогатель припоя
Сообщения: 600
Зарегистрирован: Вс апр 27, 2008 13:44:52
Контактная информация:

Re: Программное обеспечение для электроплиты

Сообщение Symbiosis »

Так уже лучше ?

Код: Выделить всё

if (1UP == 1)               // Если кнопка + первой конфорки нажата, увеличиваем переменную на 1
              {
               delay_ms(drebezg);
               if (1UP == 1 && heat1<9) // При условии что уже не максимум
               {
                heat1++;
                BUZZER=1;               // Пищим буззером   
                delay_ms(200);
                BUZZER=0;
               };
              };
            if (1DOWN == 1)             // Если кнопка - первой конфорки нажата, уменьшаем переменную на 1
              {
               delay_ms(drebezg);
               if (1DOWN == 1 && heat1>0)// При условии что уже не минимум
               {
                heat1--;
                BUZZER=1;        
                delay_ms(200);
                BUZZER=0;        
               };
              };
Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

Re: Программное обеспечение для электроплиты

Сообщение Garin »

Symbiosis писал(а):Составил алгоритм работы печи...................
Извиняйте понравился стиль файла Алгоритм варочной панели.jpg моно поподробней в какой это программе сделано?
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»