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

Membuat Transmiter Musik AM dengan Arduino Nano

Komponen dan Perlengkapan

Aplikasi dan Layanan Online

Tentang Proyek Ini

Hal-hal keren dapat dilakukan dengan mikrokontroler ATmega. Jadi saya mendapat ide untuk membuat transmiter AM dengan Arduino Nano (Arduino lainnya juga memungkinkan).

Pertanyaannya adalah, bagaimana modulasi amplitudo (AM) dapat dicapai pada perangkat digital? AM berarti amplitudo frekuensi pembawa diubah sesuai dengan amplitudo sinyal input yang ingin kita transmite. Secara matematis, kita mengalikan pembawa dengan sinyal input. Tapi karena ATmega hanya memiliki keluaran digital, ia hanya dapat memberikan dua nilai: tinggi dan rendah. Secara jujur, tidak ada cara untuk mendapatkan AM asli dari Arduino.

Namun, masih memungkinkan untuk menghasilkan sinyal output yang dapat didengar dengan jelas dengan penerima radio AM biasa!

Solusinya terdiri dari mengubah sinyal input analog menjadi sinyal PWM, menggunakan ADC dan timer/hitung 16-bit timer/counter1 dari mikrokontroler ATmega.

Timer/counter2 menghasilkan sinyal pembawa, yang dapat bervariasi dalam rentang luas antara 31KHz dan 8MHz.

Sinyal pembawa ini dioutput pada pin D11 dalam irama sinyal PWM. Radio AM berperisai seperti filter low-pass pada PWM, jadi kita mendapatkan kembali sinyal audio asli di sana.

Ini hanya bukti konsep, jadi saya menjadikannya sederhana. Jika Anda benar-benar ingin menggunakan ini sebagai transmiter RF, Anda harus menambahkan filter low-pass untuk anti-aliasing ke input audio dan filter low-pass terhadap harmonik ke output RF.

Kode

Arduino AM TransmitterC/C++
/*This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0.*/ #define ANTENNA_PIN PB3 //Arduino Nano/Uno D11 // the setup function runs once when you press reset or power the board void setup() { Serial.begin(115200); //Carrier Frequency generation uint32_t fTransmit = 600; //KHz DDRB |= (1 << ANTENNA_PIN); TCCR2A = (0 << COM2A1) + (1 << COM2A0); //Toggle OC0A on Compare Match TCCR2A |= (1 << WGM21) + (0 << WGM20); //CTC TCCR2B = (0 << CS22) + (0 << CS21) + (1 << CS20); //No Prescaling OCR2A = F_CPU / (2000 * fTransmit) - 1; char strbuf[255]; sprintf(strbuf, "Will broadcast at %d KHz", (F_CPU / (2 * (1 + OCR2A)) / 1000)); Serial.println(strbuf); //PWM Signal generation //TCCR1A |= (0 << WGM11) + (1 << WGM10); //Fast PWM 8 Bit //TCCR1A |= (1 << WGM11) + (0 << WGM10); //Fast PWM 9 Bit TCCR1A |= (1 << WGM11) + (1 << WGM10); //Fast PWM 10 Bit TCCR1B = (1 << WGM12); TCCR1B |= (0 << CS12) + (0 << CS11) + (1 << CS10); //No Prescaling TIMSK1 = (1 << OCIE1A) + (1 << TOIE1); //ADC Settings ADMUX = (1 << REFS1) + (1 << REFS0); //Reference internal 1.1V ADCSRA = (1 << ADEN) + (1 << ADSC) + (1 << ADATE); //Auto Trigger enable, free running ADCSRA |= (1 << ADPS2) + (1 << ADPS1) + (0 << ADPS0); //Divide by 64 -> 18.5k Sample rate DIDR0 = (1 << ADC0D); } ISR(TIMER1_OVF_vect) { uint8_t adcl = ADCL; uint8_t adch = ADCH; OCR1A = (adch << 8) + adcl; DDRB |= (1 << ANTENNA_PIN); } ISR(TIMER1_COMPA_vect) { DDRB &= ~(1 << ANTENNA_PIN); } void loop() { } 

Skematik

Membuat Transmiter Musik AM dengan Arduino Nano

Proses manufaktur

  1. Warisan dan Evolusi Jukebox Klasik
  2. Lembar Musik: Dari Naskah Abad Tengah hingga Penerbitan Modern
  3. Lampu Lalu Lintas: Rekayasa, Sejarah, dan Inovasi Masa Depan
  4. Buat LUMAZOID Sendiri: Visualisasi Musik Arduino DIY
  5. Membuat Spybot Arduino yang Dikontrol melalui Bluetooth
  6. Mendekode Sinyal PPM Penerima RC dengan Arduino: Panduan Langkah demi Langkah
  7. FlickMote: Remote IR Kendali Gestur untuk Rumah Cerdas
  8. DIY Arduino TV B-Gone: Remote Universal untuk Semua TV
  9. Bangun Jam Master LED Kustom dengan Alarm – Terlihat dari Jarak 12 Meter
  10. Penggunaan Termistor yang Mudah: Panduan Langkah demi Langkah Arduino