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

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

  1. #21

    Регистрация
    19.08.2010
    Адрес
    Ставрополь
    Сообщений
    131
    Позывной
    UA7F
    Я применяю ГУ74Б, а у нее ток экранной сетки 10мА.
    Последний раз редактировалось RU9CA; 26.07.2022 в 14:07.


  2. #22
    Цитата Сообщение от UA7F Посмотреть сообщение
    ГУ74Б, ток экранной сетки 10мА.
    По паспорту допустимо до 35мА. На 84-й меряю на катодном резисторе, встроенном конструктивно в панель.

    Цитата Сообщение от ra9dm Посмотреть сообщение
    Я так не думаю. Ток анода должен быть только током анода.....К тому же датчик тока проще поставить на плате ВВ, чем таращить его к катоду лампы.... не правда ли..????
    А что безопаснее - на аноде или в катоде?

    Вообще, стараюсь придерживаться схемных и конструктивных решений, применяемых в заводской аппаратуре для радиолюбителей.
    Последний раз редактировалось RU9CA; 26.07.2022 в 14:07.
    73! С уважением, Олег, RA3DNC

  3. #23
    Аватар для Integral
    Регистрация
    08.02.2007
    Адрес
    г. Снежное
    Сообщений
    2,926
    Записей в дневнике
    1
    Позывной
    UT0IS/D0ISM
    Сделал свой набросок программы. Выводит пока градусник прямой волны, мощность и КСВ. Градусник с мелким шагом для более точной подстройки переменного конденсатора. Реакция шкалы хорошая, носится как угорелый. Шкала мощности на 1000Вт, текущий шаг округления 10Вт. Можно настроить в #define PWRStep. Шкала на 1000Вт практически пропорциональна входному сигналу на входе АЦП U1=1019, можно обойтись без всяких коэффициентов. Сделал более правильный (на мой взгляд) измеритель КСВ, правда толком его не проверял. В отсутствии сигнала он показывает 1.0, максимальные показания 9.9. Ограничить можно хоть до 99, кому как удобно. Но как мне думается до КСВ=10 формат вывода должен быть с десятыми, типа 9.9, а выше КСВ=10 в формате 99 без десятых.
    Что касается библиотек. Стандартные Wire.h и LiquidCrystal_I2C.h здорово тормозят, крайне рекомендую использовать Алекса Гайвера microWire.h и microLiquidCrystal_I 2C.h Они меньше занимают места, около 15-20%, так еще и работают гораздо быстрее. А если подключить его ядро для Atmega328, то еще быстрее.
    По схеме. Датчик температуры нужно подключить к аналоговому порту, которых уже не осталось. Резистор R1 можно не ставить, подключить внутренний. Предусмотреть подключение компьютерной пищалки (ЗП-ки).
    Вложения Вложения
    Интеграл от человеческих заблуждений - истина, производная - безумие.

  4. Спасибо от RK9AMX, tomcat

  5. #24
    Аватар для tomcat
    Регистрация
    27.01.2010
    Адрес
    Магаляндия, колония США
    Сообщений
    1,674
    Записей в дневнике
    3
    на счет измерения анодного, особенно тока,

    сделал набросок идеи :

    Нажмите на изображение для увеличения. 

