Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 37 из 101 ПерваяПервая ... 27343536373839404787 ... ПоследняяПоследняя
Показано с 361 по 370 из 1003

Тема: Индикатор лампового УМ на Arduino nano 3 и LCD 2004

  1. #361

    Регистрация
    11.10.2008
    Адрес
    ВИЧУГА
    Сообщений
    547
    Позывной
    ua3uhp
    не вижу где написано какой контроллер а это критично


  2. #362
    Аватар для Integral
    Регистрация
    08.02.2007
    Адрес
    г. Снежное
    Сообщений
    2,926
    Записей в дневнике
    1
    Позывной
    UT0IS/D0ISM
    RK9AMX
    Начал процедуру переноса значений из #define в ячейки памяти. В этом процессе возникло несколько вопросов. Нигде не указана у меня мощность для градусника, но это я введу и растяну на весь градусник. Дальше время нагрева и охлаждения. Выделил по 1 байту, а это значит 255. Округлил до целого счета до 250. Это значит максимальное время на разогрев 250 секунд и 250 секунд на охлаждение. Вопрос больше к тем, кто эксплуатирует ламповые усилители. Хватит ли этого времени.
    Интеграл от человеческих заблуждений - истина, производная - безумие.

  3. Спасибо от RK9AMX

  4. #363
    разогрев 3 минуты хватит, а остывать может и больше и меньше, зависит от лампы
    73! Павел VA6AM Мой сайт А Кошка нарисована карандашом!

  5. #364

    Регистрация
    19.08.2010
    Адрес
    Ставрополь
    Сообщений
    131
    Позывной
    UA7F
    Цитата Сообщение от Integral Посмотреть сообщение
    Хватит ли этого времени.
    Хватит.

  6. #365
    Аватар для ua9ocb
    Регистрация
    12.09.2006
    Адрес
    Карасук, MO83xr
    Сообщений
    178
    Позывной
    UB9OFA, ex UA9OCB
    Датчик температуры думаю можно и не ставить. Контроль потока воздуха на флажке очень надежная штука, а сигнал с оптрона подать на контроль анодного напряжения. Появится авария и дополнительно сделать индикацию, что это по воздуху. Датчиком температуры регулировать обороты вентилятора.
    Последний раз редактировалось ua9ocb; 18.01.2020 в 11:46.
    "Собрали и смело включайте,лишнее выгорит" 73! Владимир

  7. #366
    Аватар для RK9AMX
    Регистрация
    26.03.2005
    Адрес
    Челябинск, MO05RE
    Сообщений
    1,340
    Записей в дневнике
    20
    Позывной
    RK9AMX
    Integral, не ограничивайте себя одним байтом. В библиотеке EEPROM есть функция get(), которая позволяет считывать любой тип данных. А записывать соответственно get(). Значение в памяти будет занимать больше одного байта, но нам без разницы. Главное знать адрес первого байта.
    Вот статья на тему работы с EEPROM.
    Предлагаю все данные хранить в 2х байтах (int16_t -32767...32767 или uint16_t). Этого я думаю будет более чем достаточно. Обращаться к ячейкам памяти нужно будет кратно 2 (0, 2, 4...1022). 512 ячеек нам же должно хватить?
    Сомнения могут быть устранены только опытом.

  8. #367
    Аватар для Integral
    Регистрация
    08.02.2007
    Адрес
    г. Снежное
    Сообщений
    2,926
    Записей в дневнике
    1
    Позывной
    UT0IS/D0ISM
    Цитата Сообщение от RK9AMX Посмотреть сообщение
    В библиотеке EEPROM есть функция get(), которая позволяет считывать любой тип данных... Предлагаю все данные хранить в 2х байтах (int16_t -32767...32767 или uint16_t). Этого я думаю будет более чем достаточно.
    Не стыковка. Функция put()/get() использует 4 байта, т.к. сохраняет значения типа float. У нас таких значений нет, поэтому я использую по одному байту для значений до 255 и две ячейки для значений больше 255. Кроме этого я сделал автоматическую коррекцию показаний значений от недопустимых параметров. Такая ситуация возможна, когда считывание значений происходит в первый раз. Во флеш памяти при первом чтении находятся 1, поэтому их необходимо переписать в нужные значения по каждому параметру. Со вчерашнего дня эта версия 1.0.8.1 есть у меня в Облаке.
    Интеграл от человеческих заблуждений - истина, производная - безумие.

  9. #368
    Аватар для RK9AMX
    Регистрация
    26.03.2005
    Адрес
    Челябинск, MO05RE
    Сообщений
    1,340
    Записей в дневнике
    20
    Позывной
    RK9AMX
    Тут пока писал функцию пришло в голову...
    Выделить запись из дефайнов в еепром в отдельную процедуру. Можно будет после прошивки делать инициализацию контроллера и в случае необходимости сбрасывать до "заводских" настроек.
    Код будет такой:
    Код:
    EEPROM.put(0,     DEFINE0);
    EEPROM.put(2,     DEFINE1);
    EEPROM.put(4,     DEFINE2);
    ...
    EEPROM.put(ADDR_N,     DEFINE_N);
    Добавлено через 10 минут(ы):

    Цитата Сообщение от Integral Посмотреть сообщение
    Не стыковка. Функция put()/get() использует 4 байта
    Можно и 2 байта, попробуйте. Прочитайте статью, там 4 пример демонстрирует работу этих процедур.

    Добавлено через 13 минут(ы):

    Если предпочитаете работать с байтами, то можно обращаться к памяти как к массиву. Значения получать с помощью битовых операций. Сам правда пока такой способ не испытывал.
    Код:
    value = (EEPROM[0]<<8) | EEPROM[1];
    Последний раз редактировалось RK9AMX; 18.01.2020 в 20:26.
    Сомнения могут быть устранены только опытом.

  10. #369
    Аватар для Integral
    Регистрация
    08.02.2007
    Адрес
    г. Снежное
    Сообщений
    2,926
    Записей в дневнике
    1
    Позывной
    UT0IS/D0ISM
    Цитата Сообщение от RK9AMX Посмотреть сообщение
    Прочитайте статью, там 4 пример демонстрирует работу этих процедур.
    У меня сделано удобнее и проще.

    Добавлено через 12 минут(ы):

    Цитата Сообщение от RK9AMX Посмотреть сообщение
    Тут пока писал функцию пришло в голову...
    Выделить запись из дефайнов в еепром в отдельную процедуру. Можно будет после прошивки делать инициализацию контроллера и в случае необходимости сбрасывать до "заводских" настроек.
    Код будет такой:
    Код:
    EEPROM.put(0,     DEFINE0);
    EEPROM.put(2,     DEFINE1);
    EEPROM.put(4,     DEFINE2);
    ...
    EEPROM.put(ADDR_N,     DEFINE_N);
    Здесь ошибка. Процедура EEPROM.put использует 4-ре ячейки памяти. В таком варианте, если начинать писать с 0 ячейки, данные затрут что находится во 2-й и 3-й ячейках.
    Последний раз редактировалось Integral; 18.01.2020 в 20:42.
    Интеграл от человеческих заблуждений - истина, производная - безумие.

  11. Спасибо от RK9AMX


  12. #370

    Сообщение

    Цитата Сообщение от Integral Посмотреть сообщение
    RK9AMX
    НВыделил по 1 байту, а это значит 255. Округлил до целого счета до 250. Это значит максимальное время на разогрев 250 секунд и 250 секунд на охлаждение.
    Сергей тут легко получить 500 или 750 секунд если считанный байт умножить на два или три. То есть читается байт и умножается на два = результат двухбайтовое значение. Понятно что дискретность удвоится но для разогрева лампы это не важно. Там точность в секунду не имеет значения.

    А можно и через оверлей. На Си он должен быть. Удобная штука. С еепром читается младший байт двухбайтовой переменой и умножается на два. А если нужно записать назад то два байта делится на 2 и в еепром загоняется младший байт. Обратное преобразование. Я такое повсеместно использую где не требуется принципиальная точность. Более байта и более переменные использую только там где они нужны. А дробные не использую совсем. Проще и быстрее работать с остатком от деления или умножения. Так максимально быстро работает и минимальный размер хекса.

  13. Спасибо от Integral

Страница 37 из 101 ПерваяПервая ... 27343536373839404787 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Контроллер на Arduino NANO и индикаторе WH1602 для транзисторного УМ
    от D0ITC в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 18
    Последнее сообщение: 16.01.2024, 10:20
  2. ad9952+arduino nano
    от greekk в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 5
    Последнее сообщение: 13.06.2019, 12:31
  3. Si5351 arduino nano cw передатчик
    от Tlg в разделе Для начинающих
    Ответов: 4
    Последнее сообщение: 18.04.2019, 16:46
  4. Arduino nano v3+ad9850 cw transmitter
    от Tlg в разделе Для любителей QRP и QRPP
    Ответов: 15
    Последнее сообщение: 09.01.2019, 21:42
  5. Контроллер на Arduino NANO и индикаторе WH1602 для транзисторного УМ
    от в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 0
    Последнее сообщение: 01.01.1970, 03:00

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •