Электронный термометр

Автор artko, 08-12-2015, 17:28:00

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Игорь

#195
Цитата: Черкез від 04-03-2018, 21:39:34Если не сложно ткните студенту, где подробно ознакомится с такой технологией работы с РК, пока постигаю азы, и собираю "железо"
В моей каптерке в разделе "инструкции" есть слегка устаревший алгоритм работы автоматики на базе РМ-2 и ИРТ4К. Этот алгоритм использовали в своих разработках все, кому не лень, да и сейчас продолжают использовать. Возможно, почерпнешь что-то для себя.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

vitallicheg

Цитата: Игорь від 05-03-2018, 17:00:38слегка устаревший алгоритм
Нормальный алгоритм, не перестаю им пользоваьься  ;)

ДимаС

Принесли мне два термопреобразователя, по сути два термодатчика, у одного 2 провода и я так понимаю он не подходит:
тэра тхк 1-7-L-2-И-20-4-2000-ФЭ-(40-250) °C
Guests are not allowed to view images in posts, please Register or Login

Второй четырьмя контактами:
ТСП 1-7 PT100 L40 B3 2000 08/08 -50 +250C
Guests are not allowed to view images in posts, please Register or Login
Най будуть кожному дані граблі по розміру лобу його...

Игорь_Днепр

ДУБОВАЯ ЩЕПА в НАЛИЧИИ

Я не знаю когда ТОЧНО день самогонщика, но я ТОЧНО знаю как его отметить.
Людина не скотина-більше відра не вип'є.

ykpagyckyc

Уважаемый artko.
Вот здесь вы мне помогли с модернизацией прошивки.
http://labspirt.com/forum/index.php/topic,4298.msg224983.html#msg224983
У меня к вам просьба: В рабочем режиме две кнопки, не имеют функций. Возможно ли сделать на них при кратковременном нажатии сброс. Как будто питание по новой включили. В модернизированной прошивке из поста выше при достижении заданной температуры цикл заканчивается и вот чтобы можно его стартануть по новой.

artkoTopic starter

в  user_thread_func добавить что-то типа такого

      if ( (buttons.JustPressed & BUTTON_PLUS) | (buttons.JustPressed & BUTTON_MINUS))
      {
           IWDG->KR = IWDG_KEY_ENABLE;
          while ( 1 );    // Wait until reset occurs from IWDG
      }


не проверял :)

ykpagyckyc

 К сожалению выдаёт ошибку.
Как я понимаю что-то с IWDG_KEY_ENABLE
Но что писать вместо этого даже не представляю....Guests are not allowed to view images in posts, please Register or Login



ykpagyckyc

Как было просто на бейсике  :)
Написал бы GOTO 10 и всё.
Здесь как слепой котёнок  8)

artkoTopic starter

в самом начале добавьте
#include "stm8s_iwdg.h"

здесь тоже можно гото :) только вводить тогда дополнительный код выхода из стопорного цикла. (там где в прошлом изменении стопорило программу)

ykpagyckyc

Спасибо огромное!
Проект скомпилировался.
Но проверить смогу только через пару дней.
Заранее огромное спасибо.

P.S.
Может проверите на ошибки вставку из поста http://labspirt.com/forum/index.php/topic,4298.msg264350.html#msg264350


