From 2d5deedf544a6bbd622e4f33ddbbc43080a12da3 Mon Sep 17 00:00:00 2001 From: Nigel Vander Houwen Date: Sun, 28 Jun 2015 10:20:57 -0700 Subject: [PATCH] Slight rearranging, and added comments to FM Beacon example sketch. --- examples/FMBeacon/FMBeacon.ino | 58 ++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/examples/FMBeacon/FMBeacon.ino b/examples/FMBeacon/FMBeacon.ino index e54323a..0966214 100644 --- a/examples/FMBeacon/FMBeacon.ino +++ b/examples/FMBeacon/FMBeacon.ino @@ -1,44 +1,68 @@ /* - Morse Code Beacon Test beacon will transmit and wait 30 seconds. Beacon will check to see if the channel is clear before it will transmit. - - */ +// Include the HamSheild and Wire (I2C) libraries #include #include +// Create a new instance of our HamSheild class, called 'radio' HamShield radio; +// Run our start up things here void setup() { + // Set up the serial port at 9600 Baud Serial.begin(9600); - Serial.println("starting up.."); + + // Send a quick serial string + Serial.println("HamShield FM Beacon Example Sketch"); + + // Start the Wire (I2C) library Wire.begin(); + // Query the HamShield for status information Serial.print("Radio status: "); int result = radio.testConnection(); Serial.println(result,DEC); - radio.initialize(); // setup radio - radio.frequency(446000); // set to 70 cm call frequency - Serial.println("Done with radio beacon setup."); + + // Tell the HamShield to start up + radio.initialize(); + + // Configure the HamShield to transmit and recieve on 446.000MHz + radio.frequency(446000); + + Serial.println("Radio Configured."); } void loop() { - if(radio.waitForChannel(30000,2000,-50)) { // wait up to 30 seconds for a clear channel, and then 2 seconds of empty channel - Serial.println("Signal is clear -- Transmitting"); - radio.setModeTransmit(); // turn on the transmitter - radio.morseOut("1ZZ9ZZ/B CN87 ARDUINO HAMSHIELD"); - radio.setModeReceive(); // turn off the transmitter (receive mode) - Serial.print("TX Off"); + // We'll wait up to 30 seconds for a clear channel, requiring that the channel is clear for 2 seconds before we transmit + if (radio.waitForChannel(30000,2000,-50)) { + // If we get here, the channel is clear. Let's print the RSSI to the serial port as well. + Serial.print("Signal is clear, RSSI: "); + Serial.println(radio.readRSSI()); + + // Start transmitting by putting the radio into transmit mode. + Serial.print("Transmitting... "); + radio.setModeTransmit(); + + // Send a message out in morse code + radio.morseOut("CALLSIGN LOCATOR ARDUINO HAMSHIELD"); + + // We're done sending the message, set the radio back into recieve mode. + radio.setModeReceive(); + Serial.println("Done."); + + // Wait 30 seconds before we send our beacon again. delay(30000); - } else { + } else { + // If we get here, the channel is busy. Let's also print out the RSSI. Serial.print("The channel was busy. Waiting 10 seconds. RSSI: "); Serial.println(radio.readRSSI()); + + // Wait 10 seconds and check the channel again. delay(10000); } -} - - +} \ No newline at end of file