Firmware (Arduino®) per beacon ARDF

In un precedente articolo vi ho raccontato come ho realizzato un semplice beacon per ARDF a 433.92 MHz basato su di un microcontrollore Microchip PIC12F509 e programmato in linguaggio Assembly. Qui di seguito invece vi riporto il codice per attivare un semplice beacon per ARDF utilizzando Arduino® : viene inviata la lettera “S” in codice Morse con una frequenza di una volta al secondo e la durata di un punto è pari a 100 ms.

Lo schema da utilizzare è il seguente. Al posto del LED collegherete l’ingresso di abilitazione del trasmettitore (vedete schema nell’articolo menzionato).

Qui di seguito riporto il codice. Viene utilizzato un timer di periodo 100 ms

include “Timer.h”
define LED 13
void timerISR();
int counter = 0;
int event = 0;
Timer t;


void setup() {
pinMode(LED, OUTPUT); // LED on PIN 13
int timerEvent = t.every(100, timerISR, (void*)0); // ISR every 100 ms
}


void loop() {
t.update();
if (event == 1) // timer interrupt event
{
startTime = millis();
switch (counter){
case 0:
digitalWrite(LED, HIGH);
break;
case 1:
digitalWrite(LED, LOW);
break;
case 2:
digitalWrite(LED, HIGH);
break;
case 3:
digitalWrite(LED, LOW);
break;
case 4:
digitalWrite(LED, HIGH);
break;
case 5:
case 6:
case 7:
case 8:
case 9:
digitalWrite(LED, LOW);
break;
default:
break;
}
event = 0;
}
}


void timerISR() {
if (++counter >= 10)
{
counter = 0;
}
event = 1;
}

Per utilizzare la libreria del Timer dovrete installarla: trovate tutte le informazioni che vi servono qui.

Per dubbi o chiarimenti scrivetemi.

73 de IZ0ABD Francesco