Дигитална електроника > Развојни околини
AM предавател со Arduino
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