Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 167 из 223 ПерваяПервая ... 67117157164165166167168169170177217 ... ПоследняяПоследняя
Показано с 1,661 по 1,670 из 2227

Тема: ARDUINO

  1. #1661
    Аватар для Integral
    Регистрация
    08.02.2007
    Адрес
    г. Снежное
    Сообщений
    2,926
    Записей в дневнике
    1
    Позывной
    UT0IS/D0ISM
    Цитата Сообщение от tomcat Посмотреть сообщение
    как закруглить отображение анодного напряжения кратно 20 или 50 В, так как беготня цифр немного отвлекает ?
    Достаточно легко. Там округление необходимо не только для напряжения, но и для мощности. Ловить 1Вт при показаниях больше 1кВт не есть хорошо. Цифры прыгают и мельтешат. Например округление мощности я делаю находу в программе вот так:
    Код:
    uint16_t PWR1=PWR/PWRstep; PWR=PWR1*PWRstep;
    Вводим промежуточную переменную PWR1, далее мощность делим на шаг округления PWRstep. Затем получаем мощность кратно PWRstep. Если нужно сделать округление до 10Вт, то код будет таким:
    Код:
    uint16_t PWR1=PWR/10; PWR=PWR1*10;
    Шаг округления удобно внести в начале скетча в #define и там его менять при необходимости. Аналогично можно сделать и для напряжения.
    Интеграл от человеческих заблуждений - истина, производная - безумие.


  2. #1662
    Аватар для tomcat
    Регистрация
    27.01.2010
    Адрес
    Магаляндия, колония США
    Сообщений
    1,674
    Записей в дневнике
    3
    Цитата Сообщение от Integral Посмотреть сообщение
    В результате из 10 измерений в U1 и U2 мы получим максимальное значение.
    добавил отображение максимального значения в числовом отображении

    PWR=1472W

    градусник к этой процедуре не удалось прицепить,

    Код:
    ...
    // измерение мощности и КСВ
    // устанавливаем курсор в колонку 10, строку 1
    lcd.setCursor(0, 1);
    // считываем показания с аналогового входа A6 A7
    //int pwr1 = analogRead(A6);
    //int pwr2 = analogRead(A7);
    
    
    int pwr1=0,pwr2=0; //назначаем переменные прямой и обратной волны
    const int COUNT = 10; //назначаем константу кол-во измерений
    for (byte i=0; ++i<COUNT;){ //включаем цикл измерения
    int pwr1temp = analogRead(A6); //суммируем значения pwr1 с порта А6
    int pwr2temp = analogRead(A7); //суммируем значения pwr2 с порта А7
    if (pwr1temp>=pwr1){pwr1=pwr1temp;} //получаем максимальное значение pwr1
    if (pwr2temp>=pwr2){pwr2=pwr2temp;}} //получаем максимальное значение pwr2
    // pwr1 = pwr1 / COUNT; //усредняем значение pwr1
    // pwr2 = pwr2 / COUNT; //усредняем значение pwr2
    
    // переводим значения с АЦП A6 A7 в вольты
    float U1 = pwr1 * (5.0 / 73.0);
    float U2 = pwr2 * (5.0 / 73.0);
    // переводим вольты в мощность и КСВ
    int pwr11 = ((U1*U1)/50) * 15; // тут правим коэффициент для мощности 1472 Вт
    int swr12 = ((U1+U2)/(U1-U2)) * 100;
    //ограничиваем значение КСВ на уровне 9.99
    // выводим результат на дисплей
    lcd.print("PWR=");
    // устанавливаем курсор в колонку 4, строку 1
    lcd.setCursor(4, 1);
    lcd.print(pwr11);
    lcd.print("W ");
    ...

    также добавил усреднение анодного напряжения :

    Код:
    ...
    // измерение анодного напряжения
      // устанавливаем курсор в колонку 0, строку 2
      lcd.setCursor(0, 2);
      // считываем показания с аналогового входа A0
      // int anodU = analogRead(A0);
    
    
      int anodU=0;                                                                //назначаем переменные прямой и обратной волны
      for (byte i=0; i<10; i++){                                                   //включаем цикл измерения
        anodU +=  analogRead(A0);}                                                        //суммируем значения anodU с порта А0
        anodU = anodU / 10;                                                              //усредняем значение anodU
        
      // переводим значения с АЦП A0 в вольты
      float sensorVoltage = anodU * (5.0 / 120.0); // тут правим коэффициент для другого верхнего значения напряжения
      // переводим вольты в напряжение
      int anodV = sensorVoltage * 100;
      // выводим результат на дисплей
      lcd.print("Ua=");
      // устанавливаем курсор в колонку 3, строку 2
      // на самом деле это третья строка, т.к. нумерация начинается с нуля
      lcd.setCursor(3, 2);
      lcd.print(anodV);
      lcd.print("V  ");
    
    ...

    скетч текущей версии :


    LcdBarGraph_21_11_2019_I2C_1660.rar


    на УМ еще не опробован.


    .
    Последний раз редактировалось tomcat; 18.12.2019 в 13:35.
    ICOM-728, Mini SW2013, sdr-trx R3DI (Маламут), ATU N7DDC, Inv-V, GP.

  3. #1663
    Аватар для RK9AMX
    Регистрация
    26.03.2005
    Адрес
    Челябинск, MO05RE
    Сообщений
    1,341
    Записей в дневнике
    20
    Позывной
    RK9AMX
    tomcat, несколько вопросов по принципиальной схеме.
    1. Какой датчик используется для измерения тока?
    2. Какой датчик используется для измерения напряжения?
    3. Как производится измерение КСВ?
    В общем схему бы целиком посмотреть, можно от руки нарисованную. Эти вопросы возникли когда правил ваш скетч. Для полноты картины не хватает данных. Поэтому коэффициенты при вычислении значений напряжения и тока оставил какие были. Если поменяется плата ардуино, то придется их подбирать заново. Поэтому желательно вывести их в define, для удобства регулировки.

    Исправленный скетч без глобальных правок (исправлена только функция вывода градусника) - ver1. Скетч с глобальными правками ver2.

    Возникнут вопросы, пишите.

    P.S. Может по этому проекту создадите отдельную тему? Здесь конечно не оффтоп, но проект уже вырисовывается. Может ещё кому будет интересна данная конструкция. А в этой теме вся информация затеряется со временем.
    Вложения Вложения
    • Тип файла: zip ver1.zip (2.2 Кб, Просмотров: 356)
    • Тип файла: zip ver2.zip (2.7 Кб, Просмотров: 355)
    Сомнения могут быть устранены только опытом.

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

  5. #1664
    Аватар для tomcat
    Регистрация
    27.01.2010
    Адрес
    Магаляндия, колония США
    Сообщений
    1,674
    Записей в дневнике
    3
    Цитата Сообщение от RK9AMX Посмотреть сообщение
    Может по этому проекту создадите отдельную тему?
    ок ! сделано.



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



    отрабатывать скетч и тестировать в железе будем там.
    ICOM-728, Mini SW2013, sdr-trx R3DI (Маламут), ATU N7DDC, Inv-V, GP.

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

  7. #1665
    Аватар для AlexJ
    Регистрация
    06.10.2006
    Адрес
    Н.Новгород, NN03, LO16XH
    Сообщений
    1,376
    Позывной
    RA3TEJ
    Вопрос к знатокам Arduimo Nano, столкнулся в проекте ант.анализатора на этом модуле, там обвязке CH340G применяется пьезо-резонатор на 12МГц, просмотрел имеющиеся у меня модули нано, там вообще отсутствует этот кварц, и тем не менее модули работают!?, так он обязателен или нет?

  8. #1666
    Такой же на обратной стороне для атмеги. Либо вариации, один такой, а для атмеги стандартная лодочка.
    Нажмите на изображение для увеличения. 