Название:	измерение тока.GIF 
Просмотров:	3180 
Размер:	34.3 Кб 
ID:	326401

    этот же файл в .spl7 :

    измерение тока.rar
    ICOM-728, Mini SW2013, sdr-trx R3DI (Маламут), ATU N7DDC, Inv-V, GP.

  6. #25
    Аватар для UY3IG
    Регистрация
    10.09.2004
    Адрес
    Дзержинск Донецкой
    Сообщений
    3,658
    Записей в дневнике
    2
    Позывной
    uy3ig
    Сыро.Очень.
    uy3ig

  7. #26
    Аватар для tomcat
    Регистрация
    27.01.2010
    Адрес
    Магаляндия, колония США
    Сообщений
    1,674
    Записей в дневнике
    3
    да без проблем, проэкт открыт ! скетч открыт !

    вносим улучшения в скетч, в схему и выкладываем в этой ветке !

    я ЗА любой кипиш, кроме болтовни.
    Последний раз редактировалось RU9CA; 26.07.2022 в 14:08.
    ICOM-728, Mini SW2013, sdr-trx R3DI (Маламут), ATU N7DDC, Inv-V, GP.

  8. #27
    В принципе, наверное, можно взять за основу схему контроллера 4-й версии RA3YBW, заменив PIC на Arduino.
    73! С уважением, Олег, RA3DNC

  9. #28
    Аватар для RK9AMX
    Регистрация
    26.03.2005
    Адрес
    Челябинск, MO05RE
    Сообщений
    1,341
    Записей в дневнике
    20
    Позывной
    RK9AMX
    Олег,RA3DNC, ссылку дайте на схему.
    ...
    Нашел.
    Приведенная в посте #24 схема соответствует схеме RA3YBW.

    Цитата Сообщение от UY3IG Посмотреть сообщение
    Сыро.Очень.
    Выжмем и высушим))
    Последний раз редактировалось RK9AMX; 19.12.2019 в 16:39.
    Сомнения могут быть устранены только опытом.

  10. #29

    Регистрация
    13.01.2008
    Адрес
    Екатеринбург
    Сообщений
    2,723
    Позывной
    ra9dm
    Цитата Сообщение от Олег,RA3DNC Посмотреть сообщение
    А что безопаснее - на аноде или в катоде?
    Безопаснее в цепи минуса ВВ источника....Относит ельно корпуса единицы вольт на проводах......
    И оставьте уже катод в покое..

    Цитата Сообщение от Олег,RA3DNC Посмотреть сообщение
    Вообще, стараюсь придерживаться схемных и конструктивных решений, применяемых в заводской аппаратуре для радиолюбителей.
    если не ошибаюсь, то в Р-140 так и устроено, через минус.....
    "Мне не нужно многого, я довольствуюсь лучшим" (с)


  11. #30
    Аватар для RK9AMX
    Регистрация
    26.03.2005
    Адрес
    Челябинск, MO05RE
    Сообщений
    1,341
    Записей в дневнике
    20
    Позывной
    RK9AMX
    Integral, Сергей, отлично! Рад, что вы подключились. Можно немного покритиковать оформление текста программы?

    Скрытый текст

    Правила хорошего тона программирования (не претендую на мнение в последней инстанции):
    1. Макросы желательно писать прописными буквами (#define SoundPin 10 -> #define SOUND_PIN 10);
    2. Отдельно строчную букву l (L) и прописную I(i) в макросе, да и вообще в программе лучше избегать. У вас получилось #define l 45, и в формуле V=((U1*5)/1019)*l это читается как единица;
    3. Размерность массивов желательно указывать. Читабельность программы улучшается;
    4. Переменные пишутся строчными буквами. Допускаются прописные в середине названия переменной (например: adcMeasureVariable или adc_measure_variable);
    5. Объявлять переменные лучше по отдельности (uint16_t V=0, PWR=0;). К тому же они совсем разную смысловую нагрузку несут. Присваивать переменным значение 0 (ноль) необязательно. При объявлении переменной компилятор ей по умолчанию присваивает ноль;
    6.
    Код:
    byte a=U1/51;                                                   //вычисляем целое число a для градусника    byte b=U1-a*51;                                                 //вычисляем значение переменной b остатка от деления
          lcd.setCursor(0,0);                                           //уст. курсор начала градусника
      if (a>0){for (byte i=0; i<a; i++){lcd.write(3);}                  //выводим целую часть, если она больше 0
      if (b<=17)lcd.write(1);                                           //выводим дробную часть градусника
      if (b>17&&b<=34)lcd.write(2);                                     //--------------------
      if (b>34&&b<=51)lcd.write(3);                                     //--------------------
      for(byte i=a; i<19; i++)lcd.write(4);}                            //дорисовываем градусник точками
      else {                                                            //если целая часть равна 0
      if (b<=17)lcd.write(1);                                           //выводим дробную часть градусника
      if (b>17&&b<=34)lcd.write(2);                                     //--------------------
      if (b>34&&b<=51)lcd.write(3);                                     //--------------------
    
      for(byte i=a; i<19; i++)lcd.write(4);}                            //дорисовываем градусник точками
    Очень трудно прочитать. Для сравнения после автоформатирования:
    Код:
    byte a = U1 / 51;                                                   //вычисляем целое число a для градусника  byte b = U1 - a * 51;                                               //вычисляем значение переменной b остатка от деления
      lcd.setCursor(0, 0);                                                //уст. курсор начала градусника
      if (a > 0) {
        for (byte i = 0; i < a; i++) {
          lcd.write(3);                                                   //выводим целую часть, если она больше 0
        }
        if (b <= 17)lcd.write(1);                                         //выводим дробную часть градусника
        if (b > 17 && b <= 34)lcd.write(2);                               //--------------------
        if (b > 34 && b <= 51)lcd.write(3);                               //--------------------
        for (byte i = a; i < 19; i++)lcd.write(4);
      }                                                                   //дорисовываем градусник точками
      else {                                                              //если целая часть равна 0
        if (b <= 17)lcd.write(1);                                         //выводим дробную часть градусника
        if (b > 17 && b <= 34)lcd.write(2);                               //--------------------
        if (b > 34 && b <= 51)lcd.write(3);                               //--------------------
        for (byte i = a; i < 19; i++)lcd.write(4);
      }
    После ручного форматирования
    Код:
    byte a = U1 / 51;                                                   //вычисляем целое число a для градусника  byte b = U1 - a * 51;                                               //вычисляем значение переменной b остатка от деления
      lcd.setCursor(0, 0);                                                //уст. курсор начала градусника
      if (a > 0) {
        for (byte i = 0; i < a; i++)
          lcd.write(3);                                                   //выводим целую часть, если она больше 0
        if (b <= 17)
          lcd.write(1);                                                   //выводим дробную часть градусника
        if (b > 17 && b <= 34)
          lcd.write(2);                                                   //--------------------
        if (b > 34 && b <= 51)
          lcd.write(3);                                                   //--------------------
        for (byte i = a; i < 19; i++)
          lcd.write(4);
      }else {                                                             //если целая часть равна 0
        if (b <= 17)
          lcd.write(1);                                                   //выводим дробную часть градусника
        if (b > 17 && b <= 34)
         lcd.write(2);                                                    //--------------------
        if (b > 34 && b <= 51)
          lcd.write(3);                                                   //--------------------
        for (byte i = a; i < 19; i++)
          lcd.write(4);
      }                                                                   //дорисовываем градусник точками
    7. Глобальные переменные объявлять желательно в самом начале (локальные в начале процедуры), а не по ходу алгоритма.
    Это не для того, чтобы докопаться, а чтобы повысить взаимопонимание.



    PWR1 = PWR / PWRStep; PWR = PWR1 * PWRStep;
    Это не округление, а отбрасывание. Если в значении 199 "округлить" таким образом последний разряд с шагом 10, то получим 190. А если последних 2 разряда с шагом 100, то получим 100. Надо что-то другое подсмотреть у умных дядек)))
    Сомнения могут быть устранены только опытом.

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

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

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

Эту тему просматривают: 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

Ваши права

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