РЕШЕНО Помогите доработать скетч

Тема в разделе "Arduino & Shields", создана пользователем Vlikv, 16 янв 2024.

Статус темы:
Закрыта.
  1. Vlikv

    Vlikv Нуб

    Всем привет.
    Есть программка на ардуино нано управление нагревом тэна в зависимости от температуры, хочу ее доработать, но не получается(. Задача сделать режимы температуры не целыми числами а десятичными и соответственно чтобы энкодер менял значения на 0.1 единицу. Помогите.
     

    Вложения:

    • project.ino
      Размер файла:
      13 КБ
      Просмотров:
      45
  2. DetSimen

    DetSimen Гуру

    Нахуа? Ты отличишь в комнате 20.1 гра от 20.5? Или в -34 можно шапку не надевать, а в -34.5 уже обязательно?
     
    parovoZZ, Feofan и Airbus нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Про float слышали что нибудь? Это не Флот это числа такие с запятой тобишь дроби
     
  4. Airbus

    Airbus Радиохулиган Модератор

    А вдруг? В самогонном аппарате говорят сотая градуса влияет на вкус. Хотя у меня гонит и без градусника.
     
    Igor68 нравится это.
  5. fogary

    fogary Гик

    Допустим, оно Вам реально надо. Какие доработки Вы пытались сделать и что не получается?
     
  6. Vlikv

    Vlikv Нуб

    Не получается заставить энкодер менять числа на 0.1

    int valEnc= myEncoder();
    if (valEnc != 0)
    { // обработка поворота энкодера
    Beep();
    if (Mode==2)
    {// изменяем T1
    T1= T1+valEnc;
    if (T1 < 10) T1=10;
    if (T1 > 99) T1=99;
    LCD();
    }
     
  7. Vlikv

    Vlikv Нуб

    И пишет целое число, даже если я задаю десятичное

    #define T_1 65.8

    а получаю 65
     
  8. b707

    b707 Гуру

    Вы думаете по этим кусочкам кода можно что-то сказать?
    Выкладывайте скетч полностью!
     
  9. Vlikv

    Vlikv Нуб

    В начале темы во вложении.
     

    Вложения:

    • project.ino
      Размер файла:
      13 КБ
      Просмотров:
      47
  10. b707

    b707 Гуру

    не нашел в коде, где вы пытались задавать дробные числа. Везде только целые, так что неудивительно, что и на выходе у вас целые.

    Вы вообще разницу между целыми и вещественными числами различаете?
     
  11. fogary

    fogary Гик

    Например:
    Код (C++):
    int valEnc= myEncoder();
    float valEncFloat = valEnc / 10.0;
    Как Вы это узнали?
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Мой приятель гонит с градусником. Не сотые конечно, но пол-градуса старается держать. Про вкус говорит то же самое.
     
    Airbus нравится это.
  13. Asper Daffy

    Asper Daffy Иксперд

    А уж в акустике-то! Если аудио-шнур дешевле полтора ляма, про хороший звук забудь
     
    ostrov и Airbus нравится это.
  14. Airbus

    Airbus Радиохулиган Модератор

    Не здесь ли Собака порылась?
    Код (Text):
    int T1,T2,T3;             // контрольные точки по температуре
    А нельзя сразу так?
    Код (Text):
    float valEnc = 0.1;
     
    b707 нравится это.
  15. parovoZZ

    parovoZZ Гуру

    в Hi-End именно так.


    А зачем?
     
  16. User248

    User248 Гик

    Там ещё и в EEPROM записывается. Если int поменять на float, то адреса придётся переделывать.
     
  17. User248

    User248 Гик

    В идеале нужно иметь возможность менять шаг, чтобы энкодер полчаса не крутить.
     
  18. Airbus

    Airbus Радиохулиган Модератор

    Дак ясен пень
    А оно надо?
     
  19. parovoZZ

    parovoZZ Гуру

    Конечно, надо. Чем быстрее крутишь, тем выше шаг.
     
  20. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Если "прокрутил" 5 единиц и продолжаешь крутить - шаг растет на порядок. И тд. Привязывать к скорости как-то не понятно.
     
Статус темы:
Закрыта.