Название:	кварц.JPG 
Просмотров:	273 
Размер:	69.8 Кб 
ID:	326448

  9. #1667
    Аватар для AlexJ
    Регистрация
    06.10.2006
    Адрес
    Н.Новгород, NN03, LO16XH
    Сообщений
    1,376
    Позывной
    RA3TEJ
    Цитата Сообщение от fedorenko28 Посмотреть сообщение
    Такой же на обратной стороне для атмеги.
    Для атмеги такой стоит, для 340 нет, и не было изначально! Отсюда и вопрос...
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	viber image.jpg 
Просмотров:	205 
Размер:	131.3 Кб 
ID:	326451  

  10. #1668
    Если верить даташиту, CH340B и CH340C применяются без внешнего резонатора. В любом случае, если обнаруживается в системе при подключении - значит хоть как-то работает.

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

  12. #1669

    Регистрация
    20.01.2011
    Адрес
    Москва
    Сообщений
    52
    Позывной
    R2AAR
    Добрый день.
    Набрел в интернете на схему управление согласующим на Ардуино.
    Автор Рольф DF7XH.
    Написал ему и он выслал скетч.
    Собрал, работает.
    Но я был уверен что при ручной подстройке L и C, новые значения запишутся в память и при последующем вызове нужного диапазона они сохранятся.
    Но оказалось что нет, они фиксировано прописаны в самом скетче.
    К примеру для 30М диапазона, значение L выставляется 640:
    #define POSN_CMD_L_30 640 // Commanded position L motor for 30m band
    Можно как то поправить(дописать/переписать) что бы при подстройке клавишами Fine Tune L и Fine Tune C, новые значения L и C заносились в память и при последующем вызове этого диапазона они сохранялись.
    Сам я не смогу это точно.
    И еще было бы не плохо расширить количество диапазонов до 9. Резисторы в делитель я добавлю, а вот поправить в скетче проблема для меня.
    Замерил напряжение на Pin A2 и составил таблицу:
    Диапазон
    Pin A2 V
    Значение по формуле Напряжение/0,0049V
    30
    0,89
    181,63
    20
    1,59
    324,49
    17
    2,49
    508,16
    15
    3,44
    702,04
    12
    3,86
    787,76
    10
    4,11
    838,78
    Эти значения вписаны в скетче:
    if (((band >= 0) && (band < 250)) && ((band_1 >= 0) && (band_1 < 250))) // 30m band selected
    if (((band >= 251) && (band < 416)) && ((band_1 >= 251) && (band_1 < 416))) // 20m band selected
    и так далее.
    Буду рад если кто поможет. Можно в личку или на почту. А можно и здесь, думаю многих заинтересует.
    Вложения Вложения


  13. #1670
    Архив повреждён? У меня не открывается.

Страница 167 из 223 ПерваяПервая ... 67117157164165166167168169170177217 ... ПоследняяПоследняя

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

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

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

Ваши права

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