вопрос по приемнику фм на уно
- Войдите на сайт для отправки комментариев
Вс, 29/01/2017 - 14:36
не могу засветить индикатор ТМ 1637 скетч проверяется и загружается может кто сталкивался?
подскажите
http://forklg.ru/viewtopic.php?f=98&t=1173&sid=23768aa6994d4ecf2ee97ca940e23b36
А причём тут ТМ1637 и FM-приёмник? Да и чего Вы там не можете - тоже осталось непонятым :(
в тексте ссылки этот индикатор является частотомером(настройки) и есть схема с двумя кнопами
вот эти кнопки точнее их подключение к плате возможно некорректо
в тексте ссылки
Вы ожидаете, что кто-то будет читать over9000 букв на постороннем форуме лишь на том основании, что Вам лень опубликовать схему, скетч и нормально сформулировать вопрос?
Давайте так, если Вам нужна помощь - схему, скетч и нормальное объяснение проблемы.
можно вам на почту отправлю суть ..сюда что не очень получается
// FM Радио версия 1.0 // http://www.forklg.ru #include <Wire.h> // I2C-Library для управления радиомодулем RDA5807 // SDA приемника RDA5807 подключаем к аналоговому входу 4 // SCL приемника RDA5807 подключаем к аналоговому входу 5 #include "TM1637.h" // Библиотека для управления LED дисплеем TM1637 #define CLK 4 // вывод CLC дисплея #define DIO 5 // вывод DIO дисплея TM1637 disp(CLK,DIO); double f_ini=100.000;// Стартовая частота настройки приемника RDA5807. (Можно изменить на нужную). void setup() { disp.set(7); // Устанавливаем яркость дисплея на максимум disp.init(D4056A); // Проводим инициализацию дисплея Wire.begin(); // Инициализация двухпроводной шины I2C. setFrequency(f_ini); // Присваиваем значение частоты радиомодулю RDA5807 pinMode(6, INPUT); // вход для подключения кнопки "Частота вниз" pinMode(7, INPUT);// вход для подключения кнопки "Частота вверх" } void loop() { float fin1=(f_ini*1000); // производим вычисления для отображения установленной частоты на дисплее int fin2=fin1/100; // производим вычисления для отображения установленной частоты на дисплее disp.display(fin2); // выводим значение частоты на дисплей // проверяем нажатие кнопки "Частота вниз" if (digitalRead(6) == HIGH){ // если кнопка "Частота вниз" нажата f_ini=f_ini-0.1; // уменьшаем значение частоты на 0,1 МГц setFrequency(f_ini); // передаем новое значение частоты радиомодулю }; // проверяем нажатие кнопки "Частота вверх" if (digitalRead(7) == HIGH){ // если кнопка "Частота вверх" нажата f_ini=f_ini+0.1;// увеличиваем значение частоты на 0,1 МГц setFrequency(f_ini);// передаем новое значение частоты радиомодулю }; delay(500); // задержка 0,5 сек. } void setFrequency(double fmhz) // Функция загрузки частоты настройки в модуль RDA5807. { int frequencyB = 4 * (fmhz * 1000000 + 225000) / 32768; char frequencyH = frequencyB >> 8; // Старший байт. char frequencyL = frequencyB & 0XFF; // Накладываем маску 0xFF на младший байт. Wire.beginTransmission(0x60); // Адрес чипа RDA5807M Wire.write(frequencyH); // Старший байт. Wire.write(frequencyL); // Младший байт. Wire.write(0xB8); // 1011 1000 =Стерео Wire.write(0x10); // 0001 0000 Wire.endTransmission(); // формируем I2C-Stop. }Я так понимаю RDA5807M в этом счетче используется в режиме совместимости с TEA5767.
Но в скетче не вижу инициализации чипа RDA5807M. Подскажите, он действительно будет рабоать без инициализации? То есть у вас станции настраиваются только частота не отображается?
использую скетч
// FM Радио версия 1.0 // http://www.forklg.ru #include <Wire.h> // I2C-Library для управления радиомодулем RDA5807 // SDA приемника RDA5807 подключаем к аналоговому входу 4 // SCL приемника RDA5807 подключаем к аналоговому входу 5 #include "TM1637.h" // Библиотека для управления LED дисплеем TM1637 #define CLK 4 // вывод CLC дисплея #define DIO 5 // вывод DIO дисплея TM1637 tm1637(CLK,DIO); double f_ini=102.200;// Стартовая частота настройки приемника RDA5807. (Можно изменить на нужную). void setup() { tm1637.init(); tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7; Wire.begin(); // Инициализация двухпроводной шины I2C. setFrequency(f_ini); // Присваиваем значение частоты радиомодулю RDA5807 pinMode(6, INPUT); // вход для подключения кнопки "Частота вниз" pinMode(7, INPUT);// вход для подключения кнопки "Частота вверх" } void loop() { float fin1=(f_ini*1000); // производим вычисления для отображения установленной частоты на дисплее int fin2=fin1/100; // производим вычисления для отображения установленной частоты на дисплее tm1637.display(fin2); // выводим значение частоты на дисплей // проверяем нажатие кнопки "Частота вниз" if (digitalRead(6) == HIGH){ // если кнопка "Частота вниз" нажата f_ini=f_ini-0.1; // уменьшаем значение частоты на 0,1 МГц setFrequency(f_ini); // передаем новое значение частоты радиомодулю }; // проверяем нажатие кнопки "Частота вверх" if (digitalRead(7) == HIGH){ // если кнопка "Частота вверх" нажата f_ini=f_ini+0.1;// увеличиваем значение частоты на 0,1 МГц setFrequency(f_ini);// передаем новое значение частоты радиомодулю }; delay(500); // задержка 0,5 сек. } void setFrequency(double fmhz) // Функция загрузки частоты настройки в модуль RDA5807. { int frequencyB = 4 * (fmhz * 1000000 + 225000) / 32768; char frequencyH = frequencyB >> 8; // Старший байт. char frequencyL = frequencyB & 0XFF; // Накладываем маску 0xFF на младший байт. Wire.beginTransmission(0x60); // Адрес чипа RDA5807M Wire.write(frequencyH); // Старший байт. Wire.write(frequencyL); // Младший байт. Wire.write(0xB8); // 1011 1000 =Стерео Wire.write(0x10); // 0001 0000 Wire.endTransmission(); // формируем I2C-Stop. }все отоброжается но я делаю это без кнорпок
Я так понял без кнопок это если просто указать частоту напрямую через функцию setFrequency() то приемник настраивается.
А если нажимать кнопки то увеличение уменьшение частоты не происходит?
Загрузите скетч, посмотрите что приходит в монитор. Добавил строки 16,35,42. Если ничего не происходит значит кнопки подключены не правильно.
а с добавлением строк есть у вас вариант
да именно так не происходит никакого изменения при нажатии на кнопки
Ну тогда фото нужно того что у вас собрано. Причем чтоб видно было детально как и что подключено.
Я так понимаю кнопки подключены неправильно. А кнопки то рабочие?
да рабочие я подключал их слогласно рисунку в на чале поста безкнопок и 5 вольт на них идущих с этим скетчем все работает
может быть 1 ком номинал изменить в этом делителе?
может быть 1 ком номинал изменить в этом делителе?
Столкнулся с такой же проблемой. Только у меня хрень даже на дисплее показывает. Решили проблему ?