TEA5767 모듈을 사용한 아두이노 라디오
TEA5767는 표준 FM 스튜디오 및 다중 기능 라디오 수신기 IC입니다. 이 IC는 FM 라디오 수신기를 구축하는 데 사용됩니다. 주요 기능은 다음과 같습니다:
- FM 수신: TEA5767은 76MHz에서 108MHz까지의 FM 라디오 주파수를 수신할 수 있습니다. 이를 통해 다양한 라디오 스테이션을 수신할 수 있습니다.
- 오디오 출력: TEA5767은 오디오 출력을 위한 내부 오디오 앰프를 포함하고 있습니다. 이를 통해 스피커 또는 헤드폰에 연결하여 음악을 듣거나 오디오를 출력할 수 있습니다.
- I2C 인터페이스: TEA5767은 I2C (Inter-Integrated Circuit) 인터페이스를 통해 제어됩니다. 이를 통해 마이크로컨트롤러 또는 다른 주변 장치에서 TEA5767을 제어할 수 있습니다.
- 자동 검색 및 저장: TEA5767은 자동으로 라디오 주파수를 검색하고 저장할 수 있는 기능을 제공합니다. 이를 통해 사용자가 쉽게 라디오 스테이션을 찾고 저장할 수 있습니다.
- 주파수 제어: TEA5767은 소프트웨어를 통해 주파수를 제어할 수 있습니다. 이를 통해 사용자가 원하는 주파수로 라디오를 조정할 수 있습니다.
이러한 기능을 활용하여 TEA5767를 사용하면 간단하고 효율적인 FM 라디오 수신기를 구축할 수 있습니다.
#include <Wire.h>
#include <TEA5767Radio.h>
#include <LiquidCrystal_I2C.h> // LCE패널 함수 선언
unsigned char frequencyH = 0;
unsigned char frequencyL = 0;
unsigned int frequencyB;
double frequency = 0;
LiquidCrystal_I2C lcd (0x27,16,2);
void setup()
{
lcd.init(); // LCD 초기화
lcd.backlight(); // LCD 뒷 전등 켬
Wire.begin();
frequency = 88.7; //starting frequency
setFrequency();
Serial.begin(9600);
Serial.println(frequency);
}
void loop()
{
if(Serial.available()) {
int rc = Serial.read();
if(rc == '+' && frequency <= 108.0) {
frequency += 0.1;
setFrequency();
Serial.println(frequency);
} else if(rc == '-' && frequency >= 88.0) {
frequency -= 0.1;
setFrequency();
Serial.println(frequency);
}
}
// LCD의 커서를 첫번째 열에 첫번째행으로 설정
lcd.setCursor(0, 0);
// 측정된 주파수 값을 LCD에현시
lcd.print("RADIO FM:");
lcd.print(frequency); //주파수
lcd.print("Hz");
}
void setFrequency()
{
frequencyB = 4 * (frequency * 1000000 + 225000) / 32768;
frequencyH = frequencyB >> 8;
frequencyL = frequencyB & 0XFF;
delay(100);
Wire.beginTransmission(0x60);
Wire.write(frequencyH);
Wire.write(frequencyL);
Wire.write(0xB0);
Wire.write(0x10);
Wire.write((byte)0x00);
Wire.endTransmission();
delay(100);
}