PaulRB
18
#define RX_PIN 0
#define LED 7
#define LAUNCH_PIN 13
char launchCode[] = "123BOOM";
//message handling variables
#define BUF_SIZE 30
char newMessage[BUF_SIZE];
void setup() {
pinMode(LED, OUTPUT);
pinMode(LAUNCH_PIN, OUTPUT);
Serial1.begin(9600);
}
void loop() {
//check for new messages
if (Serial1.available()) {
readSerial();
Serial.print(newMessage);
Serial.println();
if (strcmp(launchCode, newMessage) == 0) {
launchProcedure();
}
}
}
void readSerial(void) {
Serial1.readBytesUntil('\n', newMessage, BUF_SIZE-1);
}
void launchProcedure(void) {
Serial.print("Launch initiated!!");
// Initiate countdown
for (int i = 1; i <= 10; i++) {
//Countdown warning LED blink sequence
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay (500);
}
digitalWrite(LAUNCH_PIN, HIGH); //Switch voltage to starter to high and ignite rocket motor
delay (5000);
digitalWrite(LAUNCH_PIN, LOW); //Switch voltage to starter to low after launch
newMsgReceivedstate = false;
}