↓
 

Radioamateur.ch

L'activité des radioamateurs suisses et francophones.

  • A propos de radioamateur.ch
    • A propos de radioamateur.ch
    • FAQ
    • Politique de confidentialité
  • Sections USKA
  • Clubs radioamateur
  • Rechercher
  • IAPC technique
  • Autres Liens

Archives pour la catégorie émetteur

WSPR autonome

Radioamateur.ch Publié le 19 avril 2012 par Guenael19 avril 2012

Le petit montage WSPR que j’avais commencé à fabriquer fonctionne ! 🙂 Rien de bien sorcier: un oscillateur quartz pour lequel on fait varier légèrement fréquence en jouant sur la capacité d’une diode, un étage de sortie et un microcontrôleur qui pilote le timing des différents symboles encodés.

En fait, les gens qui utilisent des kits QRSS pourraient facilement modifier le leur pour en faire un émetteur WSPR autonome, car les segments WSPR et QRSS sont très proches sur la bande des 30m.

Pour mon montage, j’ai utilisé un contrôleur Ardiuno, et c’est aussi ma première utilisation de cette plate-forme. En une phrase : c’est simple, bien pensé, et ultra-fastoche à programmer 🙂

Bref, pour les bricoleurs ou les curieux, voici le code :

/* WSPR Controler
 * VA2GKA, from scratch, Go :)
 * Tone separation: 1.4648 Hz (total = 5.8592 Hz)
 * Number of symbols: 162
 * Keying rate: 12000/8192 = 1,46484375 baud
 * Duration of transmission: 162 x 8192/12000 = 110,592s
 * Wait time: 9,408 (9408000us)
 * Symbole duration: 0,68266667s (682667us)
 */

int wsprPinA = 13 ;
int wsprPinB = 12 ;
int wsprReset = 11 ;
int counter = 0;
char symbol;

/* Sequence pour VA2LTF... */
char sequence[] = {
3,3,0,2,2,0,0,0,3,0,2,2,1,1,3,2,2,2,1,0,2,1,0,3,3,1,
3,0,2,0,2,2,0,0,1,0,0,1,2,3,2,0,2,2,0,2,3,0,3,3,0,2,
3,3,0,1,2,0,2,3,1,2,3,2,2,0,2,1,1,2,3,2,1,2,3,2,3,0,
0,3,2,0,1,2,3,3,2,2,0,1,3,0,3,2,1,0,0,0,1,0,2,2,0,0,
3,2,2,1,0,2,1,3,3,2,1,1,2,2,1,1,2,3,0,2,2,1,1,3,2,2,
0,2,0,1,2,3,0,0,3,1,0,2,0,0,0,2,2,1,3,0,3,2,1,1,0,0,
2,3,1,0,0,2};

void setup() {
  pinMode(wsprPinA, OUTPUT);
  pinMode(wsprPinB, OUTPUT);
  pinMode(wsprReset, INPUT);
  //attachInterrupt(0, intReset, RISING);
}

void loop() {
  counter = 0;
  for (;counter> 1) );
    symbol = sequence[counter];
    digitalWrite( wsprPinB, (symbol >> 1) );
    symbol = sequence[counter];
    digitalWrite( wsprPinA, (symbol & 1) );
    delay(682.667);
  }
  //digitalWrite( wsprPinA, LOW );
  //digitalWrite( wsprPinB, LOW );
  delay(9408);
}

void intReset() {
  counter = 0;
}

Et voici un petit aperçu d’une émission avec l’émetteur :

Deux émissions WSPR de 2 minutes visibles (waterfall horizontal)

A noter que j’ai résolu mes petits problèmes de stabilité. Je pourrais encore améliorer un peu l’oscillateur avec un contrôle de température au niveau de quartz.

Publié dans arduino,émetteur,microcontroler,oscillator,Radio & Wifi,va2gka,WSPR
Radioamateur.ch est un journal proposé par l'IAPC.
©2025 - Radioamateur.ch Politique de confidentialité
↑