Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #define SEND_DELAY 5000
- #define LED_PIN 13
- SoftwareSerial mySerial(2, 3); // RX, TX
- void setup()
- {
- pinMode(LED_PIN, OUTPUT);
- digitalWrite(LED_PIN, HIGH);
- delay(1000);
- digitalWrite(LED_PIN, LOW);
- // Open serial communications and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
- Serial.println("SETUP Arduino");
- // set the data rate for the SoftwareSerial port
- mySerial.begin(9600);
- }
- char beacon[]="abcdef";
- char answer[]="fedcba";
- char input[]="000000";
- unsigned long timeLastSend = 0;
- unsigned long led_on_time = 0;
- unsigned i=0;
- void loop() // run over and over
- {
- unsigned char c;
- if (millis() > timeLastSend){
- mySerial.write(beacon);
- timeLastSend = millis()+SEND_DELAY;
- led_on_time = millis()+200;
- digitalWrite(LED_PIN, HIGH);
- Serial.println("Sending beacon...");
- }
- if (millis() > led_on_time){
- digitalWrite(LED_PIN, LOW);
- }
- if (mySerial.available()){
- c = mySerial.read();
- Serial.print("r:");
- Serial.print(c);
- if ( c == answer[0]){
- i=1;
- input[0]=c;
- }else if(i > 0){
- input[i] = c;
- i++;
- }
- }
- if ( i >= strlen(beacon)){
- if (strcmp(input, answer) == 0){
- digitalWrite(LED_PIN, HIGH);
- led_on_time = millis()+700;
- Serial.println("GOT BEACON");
- }else{
- Serial.println("beacon failed...");
- strcpy("000000",input);
- }
- i=0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement