this code is not good, and Im not a programmer in any way, sorry
This was made to control fence with ht radios with sending tones back
because I'm using Arduino nano that puts pins in HIGH when pinMode(OUTPUT), I have to put this inside Loop to set it LOW when I needed
Question: how to run ''if" sections inside loop once, and wait for new dtmf code to be received
Need to be
- Tone Received
- Fence relay turns unit off
3.second relay turns ptt on radio on
4.Speaker pin sends tone signal to let me know fence unit is off
5.second relay turns ptt on radio off
6.waiting to new dtmf code to be received to do another "if"
Please help, and sorry for my russian- //..........
int x,y,z,t;
int a=2; // D2 вход с DTMF Q1
int b=3; // D3 вход с DTMF Q1
int c=4; // D4 вход с DTMF Q1
int d=5; // D5 вход с DTMF Q1
int e=6; // D6 реле fence on/off
int f=7; // D7 выход светодиод "fence off"
int speakerpin = 8; // D8 audio tone output
int h=9; // D9 управление реле radio transmition on and off
int i=10; // D10 выход светодиод " test radio in range"
void setup() {
delay(2000);
pinMode(a,INPUT);
pinMode(b,INPUT);
pinMode(c,INPUT);
pinMode(d,INPUT);
pinMode(f,OUTPUT); // led "fence off"
pinMode(speakerpin,OUTPUT); // audio out
pinMode(i,OUTPUT); // led "test radio in range"
Serial.begin (9600);
}
void loop() {
x=digitalRead(a);
y=digitalRead(b);
z=digitalRead(c);
t=digitalRead(d);
delay(1000);
if (x==1 && y==0 && z==0 && t==0) // DTMF 1 выключить пастух
{pinMode(e,OUTPUT); // relay fence on/off
pinMode(h,OUTPUT); // relay control test
digitalWrite(i,HIGH); // test led off
digitalWrite(f,LOW); // fence led on
digitalWrite(e,LOW);
delay(3000); // fence discharge pause
digitalWrite(h,LOW); // transmit radio on
delay(2000);
tone(speakerpin,600,1000);
delay(1000);
tone(speakerpin,1000,1000);
delay(2000);
digitalWrite(h,HIGH);
}
if (x==0 && y==1 && z==0 && t==0) // DTMF 2 включить пастух
{pinMode(e,OUTPUT); // relay fence on/off
pinMode(h,OUTPUT); // relay control test
digitalWrite(f,HIGH); // fence led off
digitalWrite(e,HIGH); // fence relay on
delay(200); // pause before msg
digitalWrite(h,LOW);
delay(5000);
tone(speakerpin,1000,1000);
delay(1000);
tone(speakerpin,600,1000);
delay(5000);
digitalWrite(h,HIGH);
}
if (x==0 && y==0 && z==1 && t==0) // DTMF 4 radio "in range" test on
{pinMode(e,OUTPUT); // relay fence on/off
pinMode(h,OUTPUT); // relay control test
digitalWrite(i,LOW); // test led on
delay(200); // pause before msg
digitalWrite(h,LOW);
delay(5000);
tone(speakerpin,600,1000);
delay(1000);
tone(speakerpin,600,1000);
delay(1000);
tone(speakerpin,600,1000);
delay(5000);
digitalWrite(h,HIGH);
}
if (x==0 && y==0 && z==0 && t==1) // DTMF 8 radio "in range" test off
{pinMode(e,OUTPUT); // relay fence on/off
pinMode(h,OUTPUT); // relay control test
digitalWrite(i,HIGH); // test led off
digitalWrite(h,LOW);
delay(5000);
tone(speakerpin,1000,1000);
delay(1000);
tone(speakerpin,600,1000);
delay(5000);
digitalWrite(h,HIGH);
}
}