//UA3REO Arduino Sequencer //Ports definition #define LNA_OUT 4 //D4 #define PA_OUT 3 //D3 #define TRX_PTT_OUT 5 //D5 #define PTT_IN 2 //D2 #define STEP_DELAY 20 //step delay in milliseconds bool need_update = false; void setup() { pinMode(LNA_OUT, OUTPUT); pinMode(PA_OUT, OUTPUT); pinMode(TRX_PTT_OUT, OUTPUT); pinMode(PTT_IN, INPUT_PULLUP); digitalWrite(LNA_OUT, HIGH); digitalWrite(PA_OUT, HIGH); digitalWrite(TRX_PTT_OUT, HIGH); attachInterrupt(0, ptt_interrupt, CHANGE); //D2 - INT.0 } void loop() { if(need_update) { bool ptt_in_status = digitalRead(PTT_IN); if(ptt_in_status) //TX->RX { digitalWrite(TRX_PTT_OUT, HIGH); delay(STEP_DELAY); digitalWrite(PA_OUT, HIGH); delay(STEP_DELAY); digitalWrite(LNA_OUT, LOW); } else //RX->TX { digitalWrite(LNA_OUT, HIGH); delay(STEP_DELAY); digitalWrite(PA_OUT, LOW); delay(STEP_DELAY); digitalWrite(TRX_PTT_OUT, LOW); } } } void ptt_interrupt() { need_update = true; }