Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Radio All Band Si4730 DIY (LW, MW, SW, FM)

Komponen dan persediaan

Arduino Nano R3
× 1
Modul Radio Si4730
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
× 1
Rotary Encoder dengan Tombol Tekan
× 1
Dewan Pengembangan, Modul Amplifier Audio Kelas D
× 1
Speaker:0,25W, 8 ohm
× 1
batang ferit dari radio MW lama
× 1
Sakelar Geser
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Ketika Anda menyebut radio Arduino, Anda selalu memikirkan radio FM modern (88-108 MHz di Eropa). Pita LW, MW dan SW mencakup rentang dari 0,2 hingga 30 MHz. SW sangat menarik. Gelombang radio pada pita gelombang pendek dapat dipantulkan atau dibiaskan dari lapisan atom bermuatan listrik di atmosfer yang disebut ionosfer. Dengan demikian radio gelombang pendek dapat digunakan untuk komunikasi jarak jauh, terkadang di seluruh benua atau di luarnya.

Di bawah ini saya akan menyajikan kepada Anda perkembangan radio yang mencakup semua band yang disebutkan di atas. "Jantung" radio ini adalah IC Si4730 dari Silicon Labs yang dapat dibeli dari AliExpress dalam bentuk papan pengembangan kecil dengan harga beberapa dolar.

Board ini dikendalikan oleh Arduino menggunakan protokol I2C. Kode ini ditulis oleh Julio C. Rosa, dan didasarkan pada perpustakaan Si4735-I2C-R4 yang diberikan di bawah ini bersama dengan kode dan skema. Meskipun pabrikan mengatakan bahwa chip ini (Si4730) hanya untuk AM / FM, sebenarnya juga berfungsi di SW. Untuk output audio saya menggunakan mini digital amplifier board 2*3W PAM8403 Class D yang sangat murah dan fungsional.

Perangkat ini dirakit dalam wadah yang sesuai dan mewakili radio World Band kecil yang lengkap. Kalau tidak, saya tinggal di lantai dasar di daerah yang relatif padat penduduknya dan menggunakan antena sepanjang sepuluh meter, jadi penerimaannya cukup lemah, tetapi masih sebanding dengan radio saku kualitas komersial yang saya miliki.

Dan terakhir menyebutkan bahwa chip ini digunakan oleh banyak merek radio portabel terkenal seperti TECSUN, DEGEN, SANGEAN dan lain-lain.

Kode

  • Kode
  • Perpustakaan
