Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 22 из 124 ПерваяПервая ... 12192021222324253272122 ... ПоследняяПоследняя
Показано с 211 по 220 из 1234

Тема: Контроллер с LCD дисплеем для транзисторного УМ на MEGA2560

  1. #1
    Аватар для D0ITC
    Регистрация
    16.11.2008
    Адрес
    г. Снежное
    Сообщений
    1,113
    Позывной
    D0ITC

    Контроллер с LCD дисплеем для транзисторного УМ на MEGA2560

    Контроллер для транзисторного усилителя можности на Arduino MEGA2560 от US2IT и UT0IS/D0ISM
    Описание:

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

    Проект открытый, возможно будут некоторые изменения. И еще, мы никогда не эксплуатировали и не делали достаточно мощных транзисторных усилителей мощности, у нас нет импортных трансиверов. Проверить готовый блок с усилителем мощности нам негде. Ситуация в регионе сами знаете какая. Я постараюсь сделать ознакомительное видео в ближайшем будущем, сейчас немного анонсирую некоторые возможности, дабы исключить часть вопросов. Устройство управляется четырьмя кнопками. Каждая кнопка имеет по две функции, при загрузке есть сброс настроек по умолчанию. Кнопки могут работать с бипером, эта функция отключается. Все текущие настройки хранятся во внутренней Flash памяти и каждый раз сохраняются перед отключением питания (переход в BYPASS). Информация отображается на дисплее и разбита на функциональные окна - выходная мощность, состояние BYPASS/POWER ON, КСВ, входная мощность, окно режима переключения диапазонов Manual/Yaesu/Icom/Auto, отображение тока, напряжения и температуры.

    Блок управления имеет защиты:
    - по превышению тока
    - по нижнему порогу напряжения питания
    - по верхнему порогу напряжения питания
    - по температуре
    - по превышению КСВ
    - по превышению входной мощности

    Ток, напряжение, температура и КСВ контролируются непрерывно. В окне входной мощности отображается текущая авария красным шрифтом. В аварийной ситуации блок управления переводит усилитель в режим BYPASS и принудительно отключает передачу усилителя. При этом экран моргает красной рамкой и звуковой сигнализацией. По каждой аварии имеется свой звуковой код и частота сигнализации. Входная мощность отображается в двух масштабах - 30 и 120Вт. В режиме POWER ON масштаб 30Вт, в BYPASS 120Вт. Это позволяет использовать блок управления и усилитель в режиме BYPASS, например работая трансивером полной мощностью через усилитель. При этом можно контролировать мощность с трансивера и КСВ на выходе усилителя мощности. При включенном питании масштаб 30Вт выбран из условия, что этой мощности достаточно для раскачки любого транзистоного усилителя мощности. Лишнюю мощность можно погасить на входных аттенюаторах, блоком предусмотрено включение двух аттенюаторов по 3дБ каждый, т.е. суммарно 6дБ. Это даст ослабление в 4 раза по мощности и при масштабе 30Вт получим 7.5Вт на входе усилителя мощности. Аттенюаторы подключаются нажатием кнопки по кольцу - ATT OFF, ATT -3dB, ATT -6dB, ATT AUTO. В авто режиме блок управления "следит" за входной мощностью и в случае его превышения автоматически подключает аттенюатор -3dB. Контроль мощности как входной, так и выходной осуществляется по градусникам. Для входной мощности имеется 30 кубиков, т.е. 1Вт на 1 кубик. Для выходной мощности есть 50 кубиков градусника, т.е. 20Вт на 1 кубик. Для измерительных данных или для настройки усилителя есть возможность отображения мощности в цифровой форме над шкалой выходной мощности. Это функция отключаема и может сохраняться при загрузке.
    В блок управления встроена функция высокочастотного вокса (VOX). Причем работать VOX может по двум каналам одновременно - наличие аналогового сигнала с датчика прямой волны входной мощности и наличие частоты на счетном входе платы Ардуино (цифровой VOX). В автоматическом определении рабочего диапазона работает только цифровой VOX. Реализован режим автоматического определения диапазона по ВЧ сигналу. Входящая частота после платы формирователя-делителя поступает на вход Ардуино, где происходит цифровая фильтрация полученного сигнала и подключение нужного ФНЧ с задержкой на передачу, если текущий диапазон не совпадает с новым.
    Вот такие основные функции реализованы в этом блоке управления.



    Прошивка от 09.03.18. Описание изменений в постах 40 и 41.
    Прошивка от 12.03.18. Описание. п.48
    Прошивка от 15.03.18 Описание пост 60
    PA_control_unit_prot ection_AUTO_menu_v2_ 1.rar


    схема от 09.03.18.



    Комментарий модератора

    1. UN7RX:
    2. Прошу всех учесть - это авторская тема, в ней запрещены какие либо отклонения содержимого от названия темы, кроме тех что вносят сами авторы, любые претензии к авторам в любой форме, флуд и прочее. Нарушения будут строго наказываться.
    Последний раз редактировалось UN7RX; 30.05.2019 в 05:37.



  2. #211
    Цитата Сообщение от Integral Посмотреть сообщение
    конфигурирует работу датчика С ПАРАЗИТНЫМ ПИТАНИЕМ!
    Читайте даташит

    Convert T [44h]This command initiates a single temperature conversion.Following the conversion, the resulting thermal data isstored in the 2-byte temperature register in the scratchpadmemory and the DS18B20 returns to its low-poweridle state. If the device is being used in parasite powermode, within 10µs (max) after this command is issuedthe master must enable a strong pullup on the 1-Wire busfor the duration of the conversion (tCONV) as describedin the Powering the DS18B20 section. If the DS18B20 ispowered by an external supply, the master can issue readtime slots after the Convert T command and the DS18B20will respond by transmitting a 0 while the temperatureconversio n is in progress and a 1 when the conversion isdone. In parasite power mode this notification techniquecannot be used since the bus is pulled high by the strongpullup during the conversion.


    This command initiates a single temperature conversion.

  3. #212

    Регистрация
    01.08.2013
    Адрес
    г. Полтава
    Сообщений
    572
    Позывной
    UR7HFO
    Я выше в посте http://www.cqham.ru/forum/showthread...=1#post1522085

    Выложил скетч с библиотекой и небольшой модификацией касающейся только датчика температуры. Сегодня еще раз проверил, температура читается стабильно с ds18b20, и это при использовании 12-битного режима точности ds18b20.
    Прошу людей у кого были проблемы с датчиком температуры, проверить эту версию у себя.
    73! Дмитрий http://www.qrz.com/db/UR7HFO

  4. #213
    Всем с праздничком!нужна помощь.Приобрел Ардуино 2560 с сенсорным экраном но прошиваться не хочет ошибка и все

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

    Где найти эти 2 библиотеки
    #include <Wire.h> //подключаем библиотеку I2C
    #include <EEPROM.h> //подключаем библиотеку EEPROM
    Заранее спасибо
    Последний раз редактировалось RZN_FT991; 18.04.2018 в 16:11.

  5. #214
    Аватар для D0ITC
    Регистрация
    16.11.2008
    Адрес
    г. Снежное
    Сообщений
    1,113
    Позывной
    D0ITC
    Библиотека Wire.h во вложении, а EEPROM.h у вас есть в программе Arduino IDE. Когда её загрузите зайдите во вкладку Скетч, потом в Подключить библиотеку и полистайте, она там должна быть.
    Вложения Вложения
    • Тип файла: zip Wire.zip (15.0 Кб, Просмотров: 136)

  6. #215
    Уважаемые гуру, проверьте пожалуйста синтаксис, первый раз работаю с Ардуино.
    Объявляю:
    #define DS_UPDATE_TIME 1000 //интервал времени опроса датчика темпертуры
    unsigned long dsLastUpdateTime=0; //переменная времени опроса
    int dsUpdate=0; //флаг необходимости измерения температуры


    void set_temp(){ //******************** ******************** *** Датчик DS18B20 температура радиатора
    byte present = 0;
    byte data[12];

    if(dsUpdate==0){ //если нету флага о преобразовании пойдем на измерение температуры
    dsUpdate=1; //все вошли, запускаем преобразование пока на пройдет 1000 повторно сюда не входим
    dsLastUpdateTime=mil lis(); // фиксируем время входа
    ds.reset(); //сбрасываем датчик температуры
    ds.write(0xCC); //пропускаем поиск ROM, так как на шине один датчик
    ds.write(0x44, 1);} // start conversion, with parasite power on at the end

    if(millis()-dsLastUpdateTime>DS_ UPDATE_TIME){ //если текущее значение времени больше заданного DS_UPDATE_TIME то можно считывать температуру

    present = ds.reset(); //сбрасываем датчик температуры
    ds.write(0xCC); //пропускаем поиск ROM
    ds.write(0xBE); // Read Scratchpad считываем ОЗУ датчика
    data[0] = ds.read ();
    data[1] = ds.read (); //считываем побайтно озу датчика
    int16_t raw = (data[1] << 8) | data[0]; //конвертируем полученные данные
    float temp = (float)raw / 16.0; //приводим значение температуры к градусам цельсия
    dsUpdate=0;} // все температуру записали, можно начнать все сначала

    tft.setTextPadding(5 0); //включаем обновление подложки шрифта
    if (temp<TFanMax){tft.s etTextColor(TFT_GREE N,TFT_BLACK);} //если "temp<TFanMax" выбираем зелёный цвет текста
    if (temp>=TFanMax){tft. setTextColor(TFT_RED ,TFT_BLACK);} //если "temp>=TFanMax" выбираем красный цвет текста
    tft.setFreeFont(FSSB 12); tft.setTextPadding(0 );
    и т.д.

  7. #216
    Аватар для D0ITC
    Регистрация
    16.11.2008
    Адрес
    г. Снежное
    Сообщений
    1,113
    Позывной
    D0ITC
    dsLastUpdateTime=mil lis(); // фиксируем время входа, уберите пробел в миллисе, первое что бросается в глаза.


  8. #217
    Оживлю тему... вот так все работает

    void set_temp(){//******************** ******************** ******************** *************** Датчик DS18B20 температура радиатора
    byte data[2];
    int16_t raw;

    if(dsUpdate==0){ //если нету флага о преобразовании пойдем на измерение температуры
    dsLastUpdateTime = millis(); // фиксируем время входа
    ds.reset(); //сбрасываем датчик температуры
    ds.write(0xCC); //пропускаем поиск ROM, так как на шине один датчик
    ds.write(0x44, 1);
    dsUpdate = 1;} //все вошли, запускаем преобразование пока на пройдет 1000 повторно сюда не входим

    if(millis()-dsLastUpdateTime>DS_ UPDATE_TIME){ //если текущее значение времени больше заданного DS_UPDATE_TIME то можно считывать температуру
    dsUpdate = 0; // все температуру записали, можно начнать все сначала
    ds.reset(); //сбрасываем датчик температуры
    ds.write(0xCC); //пропускаем поиск ROM
    ds.write(0xBE); // Read Scratchpad считываем ОЗУ датчика
    data[0] = ds.read ();
    data[1] = ds.read (); //считываем побайтно озу датчика

    raw = (data[1] << 8) | data[0]; //конвертируем полученные данные
    temp = raw / 16.0; } //приводим значение температуры к градусам цельси


    tft.setTextPadding(5 0); //включаем обновление подложки шрифта
    if (temp<TFanMax){tft.s etTextColor(TFT_GREE N,TFT_BLACK);} //если "temp<TFanMax" выбираем зелёный цвет текста
    if (temp>=TFanMax){tft. setTextColor(TFT_RED ,TFT_BLACK);} //если "temp>=TFanMax" выбираем красный цвет текста
    if (temp<TFanOff){tft.f illRect(366,115,29,2 6,TFT_BLACK); //если температура меньше TFanOff затираем символ вентилятора
    digitalWrite(Fantemp ,LOW);} //на выходе Fantemp низкий уровень
    if (temp>=TFanOn){digit alWrite(Fantemp,HIGH ); symbol_fan();} //если температура выше 30грдС выводим символ вентилятора, на выводе Fantemp высокий уровень
    if ((temp>=TFanMax)&&(s tatealarm==false)){ //при превышении температуры
    flag_tempalarm=1; TONE=2200; Time=70; N=6; //устанавливаем "flag_tempalarm" в 1, выбираем тон сигнала
    tft.setTextColor(TFT _RED,TFT_BLACK); //выбираем цвет текста
    tft.setTextPadding(1 58);tft.drawString(" OVERHEAT!!!",200,120 ,4);} //включаем обновление подложки шрифта, выводим надпись "OVERHEAT!!!" красным цветом

    tft.setFreeFont(FSSB 12); tft.setTextPadding(0 ); //выбираем шрифт и выключаем обновление подложки шрифта
    char buf[5]; byte len = 4; dtostrf(temp,-len,1,buf); //конвертируем символьный массив
    buf[len] = 'C'; buf[len+1] = 0; //вывода данных температуры

    Wire.requestFrom(104 ,2); //получаем данные с адреса 104 I2C
    if(Wire.available()) { //если линия I2C отвечает
    tft.drawString("Tr:" ,365,288,1); //выводим надпись "Tr:"
    tft.drawCentreString (buf,435,286,4);} //выводим значение температуры с добавлением "С"
    else {tft.drawString("Tr: ",365,288,1); //выводим надпись "Tr:"
    tft.drawCentreString (buf,435,286,4); //выводим значение температуры с добавлением "С"
    tft.setFreeFont(FSSB 9); tft.setTextColor(TFT _DARKGREY); //выбираем шрифт и цвет текста
    tft.drawCentreString ("DS18B20",415,265,1 );} //выводим надпись "DS18B20"

    }

  9. #218
    Аватар для Veka
    Регистрация
    18.01.2006
    Адрес
    Московская обл.
    Сообщений
    2,135
    Victor72, чтобы движок форума не коверкал текст программы ненужными пробелами, используйте режим вставки кода (#).
    Вот что делает движок форума если напечатать слишком длинную строку без пробелов:
    12345678901234567890 12345678901234567890 12345678901234567890 ,
    а вот то же самое через (#):
    Код:
    123456789012345678901234567890123456789012345678901234567890

  10. #219
    Цитата Сообщение от Veka Посмотреть сообщение
    используйте режим вставки кода (#)
    а вот за это спасибо, видел, что так вставляют, а как не знал...


  11. #220
    Аватар для AlexW
    Регистрация
    13.11.2008
    Адрес
    Курская обл.
    Сообщений
    570
    Позывной
    RA3WSA
    Народ, ну все таки, кто где берет ардуинку с дисплеем? На али ардуинок полно,но исчезли дисплеи 3,2, только 3,5, может плохо искал..., то, что нашел, контроллер другой, на http://roboshop.spb.ru/ уже два месяца нет дисплеев. Можно в личку, куплю.

    Получится ли этот проект запустить на дисплее 3,5, которые сейчас предлагают на али?
    Алексей

Страница 22 из 124 ПерваяПервая ... 12192021222324253272122 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Мой усилитель на ГУ74Б с цветным TFT дисплеем
    от DL2BDA в разделе КВ усилители
    Ответов: 34
    Последнее сообщение: 17.02.2021, 22:34
  2. Синтез с графическим дисплеем
    от Алексеич в разделе Технический кабинет
    Ответов: 2
    Последнее сообщение: 20.03.2009, 23:18
  3. FT-726 Проблема с дисплеем
    от RA2FF в разделе Технический кабинет
    Ответов: 1
    Последнее сообщение: 04.09.2008, 18:55

Ваши права

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