Membuat Radio FM dengan Tea5767

By | March 5, 2023
1,007 Views

Radio FM, atau radio frekuensi modulasi, adalah salah satu media penyiaran yang paling populer di dunia. Radio FM memungkinkan pendengar untuk mendengarkan berbagai jenis musik, acara berita, program wawancara, dan lainnya melalui siaran radio. Frekuensi radio FM berkisar antara 88 dan 108 megahertz (MHz). Suara yang dikirim melalui radio FM disertai oleh sinyal stereo yang memungkinkan pendengar untuk mendengarkan suara dengan lebih jelas dan kualitas yang lebih baik daripada radio AM. Selain itu, radio FM juga dapat membawa lebih banyak informasi daripada radio AM, termasuk teks, gambar, dan data.

Modul Radio FM Tea5767

Nah kali ini, kita kan menggunakan modul radio FM Tea5767 untuk menerima sinyal radio FM. Sebenarnya radio ini berdiri sendiri tanpa perlu arduino uno, hanya saja kita tidak ada tuner dan volume nanti buat ngatur modulnya, oleh sebab itu kita butuh arduino uno untuk mengatur tuner/frekuensinya. Nah komunikasi yang digunakan berupa I2C.

Tea5767 adalah sebuah chip FM stereo radio receiver yang digunakan dalam perangkat elektronik seperti radio FM, MP3 player, dan perangkat lainnya yang membutuhkan penerima FM. Chip ini dirancang untuk menerima siaran radio FM di frekuensi 76-108MHz dan dapat menangkap sinyal FM stereo dengan baik.

Beberapa fitur yang dimiliki oleh Tea5767 antara lain kemampuan untuk menangkap siaran radio FM stereo, pengaturan frekuensi yang dapat dilakukan dengan mudah melalui antarmuka I2C, kemampuan untuk memprogramkan stasiun radio FM secara otomatis, dan kemampuan untuk menyetel dan menyimpan beberapa stasiun radio FM pada memori internal.

Tea5767 juga dapat diintegrasikan dengan beberapa jenis mikrokontroler dan dapat dioperasikan dengan tegangan rendah, sehingga cocok digunakan dalam perangkat-perangkat elektronik yang membutuhkan komponen radio FM yang hemat energi.

Secara keseluruhan, Tea5767 adalah komponen radio FM yang handal dan populer yang digunakan dalam berbagai perangkat elektronik dan memiliki banyak fitur yang berguna dalam menerima siaran radio FM.

Komunikasi I2C

I2C atau Inter-Integrated Circuit adalah protokol komunikasi serial yang digunakan untuk menghubungkan beberapa perangkat dengan satu sama lain melalui dua jalur kabel yang dikenal sebagai SDA (Serial Data) dan SCL (Serial Clock).

Arduino UNO memiliki dua pin yang didedikasikan untuk I2C, yaitu pin A4 (SDA) dan pin A5 (SCL). Rangkaian I2C di Arduino UNO terdiri dari tiga komponen utama, yaitu:

  1. Master: Arduino UNO bertindak sebagai master pada rangkaian I2C dan mengontrol komunikasi antara perangkat yang terhubung dengan rangkaian.
  2. Slave: Perangkat lain yang terhubung dengan rangkaian I2C dan diatur oleh master.
  3. Pull-up resistor: Rangkaian I2C membutuhkan pull-up resistor pada kedua jalur kabel (SDA dan SCL) untuk memastikan sinyal yang stabil.

Untuk menghubungkan perangkat dengan Arduino UNO menggunakan protokol I2C, kita harus menghubungkan kabel SDA dan SCL dari perangkat ke pin A4 dan A5 di Arduino UNO, dan juga menambahkan pull-up resistor pada kedua jalur kabel.

Setelah perangkat terhubung, kita dapat menggunakan library Wire yang tersedia pada Arduino IDE untuk mengontrol komunikasi I2C. Library ini menyediakan fungsi-fungsi untuk mengirim dan menerima data antara perangkat dengan menggunakan protokol I2C.

