Тогда будем посмотреть что будет на практике
По EEPROM кто то давал данные практических тестов - там чуть ли не на порядок больше получалось, ошибка появлялась при миллионах записей, для побаловаться в домашних условиях точно хватит, ну и 10000 раз перепрошить... тоже Я иногда по ошибке писал в EEPROM вот прям сплошным потоком несколько секунд, ничего - вроде жива была.
Приветствую всех. Как то тихо на форуме. Предлагаю обсудить,по критиковать, предложить другое решение и т.д
Так как опыта у меня практически нет сделал такой скетч (часть программы управления усилителем)для переключения диапазонов усилителя
Работает, но минус -задействованы все аналоговые входы/выходы.
краткое описание работы
ПЕРЕКЛЮЧЕНИЕ ДИАПАЗОНОВ УСИЛИТЕЛЯ.АТМЕГА 2560 ДИСПЛЕЙ 3.2 ДЮЙМА
КНОПКИ ПОДКЛЮЧАЮТСЯ ОДНИМ (ВТОРОЙ НА ОБЩИЙ ПРОВОД) ПРОВОДОМ
ВЫБОР ДИАПАЗОНА ОСУЩЕСТВЛЯЕТСЯ НАЖАТИЕМ НА ОДУ ИЗ КНОПОК, ПРИ НАЖАТИЕ НА КНОПКУ НА ЭКРАНЕ
ОТОБРАЖАЕТСЯ ДИАПАЗОН (В МЕТРАХ) И ВКЛЮЧАЕТСЯ СООТВЕТСТВУЮЩЕЕ РЕЛЕ ФУНКЦИЕЙ (НАПРИМЕР digitalWrite(A6, HIGH) ВСЕ ОСТАЛЬНЫЕ РЕЛЕ ОТКЛЮЧЕНЫ С ПОМОЩЬЮ (digitalWrite(A7, LOW) И ТАК ДАЛЕЕ
Желательно управление реле выделить в отдельную функцию и при вызове передавать туда номер диапазона - сразу код станет в разы меньше, а так нормально. Ну и надо, наверное, какую то автоматическую штуковину наверное добавить параллельно кнопкам - чтобы по CAT или еще как нибудь.
Спасибо от UB3GBN
Тут в теме было раньше подобное - лечили yaesu, которая не переключала штатно фильтры, но правильно выдавала код на BANDx. Попробуйте полистать. Хотя проще, наверное, заново написать - там просто, надо только определиться как это будет совмещено с ручным переключением.
Товарищи, с математикой на "ВЫ". Подскажите формулку. Вот я имею аналоговый вход от 0 до 1023. Как мне это завернуть в значения S-метра? Там какая-то логарифмическая зависимость вроде. Как это посчитать?
вот получилось значения mys бегают от 0 до 60, как мне и надо (у меня 64 пикселя есть на экране под это дело. Экранчик маахонький)void smeter () {
int raws = analogRead(myspin);
if (mysold != raws) {
mysold = raws;
mys = 20 * log10(raws);
}
}
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)