TEA5767 모듈을 사용한 아두이노 라디오
TEA5767는 표준 FM 라디오 및 다중 기능 라디오 수신기 모듈입니다. 이 모듈은 FM 라디오 수신기를 구축하는 데 사용됩니다.

TEA5767 라디오 모듈 주요기능 :
- FM 수신: TEA5767은 76MHz에서 108MHz까지의 FM 라디오 주파수를 수신할 수 있습니다. 이를 통해 다양한 라디오 주파수를 수신할 수 있습니다.
- 오디오 출력: TEA5767은 오디오 출력을 위한 내부 오디오 앰프를 포함하고 있습니다. 이를 통해 스피커 또는 헤드폰에 연결하여 음악을 듣거나 오디오를 출력할 수 있습니다.
- I2C 인터페이스: TEA5767은 I2C (Inter-Integrated Circuit) 인터페이스를 통해 제어됩니다. 이를 통해 마이크로컨트롤러 또는 다른 주변 장치에서 TEA5767을 제어할 수 있습니다.
- 자동 검색 및 저장: TEA5767은 자동으로 라디오 주파수를 검색하고 저장할 수 있는 기능을 제공합니다. 이를 통해 사용자가 쉽게 라디오 스테이션을 찾고 저장할 수 있습니다.
- 주파수 제어: TEA5767은 소프트웨어를 통해 주파수를 제어할 수 있습니다. 이를 통해 사용자가 원하는 주파수로 라디오를 조정할 수 있습니다.
이러한 기능을 활용하여 TEA5767를 사용하여 간단하고 효율적인 아두이노 FM 라디오 수신기를 만들어 보도록 하겠습니다.
준비품으로는 아두이노 우노 R3, TEA5767 라디오 모듈, LCD1602 디스플레이 모듈 등이 사용됩니다.
준비 부품:

부품들이 전부 준비되면 다음과 같이 회로를 구성합니다.
회로연결:
아두이노 우노 R3 | TEA5767 라디오 모듈 | LCD1602 디스플레이 모듈 | |
+5V | VCC | VCC | |
GND | GND | GND | |
SDA | SDA | ||
SCL | SCL | ||
A4 | SDA | ||
A5 | SCL |

실제 회로도:

회로 연결이 전부 끝내면 아두이노 IDE에 다음과 같이 코딩을 작성합니다.
전체 코드:
#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);
}
코딩 작성이 전부 끝나면 아두이노 USB 케이블을 연결한 다음 컴파일 후 업로드 하여줍니다.
다음 아두이노 IDE 메뉴에서 Tools -> Serial Monitor를 선택합니다.

모니터창이 펼쳐지면 키보드 “+”건과 “-“건을 누르면서 주파수를 설정할 수 있습니다.
다음은 출력결과입니다.
출력 결과:
조이키트 : www.joykit.shop