工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

DIY Si4730オールバンドラジオ(LW、MW、SW、FM)

コンポーネントと消耗品

>
Arduino Nano R3
× 1
Si4730無線モジュール
× 1
Adafruit標準LCD-16x2白地に青
× 1
プッシュボタン付きロータリーエンコーダー
× 1
開発ボード、クラスDオーディオアンプモジュール
× 1
スピーカー:0.25W、8オーム
× 1
古いMWラジオのフェライトロッド
× 1
スライドスイッチ
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

Arduinoラジオについて言及するとき、あなたは常に現代のFMラジオ(ヨーロッパでは88-108 MHz)を思い浮かべます。 LW、MW、およびSW帯域は、0.2〜30MHzの範囲をカバーします。 SWは特に興味深いです。短波帯の電波は、電離層と呼ばれる大気中の帯電した原子の層で反射または屈折する可能性があります。したがって、短波ラジオは、大陸全体またはそれ以降の非常に長距離の通信に使用できます。

以下に、上記のすべての帯域をカバーするラジオの開発を紹介します。このラジオの「心臓部」はSiliconLabsのSi4730ICで、AliExpressから小さな開発ボードの形で数ドルで購入できます。

<図>

このボードは、I2Cプロトコルを使用してArduinoによって制御されます。コードはJulioC。Rosaによって作成され、コードとスキームとともに以下に示すSi4735-I2C-R4ライブラリに基づいています。このチップ(Si4730)はAM / FM専用であるとメーカーが言っていますが、実際にはSWでも動作します。オーディオ出力には、非常に安価で機能的なミニデジタルアンプボード2 * 3WPAM8403クラスDを使用しています。

このデバイスは適切なハウジングに組み立てられており、完全な小型のワールドバンドラジオを表しています。それ以外の場合、私は比較的人口密度の高い1階に住んでいて、長さ10メートルのアンテナを使用しているため、受信はかなり弱いですが、それでも私が所有する商用品質のポケットラジオに匹敵します。

そして最後に、このチップは、TECSUN、DEGEN、SANGEANなどの多くの有名な携帯ラジオブランドで使用されていることを述べておきます。

コード

  • コード
  • ライブラリ
コード C / C ++
 / ********************************************** ************************************************** ** JCR Si4730 / 5レシーバーLW / MW / SW / FM-共有するバージョン。配線の詳細については、回路図を参照してください。 Julio C. Rosa著-CesarSound- 2019年5月コマンド:radio.volumeUp(); radio.volumeDown(); radio.seekDown(); radio.seekUp(); radio.mute(); radio.unmute(); radio.setMode(FM); radio.tuneFrequency(9490); radio.getStatus(); radio.getVolume(); radio.getMode(); radio.getMute(); radio.toggleMute(); RSQMetrics rsq; radio.getRSQ(&rsq); (rsq.stereo); print_number(rsq.stereoBlend); print_number(rsq.SNR); (rsq.seekable); print_number(rsq.RSSI); print_mode(); print_station_freq(); print_volume(); print_mute(); print_home(); radio.getCallSign(callSign); printp(rds1); Serial.write(callSign); radio.getProgramTypeStr(programType); Serial.write(programType); (rds1); (rds2); (rds3); (rds4); (rds5); ********************************************** ************************************************** ***** /// Library#include  #include  #include  #include "Wire.h" // I / O設定ロータリーr =ロータリー(2、3 ); LiquidCrystal lcd(12、13、7、6、5、4); const byte band =A0; //変数設定unsignedint freq =880; unsigned int freqmax =10800; unsigned int freqmin =50; unsigned int fstep =10; unsigned int freqold; unsigned int buttonstate; unsigned int count =15; //radio.Si4735という名前のSi4730 / 5のインスタンスを作成しますradio; void setup(){lcd.begin(16、2); PCICR | =(1 <>"); lcd.setCursor(3、0); lcd.print( ":"); lcd.setCursor(13、0); lcd.print( "kHz");} //エンコーダーInterruptISR(PCINT2_vect){unsigned char result =r.process(); if(result){if(result ==DIR_CW){freq =freq + fstep; if(freq> =freqmax){freq =freqmax; }} else {freq =freq --fstep; if(freq <=freqmin){freq =freqmin; }}}} void loop(){if(freqold!=freq){tune(); } freqold =freq; lcd.setCursor(5、0); lcd.print(freq); lcd.print( ""); buttonstate =digitalRead(band); // Seletor de bandas if(buttonstate ==LOW){inc_preset(); while(digitalRead(band)==0); } // Medidor-S-Meter(dBu)e SNR(dB)-RSQMetricsrsqを使用する場合はコメントを解除します。 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);} //プリセットINCvoidinc_preset(){count ++; if(count> 15)count =1; bandpresets(); delay(100);} //プリセットSeletorde Bandasvoid bandpresets(){lcd.setCursor(0、0);スイッチ(カウント){ケース1:周波数=370; radio.setMode(LW); radio.tuneFrequency(freq); command_am(); fstep =5; lcd.print( "LW1");壊す;ケース2:周波数=620; radio.setMode(AM); radio.tuneFrequency(freq); fstep =5; lcd.print( "MW1");壊す;ケース3:周波数=840; radio.setMode(AM); radio.tuneFrequency(freq); fstep =5; lcd.print( "MW2");壊す;ケース4:周波数=3700; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW0");壊す;ケース5:freq =4985; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW1");壊す;ケース6:freq =6010; radio.setMode(SW); radio.tuneFrequency(freq); fstep =1; lcd.print( "SW2");壊す;ケース7:freq =7200; radio.setMode(SW); radio.tuneFrequency(freq); fstep =1; lcd.print( "SW3");壊す;ケース8:freq =10000; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW4");壊す;ケース9:freq =11940; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW5");壊す;ケース10:freq =13710; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW6");壊す;ケース11:freq =15400; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW7");壊す;ケース12:freq =17560; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW8");壊す;ケース13:freq =21505; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "SW9");壊す;ケース14:freq =27015; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print( "CB1");壊す;ケース15:freq =9700; radio.setMode(FM); radio.tuneFrequency(freq); fstep =10; lcd.print( "FM1");壊す; }} // Sintonizador-tunnervoid tune(){radio.tuneFrequency(freq);} //コマンドソフトミュートオフ/ AVC max gainvoid command_am(){radio.setProperty(PROP_AM_SOFT_MUTE_MAX_ATTENUATION、0); // 0(オフ)-63 radio.setProperty(PROP_AM_AUTOMATIC_VOLUME_CONTROL_MAX_GAIN、0x3A98); // 1000-7800} 
ライブラリ C / C ++
プレビューなし(ダウンロードのみ)。

回路図


製造プロセス

  1. 無線回路
  2. 無線
  3. 輪ゴム
  4. DIYサーモカムを作る
  5. UVCボックスDIYUV滅菌器
  6. Pi-Arduinoインターネットラジオ
  7. JX Wave Generator
  8. DIYバーチャルリアリティスケートボード
  9. ArduinoベースのシャワーキャビンFMラジオ
  10. J.A.R.V.I.S with DIY Arc Reactor
  11. 縦型バンドソーとは?