1 2 3 4 5 6 7 8 9 10 5.5/10 5,43оценок: 7

Проект "Байконур". Ракетный котел: от теории к практике

Тема в разделе "Котлы, горелки, котельное об-е своими руками", создана пользователем alarin, 25.01.19.

  1. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Продолжу еще немного.
    В коде используется переменная hash которая представляет собой простейший хэш строки символов. Грубо говоря мы последовательно делаем операцию XOR с полученными символами пока не дойдем до пробела (0x40), это признак того что после пойдет числовой параметр. Хеш это перевод строки в число. Если команд немного, то это допустимо. Если команд много, то надо смотреть, такой хеш неоднозначный.
    Ну вернемся. Для строки SETTEMP последовательная операция XOR даст 0x4E и при этом поднимем флаг наличия входящей команды
    State. Cmd_In=1;
    Далее в программе если при проверке State. Cmd_In видим, что есть команда входящая, начинаем ее разбор
    Код:
     if(State.Cmd_In==1)
      {   
      switch(hash)
      {
    ...........
      // отработка командs SETTEMP   
      case 0x4E: if(RBuf.count==0)
      {
      send_USART_str("\n\rNo Val");
      break;
      }
      tmp=atof(RBuf.head)*16;
      if (tmp<=0||tmp>Room_T_Set_max)
      {
      send_USART_str("\n\rinvalid T_set");   
      break;   
      }   
      Room_T_Set=(signed int )tmp;
      break;
    ........
    
    Здесь если нет параметра идет ответ в терминал, что нет параметра
    Если уставка недопустима, ответ что недопустимое значение.
    tmp=atof (RBuf.head)*16; вот здесь переводится строка 22.5 в число.
    Умножение на 16, это потому, что у меня температура учитывается в формате DS18B20, с фиксированной точкой.
    А если допустима, то принимается и устанавливается. Room_T_Set=(signed int) tmp;
     
  2. arsenty
    Регистрация:
    15.01.15
    Сообщения:
    3.193
    Благодарности:
    1.132

    arsenty

    Живу здесь

    arsenty

    Живу здесь

    Регистрация:
    15.01.15
    Сообщения:
    3.193
    Благодарности:
    1.132
    Всё просто работает. Простая арифметическая формула. До тонкостей написания в СИ+ мне нет необходимости входить. А то, что Вы пишете для беспроводного решения, есть в Ардуино в разных вариациях. Кстати, там более простое написание. Там используются модули и к ним есть библиотеки.
     
  3. mednagolov
    Регистрация:
    15.01.14
    Сообщения:
    623
    Благодарности:
    221

    mednagolov

    Живу здесь

    mednagolov

    Живу здесь

    Регистрация:
    15.01.14
    Сообщения:
    623
    Благодарности:
    221
    Адрес:
    Бангалор
    А может тему специальную сапесторить? Ну типа "Ардуину в печь" или того чего то...?
     
  4. nvvizm
    Регистрация:
    23.08.17
    Сообщения:
    223
    Благодарности:
    167

    nvvizm

    Живу здесь

    nvvizm

    Живу здесь

    Регистрация:
    23.08.17
    Сообщения:
    223
    Благодарности:
    167
    Адрес:
    Мичуринск, Тамбовской обл.
    По всей видимости, автору строки достаточно целой части числа.
     
  5. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Это грубейшая ошибка, хотя компилятор и сделает неявное приведение типов., но обругает. А может и не сделать, тогда пойдет не целая часть а мантисса и порядок вообще проионорируется. В сети полно таких кодов, после которых начинаются заклинания типа железо говно, далласы говно. Берут библиотеки без разбора как и что там работает, что один и тот же таймер сбрасявается и работает все это через раз. Да что такое таймер никто и разбираться не хочет. Что операции с п лоаающей точкой эмулируются в 8 битных MCU и занимают кучу времени тоже до фени. А чего там арифметика.
     
  6. mednagolov
    Регистрация:
    15.01.14
    Сообщения:
    623
    Благодарности:
    221

    mednagolov

    Живу здесь

    mednagolov

    Живу здесь

    Регистрация:
    15.01.14
    Сообщения:
    623
    Благодарности:
    221
    Адрес:
    Бангалор
    .можно ли так измерять высокую температуру недорогим датчиком, ну допустим германиевым диодом или переходом транзистора? или погрешность слишком велика будет?
    датчик.jpg
     
  7. mednagolov
    Регистрация:
    15.01.14
    Сообщения:
    623
    Благодарности:
    221

    mednagolov

    Живу здесь

    mednagolov

    Живу здесь

    Регистрация:
    15.01.14
    Сообщения:
    623
    Благодарности:
    221
    Адрес:
    Бангалор
    Какой длинны нужен железный пруток ?
     
  8. Сергей247
    Регистрация:
    30.04.12
    Сообщения:
    6.248
    Благодарности:
    1.901

    Сергей247

    Живу здесь

    Сергей247

    Живу здесь

    Регистрация:
    30.04.12
    Сообщения:
    6.248
    Благодарности:
    1.901
    Адрес:
    Минск
    К деления какой будет?
     
  9. V757V
    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633

    V757V

    Живу здесь

    V757V

    Живу здесь

    Регистрация:
    23.11.11
    Сообщения:
    1.683
    Благодарности:
    633
    Адрес:
    Москва
    Так делать не надо. Так как тут сложная задача по оценке теплового потока. Точности не будет.
     
  10. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.434
    Благодарности:
    1.389

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.434
    Благодарности:
    1.389
    Если второй конец застолбить допустим ведром воды и учитывать его температуру, а пруток ватой обмотать, то почему нет?
    Т. е. использовать как делитель температуры.
     
  11. arsenty
    Регистрация:
    15.01.15
    Сообщения:
    3.193
    Благодарности:
    1.132

    arsenty

    Живу здесь

    arsenty

    Живу здесь

    Регистрация:
    15.01.15
    Сообщения:
    3.193
    Благодарности:
    1.132
    Виктрычч зачем людям пургу гонишь.?. Это будет сродни плевка на железо. Быстро испарилось=много,медленно мало. Я много ставил опытов по этому делению температуры ещё в 80х...
     
  12. Сергей247
    Регистрация:
    30.04.12
    Сообщения:
    6.248
    Благодарности:
    1.901

    Сергей247

    Живу здесь

    Сергей247

    Живу здесь

    Регистрация:
    30.04.12
    Сообщения:
    6.248
    Благодарности:
    1.901
    Адрес:
    Минск
    Вот и я про К деления и спросил. Сие погода на Марсе...
     
  13. Виктрычч
    Регистрация:
    05.06.17
    Сообщения:
    2.434
    Благодарности:
    1.389

    Виктрычч

    Живу здесь

    Виктрычч

    Живу здесь

    Регистрация:
    05.06.17
    Сообщения:
    2.434
    Благодарности:
    1.389
    Ну почему сразу пургу. Если взять медный пруток и теплоизолировав, один конец нагреть до 1000, а второй в лёд сунуть и его обновлять, какая температура будет посередине?
     
  14. arsenty
    Регистрация:
    15.01.15
    Сообщения:
    3.193
    Благодарности:
    1.132

    arsenty

    Живу здесь

    arsenty

    Живу здесь

    Регистрация:
    15.01.15
    Сообщения:
    3.193
    Благодарности:
    1.132
    Будет сложная передача тепловой энергии. Где придётся учитывать кучу коэф-оф сплава металла и скорости нагрева жидкости. А показания температуры стержня будут скакать хлеще блохи. И придётся выводить среднее между точек замеров. Этакое три Д поле получится. Кстати ардушка это осиливает. Когда функцию плоттера применяешь, забавные картинки рисуются.
     
  15. Сергей247
    Регистрация:
    30.04.12
    Сообщения:
    6.248
    Благодарности:
    1.901

    Сергей247

    Живу здесь

    Сергей247

    Живу здесь

    Регистрация:
    30.04.12
    Сообщения:
    6.248
    Благодарности:
    1.901
    Адрес:
    Минск
    Попугаи резвые будут, с норовом. :)