static NO_REG_SAVE void user_thread_func (void)
{
  if ( (buttons.JustPressed & BUTTON_PLUS) | (buttons.JustPressed & BUTTON_MINUS))
    {
      IWDG->KR = IWDG_KEY_ENABLE;
      while ( 1 );    // Wait until reset occurs from IWDG
      }
  while (1)
  {
    if (buttons.JustPressed & BUTTON_SET)
    {
      buttons.JustPressed &= BUTTON_SET_MASK;
      if (display_mode == DISPLAY_MODE_TEMP)
      {
        // переходим в режим настройки границы температуры
        display_modifier = DISPLAY_MODIFIER_BLINK;
        display_mode = DISPLAY_MODE_TEMP_SET;
        display_temp = *eeTemp1;
      }
    }

    if (display_mode == DISPLAY_MODE_TEMP_SET)
    {
      if (buttons.JustPressed & BUTTON_PLUS)
      {
        buttons.JustPressed &= BUTTON_PLUS_MASK;
        display_temp++;
      }
      if (buttons.JustPressed & BUTTON_MINUS)
      {
        buttons.JustPressed &= BUTTON_MINUS_MASK;
        display_temp--;
      }
      while (buttons.Hold & BUTTON_PLUS)
      {
        display_temp += 10;
        krn_sleep(KRN_FREQ/2);
      }
      while (buttons.Hold & BUTTON_MINUS)
      {
        display_temp -= 10;
        krn_sleep(KRN_FREQ/2);
      }
      if (buttons.JustPressed & BUTTON_SET)
      {
        buttons.JustPressed &= BUTTON_SET_MASK;
        display_mode = DISPLAY_MODE_TEMP;
        display_modifier = DISPLAY_MODIFIER_NONE;
        LED_OFF[0] = 0; LED_OFF[1] = 0; LED_OFF[2] = 0;
        ee_Update_Temp1_Value(display_temp);
      }
      if (buttons.Hold & BUTTON_SET)
      {
        buttons.JustPressed &= BUTTON_SET_MASK;
        display_mode = DISPLAY_MODE_FUNC;
        display_modifier = DISPLAY_MODIFIER_NONE;
        LED_OFF[0] = 0; LED_OFF[1] = 0; LED_OFF[2] = 0;
        LED_DP[1] = 0; LED[1] = 0x0a;
        display_func = *eeTempMode;
        LED[2] = display_func;
        //while (buttons.Hold & BUTTON_SET);
      }
    }
    if (display_mode == DISPLAY_MODE_FUNC)
    {
      buttons.JustPressed &= BUTTON_SET;
      while (!(buttons.JustPressed & BUTTON_SET))
      {
        LED[1] = 0x0a; LED[2] = display_func;
        if (buttons.JustPressed & BUTTON_PLUS)
        {
          buttons.JustPressed &= BUTTON_PLUS_MASK;
          display_func = 1;
        }
        if (buttons.JustPressed & BUTTON_MINUS)
        {
          buttons.JustPressed &= BUTTON_MINUS_MASK;
          display_func = 0;
        }
        krn_sleep(1);
      }
      buttons.JustPressed &= BUTTON_SET_MASK;
      LED_DP[1] = 1;
      display_mode = DISPLAY_MODE_TEMP;
      display_modifier = DISPLAY_MODIFIER_NONE;
      LED_OFF[0] = 0; LED_OFF[1] = 0; LED_OFF[2] = 0;
      ee_Update_TempMode_Value(display_func);
    }
  }
}

artkoTopic starter

надо внутрь цикла

static NO_REG_SAVE void user_thread_func (void)
{
  while (1)
  {

  if ( (buttons.JustPressed & BUTTON_PLUS) | (buttons.JustPressed & BUTTON_MINUS))
    {
      IWDG->KR = IWDG_KEY_ENABLE;
      while ( 1 );    // Wait until reset occurs from IWDG
      }


    if (buttons.JustPressed & BUTTON_SET)
    {
      buttons.JustPressed &= BUTTON_SET_MASK;
      if (display_mode == DISPLAY_MODE_TEMP)
      {


ykpagyckyc

Уважаемый artko!
Вы волшебник! Получилось всё просто отлично. Позже добавлю фотографии моего контроллера для работы бражной колонны.
Ещё раз благодарю от чистого сердца!

1GOG

Цитата: artko від 22-02-2018, 13:11:24там изначально не делался гистерезис. Чисто пороговая хреновина. А нужно?
Уважаемый artko.
Есть ли версия прошивки с реализованным гистерезисом?
Ну или диапазоном температур, при котором реле включено.
Т.е. то, о чем писАл Батарейкин на 12-ой странице темы.
Поделитесь, пожалуйста. Буду очень признателен.

artkoTopic starter

Все что делал в рамках этого термометра - здесь выложено. Другого ничего нет. На какой-то странице(после 12) что-то там скорректированное выкладывал,  делал ли там гистерезис - уже не помню. Возможно как раз оно.

1GOG

Цитата: artko від 05-09-2018, 22:11:56На какой-то странице(после 12) что-то там скорректированное выкладывал,  делал ли там гистерезис - уже не помню.
Еще раз пересмотрел тему, особенно после 12-й страницы.
Ничего исправленного не выкладывалось.
Жаль.   :(

SMF spam blocked by CleanTalk