Дигитална електроника > Развојни околини

AM предавател со Arduino

<< < (3/3)

MilerovEfekt:
Нормално дека е со слаб квалитет :-) Ова е нај bare-bones работа што би можело да се направи. Квалитетот нема поврзаност со верзија на *ардуино* плочка или било што, едноставно е лошо :-)

BorceBT:
Сепак пробај и со друго Arduino за најсигурно.

DX-er:
Еве направив 3 аудио записи од овој АМ (MW) предавател на 1000KHz. Борче дали вака звучи и кај тебе или е подобро? Доколку е подобро да знам барем.


--- Code: ---https://soundcloud.com/user-893319551/sets/arduino-am-mw-transmitter-1000khz
--- End code ---

Другите што го имате направено ставете по некој аудио запис


Дали може да му се смени фрекфенцијата, ако може кој параметар е фрекфенцијата ?


--- Code: ---// Simple AM Radio Transmitter : Markus Gritsch
// Simplification and improvement: Borce Trajkovski
//                                                     ANT
//                                                    \ | /
//                          ,−−−−−−−−−−−−−−−−.         \|/
//                  5v      | Arduino 16 MHz |          |
//                  ^       |                |          |
//   audio   C1     |       |      TIMER_PIN >−−−−−−−−−−'
 //  input   ||     |       |                |
 //    o−−−−−||−−−−−|−−+−−−−> INPUT_PIN      |
 //         +||     | /     |                |
 //          1uF   |"|  R1  | ATmega328P     |
 //             \ /| |  22k `−−−−−−−−−−−−−−−−'
 //      DC bal  \ |_| trimmer
 //                 |
 //                −-− GND
 //
 
#define INPUT_PIN 0 // ADC input pin
#define TIMER_PIN 3 // PWM output pin, OC2B (PD3)
#define LED_PIN 13  // displays input overdrive
#define SHIFT_BY 6  // 2 ... 7 input attenuator
#define TIMER_TOP 15 // determines the carrier frequency
#define A_MAX TIMER_TOP/2
#define CLR(x,y)(x&=(~(1<<y)))
#define SET(x,y)(x|=(1<<y))
 
void setup(){
  pinMode(TIMER_PIN,OUTPUT);
  pinMode(LED_PIN,OUTPUT);
  // set ADC prescaler to 16 to decrease conversion time (0b100)
  ADCSRA=(ADCSRA|_BV(ADPS2))&~(_BV(ADPS1)|_BV(ADPS0));
  // non−inverting; fast PWM with TOP; no prescaling
  TCCR2A=0b10100011; // COM2A1 COM2A0 COM2B1 COM2B0 − − WGM21 WGM20
  TCCR2B=0b00001001; // FOC2A FOC2B − − WGM22 CS22 CS21 CS20
  // 16E6 / ( OCR2A + 1 ) = 762 kHz @ TIMER_TOP = 20
  OCR2A=TIMER_TOP;   // = 1MHz @ TIMER_TOP = 15
  OCR2B=TIMER_TOP/4; // set carrier amplitude at 50%
}
 
void loop(){
   // about 50 kHz sampling frequency
  int8_t value=(analogRead(INPUT_PIN)>>SHIFT_BY);
  // clipping manage
  if(value>A_MAX){
    value=A_MAX;
    SET(PORTB,5);
  }else{
    CLR(PORTB,5);
  }
  OCR2B=value;
}
--- End code ---

DX-er:
Еве како изгледа сигналот без модулација

Navigation

[0] Message Index

[*] Previous page

Go to full version