Новости:

Форум Infotex WeaponMod

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - irobot

Страницы: [1] 2
1
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 20:01:06 »
Ща одну железку добью, и заведу достану тюнер :-)
У меня 2 тюнера есть,еще на подходе один,все разные..Может вытащить из либы команды управления тюнером,чтоб в одном скетче все было?Без либы..

2
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 19:54:51 »
Там на шине несколько устройств висит))) Попробуй поменяй SDA и SCL
Но они же на разных адресах.Сейчас просто залил пример из либы.Где через терминал частоту можно вбивать,тоже тишина,а в порт установленная частота приходит

3
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 19:48:56 »
Ну работает или как?
В терминале видно как перестраивается частота,а вот по звуку нет..На схеме нарисованно ,что тюнер стандартно подцеплен на железный i2с.Прошиваю  i2с  сканер -он определяет тюнер как 0х60.Почему вот не перестраивает не пойму  /:(

4
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 19:41:42 »
А дисплей то где висит  :3:
Дисплей отцепил пока-через терминал смотрю ..

5
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 19:40:40 »
Судя по даташиту у меня FM1246.Но по подключению опять же похож на тюнер со схемы с первой страницы.

6
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 19:38:02 »
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
#include "FM1216.h"

LiquidCrystal_I2C lcd(0x27,16,2);

FM1216 tuner;

unsigned long currentTime;
unsigned long loopTime;
const int pin_A = 3;  // pin 3
const int pin_B = 2;  // pin 2
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev = 0;
unsigned long frq = 129900;
unsigned long frq_old;
float frq_disp;

//-------------------------------------------
void setup()
{
  pinMode(pin_A, INPUT_PULLUP);
  pinMode(pin_B, INPUT_PULLUP);
  currentTime = millis();
  loopTime = currentTime;

  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.setCursor(0, 0);
  tuner.init();
  tuner.setFreq(frq);
  Serial.begin(9600);
  Serial.println("Start");

  lcd.setCursor(0, 0);
  lcd.print("  FM1256/I H-3   ");
  Serial.println("  FM1256/I H-3   ");
  lcd.setCursor(0, 1);
  lcd.print("     TUNER  ");
 Serial.print("     TUNER  ");
  delay(3000);
  tuner.setStereo(true); // FM Стерео xDD
}

//-------------------------------------------
void loop()
{
  rotary_enc();

  if (frq != frq_old)
  {
    Serial.println(frq);

    tuner.setFreq(frq);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("    FM RADIO");
    Serial.println("    FM RADIO");
    lcd.setCursor(0, 1);
    lcd.print(" FRQ: ");
     Serial.print(" FRQ: ");
    frq_disp = frq;
    lcd.print((frq_disp / 1000) - 22.6, 1); ////коррекция 22.6 MHz
    lcd.print(" MHz");
    Serial.print((frq_disp / 1000) - 22.6, 1);
    Serial.print("Mhz");
  }
  frq_old = frq;
}

//-------------------------------------------
void rotary_enc()
{
  currentTime = millis();
  if (currentTime >= (loopTime + 5)) {
    encoder_A = digitalRead(pin_A);
    encoder_B = digitalRead(pin_B);
    if ((!encoder_A) && (encoder_A_prev)) {
      if (encoder_B) {
        frq = frq + 100;
        if (frq > 130600) {
          frq = 87600;
        }
      }
      else {
        frq = frq - 100;
        if (frq < 87600) {
          frq = 130600;
        }
      }
    }
    encoder_A_prev = encoder_A;
    loopTime = currentTime;
  }
}

Моя переделка

7
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 19:35:56 »
Вот выдает мне в порт при замыкании контакта 3 на землю.Скетч Ваш,но переделанный немного мной.Тюнер по i2c висит на а4,а5

8
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 17:48:40 »
А софтово получается тюнер висит на 11,13 цифровом пине?

9
Arduino UNO / Re: TV Tuner FM1216ME
« : 23 Октября 2016, 16:56:40 »
Вот мой пример кода.
Дисплей висит на аппаратном I2C
Тюнер висит на совтовом, можно изменить пины подключения в библиотеке SoftI2CMaster.h
Цитировать
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
#include "FM1216.h"

LiquidCrystal_I2C lcd(0x21,16,2);

FM1216 tuner;

unsigned long currentTime;
unsigned long loopTime;
const int pin_A = 3;  // pin 3
const int pin_B = 2;  // pin 2
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev = 0;
unsigned long frq = 127800;
unsigned long frq_old;
float frq_disp;

//-------------------------------------------
void setup()
{
  pinMode(pin_A, INPUT_PULLUP);
  pinMode(pin_B, INPUT_PULLUP);
  currentTime = millis();
  loopTime = currentTime;

  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.setCursor(0, 0);
  tuner.init();
  tuner.setFreq(frq);
  Serial.begin(9600);
  Serial.println("Start");

  lcd.setCursor(0, 0);
  lcd.print("  FM1256/I H-3   ");
  lcd.setCursor(0, 1);
  lcd.print("     TUNER  ");
  delay(3000);
  tuner.setStereo(true); // FM Стерео xDD
}

//-------------------------------------------
void loop()
{
  rotary_enc();

  if (frq != frq_old)
  {
    Serial.println(frq);

    tuner.setFreq(frq);

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("    FM RADIO");
    lcd.setCursor(0, 1);
    lcd.print(" FRQ: ");
    frq_disp = frq;
    lcd.print((frq_disp / 1000) - 22.6, 1); ////коррекция 22.6 MHz
    lcd.print(" MHz");
  }
  frq_old = frq;
}

//-------------------------------------------
void rotary_enc()
{
  currentTime = millis();
  if (currentTime >= (loopTime + 5)) {
    encoder_A = digitalRead(pin_A);
    encoder_B = digitalRead(pin_B);
    if ((!encoder_A) && (encoder_A_prev)) {
      if (encoder_B) {
        frq = frq + 100;
        if (frq > 130600) {
          frq = 87600;
        }
      }
      else {
        frq = frq - 100;
        if (frq < 87600) {
          frq = 130600;
        }
      }
    }
    encoder_A_prev = encoder_A;
    loopTime = currentTime;
  }
}
Без тюнера прогнал,есть ответ в порт,добавил чтоб в Serial частоту выводило настройки станции.Сейчас прицепляю тюнер

10
Arduino UNO / Re: TV Tuner FM1216ME
« : 22 Октября 2016, 08:25:00 »
Так и не получается,не пойму,почему даже в порт данные не идут  /:(,вот бы библиотеку переправить на свежую версию IDE

11
Arduino UNO / Re: TV Tuner FM1216ME
« : 20 Октября 2016, 13:57:43 »
Для этого тюнера смещение частоты -22.6MHz. Если настроился на 100MHz реально принимаешь 77.4 MHz, это можно скорректировать в скетче.
Может не правильно была промежуточная частота выбрана,судя по цифрам смещение как раз для промежуточной 10,7 мгц

12
Arduino UNO / Re: TV Tuner FM1216ME
« : 16 Октября 2016, 21:01:33 »
Какой скетч заливал?
Я кстати оригинальный скетч приёмника под себя переделывал, дисплей вешал на I2C, получилось что дисплей висит на аппаратном I2C а тюнер на софтовом, правда пришлось поправить ещё библиотеку.
Заливал скетч тестовый из библиотеки-пример.Подключение как на рисунке

13
На крышке не было написано.Пришлось разобрать,там то ли кварц,то ли фильтр на 159,025.

14
Судя по снимку антенна хорошая стоит

15
Arduino UNO / Re: TV Tuner FM1216ME
« : 14 Октября 2016, 11:36:59 »
Тюнер с карточки aver media 203 ,земля в двух местах ,тюнер как на картинке в начале топика,сопротивления по 2,2кома.Шум эфира слышно,но перестройки как таковой нет по диапазону

Страницы: [1] 2