Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Allband-Radio mit Si4730 & Arduino Nano – LW, MW, KW, FM

Komponenten und Zubehör

KomponenteAnzahl
Arduino Nano R31
Si4730 Radio-Modul (Breakout-Board)1
LCD 16×2 (weiß auf blau)1
Drehencoder mit Taster1
Class-D Audioverstärker (PAM8403, 2×3 W)1
Lautsprecher 0,25 W, 8 Ω1
Ferritstabantenne (aus altem MW-Radio)1
Schiebeschalter1

Benötigte Werkzeuge

Software

Projektbeschreibung

Wenn man an Arduino-Radio denkt, kommt meist nur UKW (88–108 MHz) in den Sinn. Dieses Gerät deckt jedoch LW (Langwelle), MW (Mittelwelle), KW (Kurzwelle) und FM ab. Kurzwelle (3–30 MHz) ermöglicht durch Ionosphärenreflexion weltweiten Empfang.

Das Herz ist der Si4730 von Silicon Labs (als günstiges Breakout-Board erhältlich). Obwohl das Datenblatt nur AM/FM angibt, funktioniert der Chip auch im KW-Bereich. Gesteuert wird per I2C. Die Firmware basiert auf der Si4735-I2C-R4-Bibliothek von Julio C. Rosa.

Hardware-Details

Bemerkenswert

Der Si4730/35-Chip wird in vielen Markenportableradios (TECSUN, DEGEN, SANGEAN u. a.) verbaut.

Code (Auszug)

Der Sketch nutzt Si4735.h, LiquidCrystal.h, rotary.h und Wire.h. Wichtige Funktionen:

// Bibliotheken
#include 
#include 
#include 
#include "Wire.h"

// I/O
Rotary r = Rotary(2, 3);
LiquidCrystal lcd(12, 13, 7, 6, 5, 4);
const byte band = A0;

// Variablen
unsigned int freq = 880, freqmax = 10800, freqmin = 50, fstep = 10, freqold;
unsigned int buttonstate, count = 15;
Si4735 radio;

void setup() {
  lcd.begin(16, 2);
  PCICR |= (1 << PCIE2);
  PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
  sei();
  pinMode(band, INPUT_PULLUP);
  radio.begin();
  radio.setMode(AM);
  command_am();
  radio.tuneFrequency(freq);
  // LCD-Initialisierung...
}

ISR(PCINT2_vect) { /* Encoder auswerten */ }

void loop() {
  if (freqold != freq) { tune(); }
  freqold = freq;
  // LCD-Anzeige Frequenz
  buttonstate = digitalRead(band);
  if (buttonstate == LOW) { inc_preset(); while(digitalRead(band)==0); }
  // S-Meter Anzeige
  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);
}

void inc_preset() { count++; if(count>15) count=1; bandpresets(); delay(100); }

void bandpresets() { /* 15 Cases für LW/MW/SW/FM Presets */ }

void tune() { radio.tuneFrequency(freq); }

void command_am() {
  radio.setProperty(PROP_AM_SOFT_MUTE_MAX_ATTENUATION, 0);
  radio.setProperty(PROP_AM_AUTOMATIC_VOLUME_CONTROL_MAX_GAIN, 0x3A98);
}

Bibliotheken & Schaltplan

Bibliotheken (Si4735, rotary) als Download. Schaltplan im Originalprojekt verlinkt.

Herstellungsprozess

  1. Kristall‑ und Transistorradio‑Schaltungen: Vom einfachen Detektor zum integrierten AM/FM‑Empfänger
  2. Entwicklung und Technik der Radiotechnologie
  3. Die Evolution und Produktion von Gummibändern
  4. DIY Thermocam: Vom Klassenraum-Idee zum globalen Produkt
  5. DIY UVC-Sterilisator-Bausatz – Günstige, einfach zu bauende UV-Box für Medizin & Alltag
  6. WLAN-Internetradio mit Raspberry Pi & Arduino bauen: Weltweite Sender streamen
  7. JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
  8. DIY VR-Skateboard mit Arduino, Google Cardboard und Bluetooth bauen
  9. Wasserdichtes Duschradio mit Arduino Nano, RDA5807, Nokia 5110 LCD & PAM8403
  10. Vertikale Bandsäge: Zweck, Eigenschaften und Anwendungen