KodeC/C++
/********************************************* ************************************************** ** JCR Si4730/5 Penerima LW/MW/SW/FM - Versi untuk dibagikan. Lihat skema untuk detail kabel. Ditulis oleh Julio C. Rosa - The CesarSound - Mei/2019 Perintah:radio.volumeUp(); radio.volumeDown();radio.seekDown(); radio.seekUp(); radio.mute(); radio.suarakan(); radio.setMode(FM); radio.tuneFrequency(9490); radio.getStatus(); radio.getVolume(); radio.getMode(); radio.getMute(); radio.toggleMute(); RSQMetrik rsq; radio.getRSQ(&rsq); (rsq.stereo); print_number(rsq.stereoBlend); print_number(rsq.SNR); (rsq.dapat dicari); print_number(rsq.RSSI); print_mode(); print_station_freq(); print_volume(); print_mute(); print_home(); radio.getCallSign(tanda panggilan); printp(rds1); Serial.write(callSign); radio.getProgramTypeStr(tipeprogram); Serial.write(Tipe program); (rds1); (rds2); (rds3); (rds4); (rds5);********************************************* ************************************************** *****/// Library#include #include #include #include "Wire.h"// I/O SettingsRotary r =Rotary(2, 3 );LiquidCrystal lcd(12, 13, 7, 6, 5, 4));const byte band =A0;// Pengaturan variabelunsigned int freq =880;unsigned int freqmax =10800;unsigned int freqmin =50;unsigned int fstep =10;unsigned int freqold;unsigned int buttonstate;unsigned int count =15;// Buat instance radio Si4730/5 bernama radio.Si4735;void setup() { lcd.begin(16, 2); PCICR |=(1 <>"); lcd.setCursor(3, 0); lcd.print(":"); lcd.setCursor(13, 0); lcd.print("kHz");}// Encoder InterruptISR(PCINT2_vect) { hasil karakter yang tidak ditandatangani =r.process(); if (hasil) { if (hasil ==DIR_CW) { freq =freq + fstep; if (frekuensi>=frekuensi maks) { frekuensi =frekuensi maks; } } else { frekuensi =frekuensi - flangkah; if (frekuensi <=frekuensi menit) { frekuensi =frekuensi menit; } } }}void loop() { if (freqold !=frekuensi) { tune(); } frekuensi =frekuensi; lcd.setCursor(5, 0); lcd.print(frekuensi); lcd.print(""); status tombol =digitalRead(pita); // Seletor de bandas if (status tombol ==RENDAH) { inc_preset(); while (digitalRead(band) ==0); } // Medidor - S-Meter (dBu) e SNR (dB) - batalkan komentar jika ingin menggunakan RSQMetrics rsq; radio.getRSQ(&rsq); lcd.setCursor(0, 2); lcd.print("dBu:"); lcd.print(rsq.RSSI); lcd.setCursor(9, 2); lcd.print("dB:"); lcd.print(rsq.SNR);}// Preset INCvoid inc_preset() { count++; jika (hitungan> 15) jumlah =1; bandpreset(); delay(100);}// Presets Seletor de Bandasvoid bandpresets() { lcd.setCursor(0, 0); beralih (hitungan) { kasus 1:frekuensi =370; radio.setMode(LW); radio.tuneFrequency(frekuensi); perintah_am(); flangkah =5; lcd.print("LW1"); merusak; kasus 2:frekuensi =620; radio.setMode(AM); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("MW1"); merusak; kasus 3:frekuensi =840; radio.setMode(AM); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("MW2"); merusak; kasus 4:frekuensi =3700; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW0"); merusak; kasus 5:frekuensi =4985; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW1"); merusak; kasus 6:frekuensi =6010; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =1; lcd.print("SW2"); merusak; kasus 7:frekuensi =7200; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =1; lcd.print("SW3"); merusak; kasus 8:frekuensi =10.000; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW4"); merusak; kasus 9:frekuensi =11940; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW5"); merusak; kasus 10:frekuensi =13710; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW6"); merusak; kasus 11:frekuensi =15400; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW7"); merusak; kasus 12:frekuensi =17560; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW8"); merusak; kasus 13:frekuensi =21505; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("SW9"); merusak; kasus 14:frekuensi =27015; radio.setMode(SW); radio.tuneFrequency(frekuensi); flangkah =5; lcd.print("CB1"); merusak; kasus 15:frekuensi =9700; radio.setMode(FM); radio.tuneFrequency(frekuensi); flangkah =10; lcd.print("FM1"); merusak; }}//Sintonizador - tunervoid tune() { radio.tuneFrequency(freq);}//Perintah soft mute off / AVC max gainvoid command_am() { radio.setProperty(PROP_AM_SOFT_MUTE_MAX_ATTENUATION, 0); // 0 (OFF) - 63 radio.setProperty(PROP_AM_AUTOMATIC_VOLUME_CONTROL_MAX_GAIN, 0x3A98); // 1000 - 7800}
PerpustakaanC/C++
Tidak ada pratinjau (hanya unduhan).

Skema


Proses manufaktur

  1. Sirkuit Radio
  2. Radio
  3. Karet Pita
  4. Membuat Termocam DIY
  5. UVC Box Sterilizer UV DIY
  6. Radio Internet Pi-Arduino
  7. JX Wave Generator
  8. Skateboard Realitas Virtual DIY
  9. Radio FM Kabin Shower Berbasis Arduino
  10. Apa itu Gergaji Pita Vertikal?