Dalam rangkaian I2C, setiap perangkat memiliki alamat yang unik yang digunakan untuk mengidentifikasi perangkat tersebut. Pada Arduino UNO, kita dapat menggunakan fungsi Wire.begin() untuk memulai komunikasi I2C dan fungsi Wire.beginTransmission() untuk memulai transmisi data. Selanjutnya, kita dapat menggunakan fungsi Wire.write() untuk mengirim data dan fungsi Wire.read() untuk membaca data yang diterima.

Dengan menggunakan protokol I2C dan library Wire pada Arduino UNO, kita dapat menghubungkan dan mengontrol berbagai jenis perangkat elektronik seperti sensor, modul, dan display dengan mudah dan efisien.

Pontensiometer Linear sebagai tuner radio

Potensiometer 3 kaki, juga dikenal sebagai potensiometer linier, adalah jenis potensiometer yang memiliki tiga kaki atau terminal yang digunakan untuk mengatur resistansi atau nilai resistansi. Potensiometer ini terdiri dari sebuah resistor variabel dan sebuah penggeser atau wiper yang dapat digerakkan untuk mengubah resistansi.

Pada potensiometer 3 kaki, dua kaki di ujung merupakan terminal tetap, sedangkan kaki ketiga adalah terminal penggeser. Kaki penggeser terhubung ke penggeser atau wiper yang dapat digerakkan, dan saat wiper digerakkan, nilai resistansi pada potensiometer akan berubah.

Potensiometer 3 kaki digunakan untuk mengatur tingkat sinyal dalam aplikasi elektronik, seperti dalam volume kontrol pada perangkat audio. Dalam pengaturan volume kontrol, potensiometer 3 kaki digunakan sebagai pengontrol tegangan yang mengatur jumlah arus yang melewati sirkuit audio, sehingga mengatur volume output.

Potensiometer 3 kaki juga digunakan dalam berbagai aplikasi lain, seperti pengaturan kecerahan layar pada monitor komputer, pengaturan kecepatan motor DC, dan pengaturan tegangan pada sirkuit elektronik lainnya.

Potensiometer 3 kaki tersedia dalam berbagai nilai resistansi dan tipe, termasuk potensiometer linier dan logaritmik. Potensiometer linier memiliki nilai resistansi yang berubah secara linear saat wiper digerakkan, sedangkan potensiometer logaritmik memiliki nilai resistansi yang berubah secara logaritmik saat wiper digerakkan

Wiring Arduino UNO dengan Potensiometer dan Radio FM

Berikut tampilan wiring arduino UNO dengan potensiometer dan Radio FM. Untuk potensiometer bisa menggunakan 10K, 50K ataupun 100K. Pada contoh berikut menggunakan 50K saja.

Untuk 5V dan Gnd nya dilakukan wiring secara pararel. Kalian bebas menggunakan Output Potensiometer ke pin analog seperti A0, A1, A2, A3, A4, dan A5. Pada contoh diatas menggunakan A5.

/*
 * Simple Program to set a Frequency and read Statistics 
 * 
 * Licence: GNU GPL
 * 
 * by big12boy 2017
 */

#include <TEA5767.h>
#define POTENTIOMETER_PIN A0
TEA5767 radio = TEA5767();


int nilaiMaksimal = 210;

//kita akan membuat array frekuensi dari 88 sampai 108
double arrayFrekuensi[nilaiMaksimal];
double frekuensiAwal = 88.0;

long baud = 250000; //baudrate
long lmillis = 0;
void setup() {
  //Setup Serial and I2C
  Serial.begin(baud);
  Wire.begin();
  
  //Set Frequency to start with
  radio.setFrequency(frekuensiAwal);

  for(int i=0;i<nilaiMaksimal;i++){
      arrayFrekuensi[i] = frekuensiAwal;
      frekuensiAwal = frekuensiAwal + 0.1; //kenaikan frekuensi
  }
  
}

void loop() {
  int pot = analogRead(POTENTIOMETER_PIN);
  int index = map(pot,18,1024,0,nilaiMaksimal);
  delay(10);
  Serial.println(arrayFrekuensi[index]);
  radio.setFrequency(arrayFrekuensi[index]);
}