Заинтересовал проект,в среде ардуино несложно выбрать другой экран,у меня есть ili9341,сложно ли переделать программу?если не сложно то переписывать буду сам
Заинтересовал проект,в среде ардуино несложно выбрать другой экран,у меня есть ili9341,сложно ли переделать программу?если не сложно то переписывать буду сам
код перед вами, в нем всего 300 строк. Загляните и оцените, "сложно" это для вас или нет.
Подозреваю. что опыта у вас практически ноль, иначе и вопроса такого не было. Если вы думаете. что достаточно выбрать в ИДЕ нужный экран и все перекомпилируется само - то сразу скажу, что ничего похожего и близко нет. Программу придется переписывать, детально вникая в код.
DetSimen Зачем мне его покупать если SSD1306 у меня 2 шт и еще одна 32*128,но они мелкие
b707 Насчет программирования-опыт кое какой есть,на уровне новичка, я же просто спросил-можно переделать на другой или нет, я просто не знаю библиотека U2Glib поддерживает ILI9341 или нет,видимо и вам это неизвестно иначе бы просто ответили-"это возможно" либо "это невозможно"
Когда то и вам до этого было далеко но тем не менее вы этого достигли-не так ли? ))) вы же не с пеленок знали ардуино,сами когда-то учились
Ну раз можно буду делать сам,спасибо за ответ,вечерком займусь платой,библиотеку с тачем нашел http://arduino.ru/forum/apparatnye-voprosy/displei-na-ili9341#top но это уже не по вашей теме и здесь лучше не писать,открыть новую тему боюсь-вдруг такая тема уже была (rda5807+ili9341+ds1307+ds18b20) и прикроют мой профиль навсегда хозяева сайта за дублирование темы...
открыть новую тему боюсь-вдруг такая тема уже была - и прикроют мой профиль навсегда хозяева сайта за дублирование темы...
не надо боятся, за дублирование тем тут не банят, максимум могут поглумится. что вопросы задаете, вместо того чтоб поиском похожую тему найти и почитать
Всем доброго дня, может кто подскажет что в скетче надо подправить, чтобы при включении громкость была максимальной, так как использую усилитель ЗЧ, а у него свой регулятор громкости и каждый раз кнопками поднимать громкость не комфортно.
Всем доброго дня, может кто подскажет что в скетче надо подправить, чтобы при включении громкость была максимальной, так как использую усилитель ЗЧ, а у него свой регулятор громкости и каждый раз кнопками поднимать громкость не комфортно.
Какие функции выполняет индикатор сигнала как у мобильных и индикатор батареи (возможно был задел таки измерять заряд батареи)??? RDS никто не прикрутил?
Всем здравствуйте .Как изменить скетч ,чтоб работала только кнопка переключения каналов по кругу. Вернее чтоб при включении включался пункт меню "каналы".и не выключался. Сам в программировании полный ноль. Хочу встроить этот приемник в ВЭФ202
Индикатор сигнала (первый )измеряет уровень фм сигнала, второй показывает громкость, справа индикатор уровня заряда батареи. На RDS не хватает памяти - нужно полностью менять библиотеки ФМ радио или писать свои
Всем здравствуйте .Как изменить скетч ,чтоб работала только кнопка переключения каналов по кругу. Вернее чтоб при включении включался пункт меню "каналы".и не выключался. Сам в программировании полный ноль. Хочу встроить этот приемник в ВЭФ202
Что смотреть, куда копать? Понимаю, что редактировать нужно участок кода с 276 по 282 строку, но что именно прописать?
Если вопрос актуален. Плата скорее всего на LGT8F328P (клон меги 328), вот и копать нужно исходя из этого. С ней еще не разбирался - валяется в закромах. Но скорее всего там инициализация АЦП другая, а здесь жестко под МЕГИ прописана (не на вайринге). Есть тема здесь же: http://arduino.ru/forum/apparatnye-voprosy/obzor-klona-megi328-lgt8f328p
Можно попробовать через analogRead() считать напряжение, должна заработать, но эта сама функция достаточно тормозная и будут подлагивания.
Всем здравствуйте .Как изменить скетч ,чтоб работала только кнопка переключения каналов по кругу. Вернее чтоб при включении включался пункт меню "каналы".и не выключался. Сам в программировании полный ноль. Хочу встроить этот приемник в ВЭФ202
Выбор станции кнопкой Reset либо при замыкании пина RST на землю
#include "RDA5807M.h"
#include <avr/sleep.h>// Необязательная строка для уменьшения энергопотребления
RDA5807M radio;// создаем объект radio
void setup() {
radio.begin();
radio.antena(2);// 0 -отключена 1 - земля, 2 - вход FMIN 3 - оба источника
radio.setStereo(false); // включаем моно режим. Если нужно стерео - удалить эту строку
radio.bass(true);// Усиление баса. Если не нужно - удалить эту строку
radio.nextStation();// Автоматический поиск вперед
set_sleep_mode(SLEEP_MODE_PWR_DOWN);// Необязательная строка для уменьшения энергопотребления
sleep_mode();// Необязательная строка для уменьшения энергопотребления
}
void loop() {}
А вот прямо для ВЭФ. Запоминает последнюю станцию и воспроизводит ее при включении. Переключается на следующую(предыдущую) при замыкании пина 2(3) на землю:
//Скетч переключения станций вперед-назад при замыкании пинов 2 или 3 на землю. Энергоэфективно (микроконтроллер выключен между нажатиями кнопки)
//Станция запоминается и включается последняя пойманная после подачи питания. Ресурс запоминания 100 000 переключений
#include <EEPROM.h>
#include "RDA5807M.h"
#include <avr/sleep.h>//для уменьшения энергопотребления
RDA5807M radio;// создаем объект radio
uint16_t Frequency = 0;
bool rewers_ = false;// Тут храним направление переключения станции
void setup() {
pinMode(2, INPUT_PULLUP); // 2 пин с подтяжкой к VCC
pinMode(3, INPUT_PULLUP); // 2 пин с подтяжкой к VCC
attachInterrupt(0, init0, FALLING);// Настройка прерывания для просыпания МК и переключения станций
attachInterrupt(1, init1, FALLING);// Настройка прерывания для просыпания МК и переключения станций
EEPROM.get(100, Frequency);// Читаем последнюю частоту станции ФМ
radio.begin();//Инициализация RDA5807M
radio.setFrequency(Frequency); // Устанавливаем последнюю частоту до выключения
radio.antena(2);// 0 -отключена 1 - земля, 2 - вход FMIN 3 - оба источника
radio.setStereo(false); // включаем моно режим. Если нужно стерео - удалить эту строку
radio.bass(true);// Усиление баса. Если не нужно - удалить эту строку
}
void loop() {
set_sleep_mode(SLEEP_MODE_PWR_DOWN);// для уменьшения энергопотребления
sleep_mode();// для уменьшения энергопотребления выключаем МК до внешнего воздействия
if (rewers_) {
radio.nextStation();// Автоматический поиск вперед
} else {
radio.prevStation();// Автоматический поиск назад
}
Frequency = radio.getFrequency(); // Получаем частоту новой станции
EEPROM.put(100, Frequency);
}
void init0() {
rewers_ = false;
}
void init1() {
rewers_ = true;
}
ты бы в своей "библиотеке" для начала все Serial.println() бы выпилил.
Ты шо, Коля? Хули чужие библиотеки смотришь? Не тебе написано.
Паха. заканчивай тормозить. Ты месяц разбирался, как IP адрес на печать вывести - и так и не понял. походу. Так что ты не огрызайся, а слушай, когда тебе более умные люди советуют.
За умность не спорю, а за культуру общения... такое себе, меня задело, в том же стиле и написал. Мы можем спокойно и уважительно обращаться друг к другу. По поводу Print в библиотеке, возможно где-то в кеше серверов осталось. Я ночью через 15 минут как пост написал, перезалил. Сейчас проверял, не было принтов. То что не все правильно написано, даже спорить не буду. К сожалению пока ссылки и указатели использовать не умею. Учусь потихоньку. Зато интересно было разобраться в регистрах микросхемы. За IP адрес в соответствующей теме ответил, ты уж прости, в твоем стиле.
Так что предлагаю уважительно в дальнейшем общаться друг к другу. У всех свой интерес пребывания на форуме. Кто-то учится, кому-то нравится на тупые вопросы поотвечать.
Ребята, подскажите пожалуйста, где что я делаю не так, проект не компилируется, куча ошибок среда 1.8.13, выдает следующее:
Arduino: 1.8.13 (Windows 10), Плата:"Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:118:1: warning: 'typedef' was ignored in this declaration
typedef struct RADIO_INFO {
^~~~~~~
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:130:1: warning: 'typedef' was ignored in this declaration
typedef struct AUDIO_INFO {
^~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino: In function 'void Inicial()':
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:82:35: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
radio.setBandFrequency(FIX_BAND, s);
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino: In function 'void Parsing()':
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:118:81: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 2:{ b = 1; radio.setBassBoost(b); radio.setBandFrequency(FIX_BAND,s); break; }
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:119:78: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 3:{ ms = 0; radio.setMono(ms); radio.setBandFrequency(FIX_BAND,s); break; }
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:121:96: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 5:{ s=s+10; if (s > 10800) s = 8700; delay(100); radio.setBandFrequency(FIX_BAND,s);Kanal(); break; }
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:122:84: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 6:{ k++; if (k>23) k=1; Frequency(); radio.setBandFrequency(FIX_BAND,s);break;}
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:141:81: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 2:{ b = 0; radio.setBassBoost(b); radio.setBandFrequency(FIX_BAND,s); break; }
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:142:78: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 3:{ ms = 1; radio.setMono(ms); radio.setBandFrequency(FIX_BAND,s); break; }
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:144:92: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 5:{ s=s-10; if (s<8700) s=10800; delay(100); radio.setBandFrequency(FIX_BAND,s); Kanal(); break; }
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:145:84: warning: invalid conversion from 'int' to 'RADIO_BAND' [-fpermissive]
case 6:{ k--; if (k<1) k=23; Frequency(); radio.setBandFrequency(FIX_BAND,s); break;}
^
In file included from C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino:4:0:
C:\Users\peter\Documents\Arduino\libraries\_Radio_\src/radio.h:176:22: note: initializing argument 1 of 'virtual void RADIO::setBandFrequency(RADIO_BAND, RADIO_FREQ)'
virtual void setBandFrequency(RADIO_BAND newBand, RADIO_FREQ newFreq); ///< Set Band and Frequency in one call.
^~~~~~~~~~~~~~~~
C:\Users\peter\Documents\Arduino\PROJ\FM Radio\FM Radio\RadioFM_v1.4_Extended\RadioFM_v1.4_Extended.ino: In function 'void Menu()':
RadioFM_v1.4_Extended:160:12: error: 'class RDA5807M' has no member named 'getRSSI'
А другой библиотеки RDA5807 нет в папке ардуино? Так было, когда 2 библиотеки установлены были, IDE при компиляции файлы из другой папки подключала, т.к. у них названия одинаковые были. Хотя у меня с этой тоже проблемы были. Использую другую - переделал под свои нужды, точнее функции добавил... Сейчас тоже радио пытаюсь сделать:
Я тоже думал так, т.е. препроцессор согласно директивам глобального поиска
#include <EEPROM.h>
#include <radio.h>
#include <RDA5807M.h>
берет их из ардуиновских папок, с другой стороны ну и заключили бы их в кавычки для локального поиска. И если этого не сделано, то я и решил что библиотеки одинаковы( хотя размеры разные)
ну я так и сделал, там в папке "...Arduino\libraries\" были установлены ардуиновские хидеры, ну я и их удалил и накатил из архива
Сейчас все прошло на ура! Только чем шить, у меня только JTAGICE mkII, а его в списке программаторов нет
Короче надо проект переносить в студию. Можно конечно через USBASP, но там драйвер JUNGO конфликтует с драйверами студии, которые без перестановки студии на место не встают. Короче все через одно место... А где в ардуине храниться скомпилированный код и можно ли его выгрузить в hex?
в ардуино заливаю, как и раньше я JTAG-ом через переходник JTAG - ISP превосходно Ардуинки прошивал, да еще и пошагово отлаживал на кристалле по debugWire (по одному проводу RST-reset это делается)
ребята, вы о массивах вовсе ничего не слыхали? уберите эти кейсы из кода, не позорьтесь
не нравится код? а покажи свой " правильный"
тогда и посмотрим чей код лучше....авторский код работает...а вот Ваш....под вопросом пока
похоже и правда не слыхали....
Версия 1.7
1. Добавил функцию уровня сигнала.
2. Оптимизировал код.
//FM Radio OLED Copyright by GhostLion v1.7 GOLD #include <EEPROM.h> #include <radio.h> #include <RDA5807M.h> #include "U8glib.h" #include "rus6x10.h" #include "MyDigitsHelveticaBold24.h" #define Pin_DOWN 4 // левая кнопка #define Pin_UP 2 // правая кнопка #define Pin_SET 3 // центральная кнопка #define FIX_BAND 1 const uint8_t Radio [] U8G_PROGMEM = {0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x40, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0xC0, 0x01, 0x80,0x00, 0x00, 0xC0, 0x01, 0x8E, 0x88, 0x00, 0xC0, 0x01, 0x88, 0xD8, 0x00, 0xC0, 0x01, 0x88, 0xA8,0x00, 0xC0, 0x01, 0x8C, 0xA8, 0x00, 0xC0, 0x01, 0x88, 0xA8, 0x00, 0xC0, 0x01, 0x80, 0x00, 0x00,0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x01, 0x81, 0x04, 0x10, 0x41, 0x05, 0x81, 0x04, 0x10, 0x41,0x05, 0x95, 0x55, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80,0x00, 0x00, 0xF8, 0x01, 0x80, 0x00, 0x03, 0xFE, 0x01, 0x80, 0x00, 0x07, 0x03, 0x01, 0x80, 0x00,0x0C, 0x01, 0x81, 0x80, 0x60, 0x18, 0x00, 0xC1, 0x81, 0xF8, 0x18, 0x00, 0x41, 0x83, 0x9C, 0x10,0x00, 0x61, 0x83, 0x0C, 0x30, 0x00, 0x61, 0x83, 0x0C, 0x30, 0x00, 0x61, 0x83, 0x0C, 0x30, 0x00,0x61, 0x83, 0x9C, 0x10, 0x00, 0x61, 0x81, 0xF8, 0x18, 0x00, 0x41, 0x80, 0x60, 0x18, 0x00, 0xC1,0x80, 0x00, 0x0C, 0x01, 0x81, 0x80, 0x00, 0x07, 0x03, 0x01, 0x80, 0x00, 0x03, 0xFE, 0x01, 0x80,0x00, 0x00, 0xF8, 0x01, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00,0x00, 0x00, 0x02, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC}; const uint8_t Bass[] U8G_PROGMEM = {0x7F, 0xFE, 0x80, 0x01, 0x9B, 0x8D, 0xA2, 0x51, 0xA3, 0x91, 0x9A, 0x4D, 0x8A, 0x45, 0xB3, 0x99,0x80, 0x01, 0x7F, 0xFE}; const uint8_t Stereo[] U8G_PROGMEM = {0x7F, 0xFE, 0x80, 0x01, 0x9B, 0xB9, 0xA1, 0x25, 0xA1, 0x39, 0x99, 0x31, 0x89, 0x29, 0xB1, 0x25,0x80, 0x01, 0x7F, 0xFE}; const uint8_t SM[] U8G_PROGMEM = {0x7F, 0xFE, 0x80, 0x01, 0x8C, 0x51, 0x90, 0xA9, 0x90, 0xA9, 0x8C, 0xA9, 0x84, 0xA9, 0x98, 0x89,0x80, 0x01, 0x7F, 0xFE}; const uint8_t Bat1[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Bat2[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0xA0, 0x01, 0xA0, 0x01, 0xA0, 0x01, 0xA0, 0x01, 0xA0, 0x01, 0xA0, 0x01,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Bat3[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0xA8, 0x01, 0xA8, 0x01, 0xA8, 0x01, 0xA8, 0x01, 0xA8, 0x01, 0xA8, 0x01,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Bat4[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0xAA, 0x01, 0xAA, 0x01, 0xAA, 0x01, 0xAA, 0x01, 0xAA, 0x01, 0xAA, 0x01,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Bat5[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0xAA, 0x81, 0xAA, 0x81, 0xAA, 0x81, 0xAA, 0x81, 0xAA, 0x81, 0xAA, 0x81,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Bat6[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0xAA, 0xA1, 0xAA, 0xA1, 0xAA, 0xA1, 0xAA, 0xA1, 0xAA, 0xA1, 0xAA, 0xA1,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Bat7[] U8G_PROGMEM = {0x7F, 0xFC, 0x80, 0x02, 0xAA, 0xA9, 0xAA, 0xAD, 0xAA, 0xAD, 0xAA, 0xAD, 0xAA, 0xAD, 0xAA, 0xA9,0x80, 0x02, 0x7F, 0xFC}; const uint8_t Vol1[] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x60, 0x00, 0x60, 0x00}; const uint8_t Vol2[] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00,0x6C, 0x00, 0x6C, 0x00}; const uint8_t Vol3[] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x0D, 0x80, 0x0D, 0x80,0x6D, 0x80, 0x6D, 0x80}; const uint8_t Vol4[] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x01, 0xB0, 0x01, 0xB0, 0x0D, 0xB0, 0x0D, 0xB0,0x6D, 0xB0, 0x6D, 0xB0}; const uint8_t Vol5[] U8G_PROGMEM = {0x00, 0x06, 0x00, 0x06, 0x00, 0x36, 0x00, 0x36, 0x01, 0xB6, 0x01, 0xB6, 0x0D, 0xB6, 0x0D, 0xB6,0x6D, 0xB6, 0x6D, 0xB6}; const uint8_t L1 [] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; const uint8_t L2 [] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x18}; const uint8_t L3 [] U8G_PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x18, 0x18}; const uint8_t L4 [] U8G_PROGMEM = {0x00, 0x00, 0x7E, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x18, 0x18}; const uint8_t L5 [] U8G_PROGMEM = {0xFF, 0x00, 0x7E, 0x00, 0x3C, 0x00, 0x18, 0x00, 0x18, 0x18}; const unsigned int Station[] = {8750,9240,9370,9410,9620,9740,9800,9840,9890,9950,10040,10120,10170,10210,10250,10290,10370,10460,10510,10570,10620,10710,10790}; byte NK = 23; // количество каналов byte v,k,m,rs, flag1=1,flag2=0,flag3=0; int Voltage; unsigned int s,s2; boolean b,ms,sm,flag=1,MODE=1; long TimeOut; U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); RDA5807M radio; void setup() { pinMode(Pin_DOWN,INPUT_PULLUP); pinMode(Pin_UP,INPUT_PULLUP); pinMode(Pin_SET,INPUT_PULLUP); Inicial(); } void loop() { Parsing(); Menu(); Energy(); } //============================================== void Inicial() { u8g.firstPage(); do { u8g.drawBitmapP (5, 16, 5, 40, Radio); u8g.setFont(rus6x10); u8g.setPrintPos(40,11);u8g.print(F("FM РАДИО")); u8g.setPrintPos(55,45);u8g.print(F("v 1.7 GOLD")); u8g.setPrintPos(55,55);u8g.print(F("By GhostLion")); } while( u8g.nextPage() ); delay(1500); if (EEPROM[0]!=1) { EEPROM[0]=1; EEPROM[1]=5; EEPROM[2]=9; // здесь установить номер текущего канала (моя частота 98.90 "Русское радио") (или 0) EEPROM[3]=1; EEPROM[4]=1; EEPROM[5]=0; EEPROM[6]=98; // частота текущей радиостанции EEPROM[7]=90; // "Русское радио" EEPROM[8]=1; } v = EEPROM[1]; // громкость k = EEPROM[2]; // текущий канал m = EEPROM[3]; // текущее меню b = EEPROM[4]; // супербасс ms = EEPROM[5]; // моно/стерео s = EEPROM[6]*100+EEPROM[7]; // текущая частота sm = EEPROM[8]; // softmute s2=s; radio.init(); radio.setVolume(v); radio.setMono(ms); radio.setMute(false); radio.setBassBoost(b); radio.setSoftMute(sm); radio.setBandFrequency(FIX_BAND, s); readVcc(); } //================================================ void Parsing() { boolean SET=digitalRead(Pin_SET); boolean UP=digitalRead(Pin_UP); boolean DOWN=digitalRead(Pin_DOWN); if(SET==HIGH && flag1==0) { flag1=1; } if(SET==LOW && flag1==1) { flag1=0; TimeOut=millis(); if(MODE==1) {m++; flag=1; if(m>7) m=1;} } if(UP==LOW && flag2==1) { flag2=0; } if(UP==HIGH && flag2==0) { if(MODE==1) { switch(m) { case 1:{ (v==15?0:v++); radio.setVolume(v); break; } case 2:{ b = 1; radio.setBassBoost(b); radio.setBandFrequency(FIX_BAND,s); break; } case 3:{ ms = 0; radio.setMono(ms); radio.setBandFrequency(FIX_BAND,s); break; } case 4:{sm = 1; radio.setSoftMute(true);radio.setBandFrequency(FIX_BAND,s); break;} case 5:{ radio.seekUp(true); delay(3000); s = radio.getFrequency(); Kanal(); break; } case 6:{ s=s+10; if (s > 10800) s = 8700; delay(100); radio.setBandFrequency(FIX_BAND,s);Kanal(); break; } case 7:{ k++; if (k>NK) k=1; s = Station[k-1]; radio.setBandFrequency(FIX_BAND,s); break;} } flag=1; TimeOut=millis(); } else {(v==15?0:v++);radio.setVolume(v);} flag2=1; } if(DOWN==LOW && flag3==1) { flag3=0; } if(DOWN==HIGH && flag3==0) { if(MODE==1) { switch(m) { case 1:{ (v==0?15:v--); radio.setVolume(v); break; } case 2:{ b = 0; radio.setBassBoost(b); radio.setBandFrequency(FIX_BAND,s); break; } case 3:{ ms = 1; radio.setMono(ms); radio.setBandFrequency(FIX_BAND,s); break; } case 4:{sm = 0; radio.setSoftMute(false);radio.setBandFrequency(FIX_BAND,s); break;} case 5:{ radio.seekDown(true); delay(3000); s=radio.getFrequency(); Kanal(); break; } case 6:{ s=s-10; if (s<8700) s=10800; delay(100); radio.setBandFrequency(FIX_BAND,s); Kanal(); break; } case 7:{ k--; if (k<1) k=NK; s = Station[k-1]; radio.setBandFrequency(FIX_BAND,s); break;} } flag=1; TimeOut=millis(); } else {(v==0?15:v--);radio.setVolume(v);} flag3=1; } } //================================================ void Menu() { float ch; if(flag==1 && MODE==1) { rs = radio.getRSSI(); ch=float(s)/100; u8g.firstPage(); do { u8g.setDefaultForegroundColor(); if(Voltage>85) u8g.drawBitmapP (110, 0, 2, 10, Bat7); else if(Voltage>70) u8g.drawBitmapP (110, 0, 2, 10, Bat6); else if(Voltage>55) u8g.drawBitmapP (110, 0, 2, 10, Bat5); else if(Voltage>40) u8g.drawBitmapP (110, 0, 2, 10, Bat4); else if(Voltage>25) u8g.drawBitmapP (110, 0, 2, 10, Bat3); else if(Voltage>10) u8g.drawBitmapP (110, 0, 2, 10, Bat2); else u8g.drawBitmapP (110, 0, 2, 10, Bat1); if(v<3) u8g.drawBitmapP (13, 0, 2, 10, Vol1); else if(v<7) u8g.drawBitmapP (13, 0, 2, 10, Vol2); else if(v<10) u8g.drawBitmapP (13, 0, 2, 10, Vol3); else if(v<13) u8g.drawBitmapP (13, 0, 2, 10, Vol4); else u8g.drawBitmapP (13, 0, 2, 10, Vol5); if(ms==0) u8g.drawBitmapP (55, 0, 2, 10, Stereo); if(b==1) u8g.drawBitmapP (75, 0, 2, 10, Bass); if(sm==1) u8g.drawBitmapP (35, 0, 2, 10, SM); u8g.setFont(MyDigitsHelveticaBold24); if(ch<100) u8g.setPrintPos(30,43); else u8g.setPrintPos(23,43); u8g.print(ch,1); u8g.setFont(rus6x10); u8g.print(" MHz"); if (rs>50) u8g.drawBitmapP (0, 0, 1, 10, L5); else if(rs>40) u8g.drawBitmapP (0, 0, 1, 10, L4); else if(rs>30) u8g.drawBitmapP (0, 0, 1, 10, L3); else if(rs>20) u8g.drawBitmapP (0, 0, 1, 10, L2); else u8g.drawBitmapP (0, 0, 1, 10, L1); if(k!=0){ u8g.drawRFrame (0,32,18,13,2); u8g.setPrintPos(3,42); if(k<10) u8g.print("0"); u8g.print(k); } u8g.drawRFrame (0,51,127,12,3); u8g.setPrintPos(13,61); switch(m) { case 1: {u8g.print(F("- < ГРОМКОСТЬ > +"));break;} case 2: {u8g.print(F(" НЕТ < БАСС > ДА"));break;} case 3: {u8g.print(F("НЕТ < СТЕРЕО > ДА"));break;} case 4: {u8g.print(F("НЕТ < S.MUTE > ДА"));break;} case 5: {u8g.print(F(" < АВТОПОИСК >"));break;} case 6: {u8g.print(F("< РУЧ. ПОИСК >"));break;} case 7: {u8g.print(F(" < КАНАЛЫ >"));break;} } } while( u8g.nextPage() ); flag=0; } } //================================================ void Energy() { if(MODE==1 && millis()-TimeOut>2000) flag=1; if(MODE==1 && millis()-TimeOut>8000) { u8g.sleepOn(); MODE=0; if(v!= EEPROM[1]) EEPROM[1] = v; if(k!= EEPROM[2]) EEPROM[2] = k; if(m!= EEPROM[3]) EEPROM[3] = m; if(b!= EEPROM[4]) EEPROM[4] = b; if(ms!=EEPROM[5]) EEPROM[5] = ms; if(s2!=s){s2=s; EEPROM[6] = int(s/100); EEPROM[7] = s%100; } if(sm!=EEPROM[8]) EEPROM[8] = sm; } if(MODE==0 && millis()-TimeOut<500) { u8g.sleepOff(); readVcc(); MODE = 1; flag = 1; m = 7; } } //=================================================== void readVcc() { #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif delay(2); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Start conversion while (bit_is_set(ADCSRA, ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both long result = (high << 8) | low; result = 1.080 * 1023 * 1000 / result; // расчёт реального VCC Voltage = int(result); Voltage = map(Voltage, 3200, 4200, 0, 100); Voltage = constrain(Voltage, 0, 100); } //======================================================= void Kanal() { k = 0; for(int x = 0; x < NK; x ++) { if(s == Station[x]) {k = (x+1); break;} } }Огромное спасибо, компилируется на ура, причем любой ваш код, на рождественских праздниках обязательно соберу, с праздниками и еще раз спасибо!
Заинтересовал проект,в среде ардуино несложно выбрать другой экран,у меня есть ili9341,сложно ли переделать программу?если не сложно то переписывать буду сам
Заинтересовал проект,в среде ардуино несложно выбрать другой экран,у меня есть ili9341,сложно ли переделать программу?если не сложно то переписывать буду сам
код перед вами, в нем всего 300 строк. Загляните и оцените, "сложно" это для вас или нет.
Подозреваю. что опыта у вас практически ноль, иначе и вопроса такого не было. Если вы думаете. что достаточно выбрать в ИДЕ нужный экран и все перекомпилируется само - то сразу скажу, что ничего похожего и близко нет. Программу придется переписывать, детально вникая в код.
Проще будет такой экран купить, как в праэкте
DetSimen Зачем мне его покупать если SSD1306 у меня 2 шт и еще одна 32*128,но они мелкие
b707 Насчет программирования-опыт кое какой есть,на уровне новичка, я же просто спросил-можно переделать на другой или нет, я просто не знаю библиотека U2Glib поддерживает ILI9341 или нет,видимо и вам это неизвестно иначе бы просто ответили-"это возможно" либо "это невозможно"
начал соединять ардуино и дисплей,сделаю сам
я же просто спросил-можно переделать на другой или нет
можно
а причем тут это? Возможность переделать скетч от этого не зависит.
Я еще раз повторю - судя по задаваемым вопросам, вам до этого еще очень далеко.
Когда то и вам до этого было далеко но тем не менее вы этого достигли-не так ли? ))) вы же не с пеленок знали ардуино,сами когда-то учились
Ну раз можно буду делать сам,спасибо за ответ,вечерком займусь платой,библиотеку с тачем нашел http://arduino.ru/forum/apparatnye-voprosy/displei-na-ili9341#top но это уже не по вашей теме и здесь лучше не писать,открыть новую тему боюсь-вдруг такая тема уже была (rda5807+ili9341+ds1307+ds18b20) и прикроют мой профиль навсегда хозяева сайта за дублирование темы...
Удачи вам и развития проекта!
открыть новую тему боюсь-вдруг такая тема уже была - и прикроют мой профиль навсегда хозяева сайта за дублирование темы...
не надо боятся, за дублирование тем тут не банят, максимум могут поглумится. что вопросы задаете, вместо того чтоб поиском похожую тему найти и почитать
Всем доброго дня, может кто подскажет что в скетче надо подправить, чтобы при включении громкость была максимальной, так как использую усилитель ЗЧ, а у него свой регулятор громкости и каждый раз кнопками поднимать громкость не комфортно.
Всем доброго дня, может кто подскажет что в скетче надо подправить, чтобы при включении громкость была максимальной, так как использую усилитель ЗЧ, а у него свой регулятор громкости и каждый раз кнопками поднимать громкость не комфортно.
пропробуй написать
пропробуй написать
спасибо помогло, осталось только индикатор подправить и всё ))
подскажите как сделать чтоб экран все время работал.
подскажите как сделать чтоб экран все время работал.
Не отключать его, да и всё.
нет чтобы не тух через 8секунд .как отключить
Убрать из кода строчки, отключающие экран через 8 секунд.
подскажите какая строка
254 u8g.sleepOn();
.............................
268
u8g.sleepOff();в исходнике http://arduino.ru/forum/proekty/karmannoe-fm-radio-na-rda5807-iic-oled-096-i-arduino-pro-mini?page=1#comment-498933спосибо ьольшое
Какие функции выполняет индикатор сигнала как у мобильных и индикатор батареи (возможно был задел таки измерять заряд батареи)??? RDS никто не прикрутил?
Всем здравствуйте .Как изменить скетч ,чтоб работала только кнопка переключения каналов по кругу. Вернее чтоб при включении включался пункт меню "каналы".и не выключался. Сам в программировании полный ноль. Хочу встроить этот приемник в ВЭФ202
Жаль, но похоже автор забил на проект...
Индикатор сигнала (первый )измеряет уровень фм сигнала, второй показывает громкость, справа индикатор уровня заряда батареи. На RDS не хватает памяти - нужно полностью менять библиотеки ФМ радио или писать свои
Всем здравствуйте .Как изменить скетч ,чтоб работала только кнопка переключения каналов по кругу. Вернее чтоб при включении включался пункт меню "каналы".и не выключался. Сам в программировании полный ноль. Хочу встроить этот приемник в ВЭФ202
Лучше взять на Алике вот такой модуль:
p.s. А еще на Алике есть куча приблуд с встроенным радио, блютуз модулем, кардридером для SD и USB
Автор, добавьте плс в ваш проект энкодер или Ик пульт..... будет супер Имхо
GhostLion
Прошивка 1.7 всё работает как было задумано автором, кроме отсутствия делений на индикаторе заряда батареи, только рамка батареи и пусто внутри.
Плата WAVGAT Pro Mini ATMEGA328P
Что смотреть, куда копать? Понимаю, что редактировать нужно участок кода с 276 по 282 строку, но что именно прописать?
Что смотреть, куда копать? Понимаю, что редактировать нужно участок кода с 276 по 282 строку, но что именно прописать?
Если вопрос актуален. Плата скорее всего на LGT8F328P (клон меги 328), вот и копать нужно исходя из этого. С ней еще не разбирался - валяется в закромах. Но скорее всего там инициализация АЦП другая, а здесь жестко под МЕГИ прописана (не на вайринге). Есть тема здесь же: http://arduino.ru/forum/apparatnye-voprosy/obzor-klona-megi328-lgt8f328p
Можно попробовать через analogRead() считать напряжение, должна заработать, но эта сама функция достаточно тормозная и будут подлагивания.
Выбор станции кнопкой Reset либо при замыкании пина RST на землю
#include "RDA5807M.h" #include <avr/sleep.h>// Необязательная строка для уменьшения энергопотребления RDA5807M radio;// создаем объект radio void setup() { radio.begin(); radio.antena(2);// 0 -отключена 1 - земля, 2 - вход FMIN 3 - оба источника radio.setStereo(false); // включаем моно режим. Если нужно стерео - удалить эту строку radio.bass(true);// Усиление баса. Если не нужно - удалить эту строку radio.nextStation();// Автоматический поиск вперед set_sleep_mode(SLEEP_MODE_PWR_DOWN);// Необязательная строка для уменьшения энергопотребления sleep_mode();// Необязательная строка для уменьшения энергопотребления } void loop() {}Библиотека https://drive.google.com/file/d/1UC76ne0fgzVc9WwlQz_wA7zIapd_Tx6e/view?usp=sharing
А вот прямо для ВЭФ. Запоминает последнюю станцию и воспроизводит ее при включении. Переключается на следующую(предыдущую) при замыкании пина 2(3) на землю:
//Скетч переключения станций вперед-назад при замыкании пинов 2 или 3 на землю. Энергоэфективно (микроконтроллер выключен между нажатиями кнопки) //Станция запоминается и включается последняя пойманная после подачи питания. Ресурс запоминания 100 000 переключений #include <EEPROM.h> #include "RDA5807M.h" #include <avr/sleep.h>//для уменьшения энергопотребления RDA5807M radio;// создаем объект radio uint16_t Frequency = 0; bool rewers_ = false;// Тут храним направление переключения станции void setup() { pinMode(2, INPUT_PULLUP); // 2 пин с подтяжкой к VCC pinMode(3, INPUT_PULLUP); // 2 пин с подтяжкой к VCC attachInterrupt(0, init0, FALLING);// Настройка прерывания для просыпания МК и переключения станций attachInterrupt(1, init1, FALLING);// Настройка прерывания для просыпания МК и переключения станций EEPROM.get(100, Frequency);// Читаем последнюю частоту станции ФМ radio.begin();//Инициализация RDA5807M radio.setFrequency(Frequency); // Устанавливаем последнюю частоту до выключения radio.antena(2);// 0 -отключена 1 - земля, 2 - вход FMIN 3 - оба источника radio.setStereo(false); // включаем моно режим. Если нужно стерео - удалить эту строку radio.bass(true);// Усиление баса. Если не нужно - удалить эту строку } void loop() { set_sleep_mode(SLEEP_MODE_PWR_DOWN);// для уменьшения энергопотребления sleep_mode();// для уменьшения энергопотребления выключаем МК до внешнего воздействия if (rewers_) { radio.nextStation();// Автоматический поиск вперед } else { radio.prevStation();// Автоматический поиск назад } Frequency = radio.getFrequency(); // Получаем частоту новой станции EEPROM.put(100, Frequency); } void init0() { rewers_ = false; } void init1() { rewers_ = true; }ты бы в своей "библиотеке" для начала все Serial.println() бы выпилил.
ты бы в своей "библиотеке" для начала все Serial.println() бы выпилил.
Ты шо, Коля?
Хули чужие библиотеки смотришь? Не тебе написано.
У меня своя
ты бы в своей "библиотеке" для начала все Serial.println() бы выпилил.
Паха. заканчивай тормозить. Ты месяц разбирался, как IP адрес на печать вывести - и так и не понял. походу. Так что ты не огрызайся, а слушай, когда тебе более умные люди советуют.
Господа, кто может добавить в проект энкодер??? и - или Ик пульт..... будет супер
За умность не спорю, а за культуру общения... такое себе, меня задело, в том же стиле и написал. Мы можем спокойно и уважительно обращаться друг к другу. По поводу Print в библиотеке, возможно где-то в кеше серверов осталось. Я ночью через 15 минут как пост написал, перезалил. Сейчас проверял, не было принтов. То что не все правильно написано, даже спорить не буду. К сожалению пока ссылки и указатели использовать не умею. Учусь потихоньку. Зато интересно было разобраться в регистрах микросхемы. За IP адрес в соответствующей теме ответил, ты уж прости, в твоем стиле.
Так что предлагаю уважительно в дальнейшем общаться друг к другу. У всех свой интерес пребывания на форуме. Кто-то учится, кому-то нравится на тупые вопросы поотвечать.
Ребята, подскажите пожалуйста, где что я делаю не так, проект не компилируется, куча ошибок среда 1.8.13, выдает следующее:
Судя по всему библиотека не та.
Библиотеки из архива https://yadi.sk/d/S678nWJY8EChPw
А другой библиотеки RDA5807 нет в папке ардуино? Так было, когда 2 библиотеки установлены были, IDE при компиляции файлы из другой папки подключала, т.к. у них названия одинаковые были. Хотя у меня с этой тоже проблемы были. Использую другую - переделал под свои нужды, точнее функции добавил... Сейчас тоже радио пытаюсь сделать:
Я тоже думал так, т.е. препроцессор согласно директивам глобального поиска
#include <EEPROM.h>
#include <radio.h>
Оставь в папке "...Arduino\libraries\" только нужные библиотеки и попробуй.
т.е. переписать ардуиновские библиотеки теми что из архива? так?
Ну наконец то скомпилилось!
Да нет, же. В папке, где у тебя сохраняются скетчи, есть папка libraries. Вот в ней и нужно оставить только библиотеки из архива.
Ну вот и отлично!
fedic, попробуйте закоментировать строку rs = radio.getRSSI();
ну я так и сделал, там в папке "...Arduino\libraries\" были установлены ардуиновские хидеры, ну я и их удалил и накатил из архива
Сейчас все прошло на ура! Только чем шить, у меня только JTAGICE mkII, а его в списке программаторов нет
Короче надо проект переносить в студию. Можно конечно через USBASP, но там драйвер JUNGO конфликтует с драйверами студии, которые без перестановки студии на место не встают. Короче все через одно место... А где в ардуине храниться скомпилированный код и можно ли его выгрузить в hex?
А ты не в Ардуино заливаешь? В чистую мегу?
в ардуино заливаю, как и раньше я JTAG-ом через переходник JTAG - ISP превосходно Ардуинки прошивал, да еще и пошагово отлаживал на кристалле по debugWire (по одному проводу RST-reset это делается)
Хотел картинку отправить, но и тут костыли....
Ну наконец то!
Теперь вопрос отпал... Нет USB-Serial
Да, и все это из-за этого конфликта, говорят в новых версиях студии без таких костылей, но мне 4-я студия нужна
хотя драйвер CH341 (USB -SERIAL) драйвер стоит и работает, но все равно все упирается в этот конфликт