#include "TickTwo.h" const int LED_PIN = D5; const int MIC_PIN = A0; const int PTT_PIN = D8; const int VOX_DELAY = 1000; // irrelevant TickTwo.h semantics void pttClose(); TickTwo ticker1(pttClose, 0, 1, MILLIS); bool transmitting; void setup() { // configure PTT pin as an digital out pinMode(LED_PIN, OUTPUT); pinMode(PTT_PIN, OUTPUT); // configure MIC pin as a digital input pinMode(MIC_PIN, INPUT); // DEBUG //Serial.begin(9600); // deactivate PTT transistor switch / PTT low (start broadcast) digitalWrite(LED_PIN, LOW); digitalWrite(PTT_PIN, LOW); // alarm(MIN) ticker1.start(); } void loop() { // irrelevant TickTwo.h semantics ticker1.update(); // read the MIC pin int val = analogRead(MIC_PIN); // DEBUG //Serial.println(val); // if mic sensor is low (audio playing) if (val == 1024 && !transmitting) { // activate PTT switch / PTT low (start broadcast) //Serial.println("PTT activated..."); digitalWrite(LED_PIN, HIGH); digitalWrite(PTT_PIN, HIGH); // alarm(5000) ticker1.interval(VOX_DELAY); ticker1.resume(); transmitting = true; return; } transmitting = false; } void pttClose() { // deactivate PTT transistor switch / PTT low (start broadcast) //Serial.println("PTT deactivated..."); digitalWrite(LED_PIN, LOW); digitalWrite(PTT_PIN, LOW); transmitting = false; }