irgendwie bin ich zu doof das richtig zu machen ...
![]()
Der Arduino Uno soll den zeitgesteuerten Ablauf einer Sendeempfangsanlage machen, das heiĂt pin 2 high = Empfang und wenn low Sendung
Ich möchte, wenn ich PIN 2 auf 0 lege ? (also txgnd auf 0) sofort ohne Verzögerung den Pin relaisvv low setzen und alle andern Pin in xx Millis schalten ( damit die Sender nicht, ohne das die Relais geschlossen haben, eingeschaltet werden.
Hab den Pin wirklich auf 0 Volt gelegt - nicht irgendwo im Zwischenbereich - die Spannung am pin 6 geht nicht sofort auf 0
Alles andere funktioniert - nur Pin 2 low und unmittelbar dann den Pin 6 low geht nicht
*code
/*
Sequencer Ant Relais pin5,VV Relais pin6, Sender pin3, Poweramp pin4
Pin8 auf Masse - Alarmeingang
*/
//variable fĂŒr sequencer
int txgnd = 2; // on pin Digital 2 PTT
int relay1 = 3; // on pin Power PA 25 Watt
int relay2 = 4; // on pin ext PA
int relay3 = 5; // on pin Digital 5
int relaisvv = 6; //on pin Digital 6
int alarmled = 7; // alarmled an pin 7
int alarminput = 8; // SWR mies
int txgndstate = 0;
int alarminputstate = 1;
void setup() {
//setup sequencer
pinMode(relay1, OUTPUT); //coaxrelay
pinMode(relay2, OUTPUT); //Power PA
pinMode(relay3, OUTPUT); //RF input relay
pinMode(relaisvv, OUTPUT); //VV
pinMode(txgnd, INPUT_PULLUP);
pinMode (alarminput, INPUT_PULLUP); // initializiere alarminput als input
pinMode(alarmled, OUTPUT); //alarmled an wenn SWR zu hoch
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relaisvv, HIGH);
digitalWrite(alarmled, HIGH);
}
void loop() {
txgndstate = digitalRead (txgnd);
if (txgndstate == LOW) { // go to TX
digitalWrite(relaisvv, LOW); // also Digital Mosfet gesperrt
delay(20); // 20 ms
digitalWrite(relay1, HIGH); //coaxrelay ON
delay(1000); // 20 ms 1 SEk. um es optisch zu sehen
digitalWrite(relay3, HIGH); //ext. PA -ON
delay(1000); // 20 ms 1 SEk. um es optisch zu sehen
digitalWrite(relay2, HIGH); // Amplif. ON
}
if (txgndstate == HIGH) { // go to RX
digitalWrite(relay2, LOW); // ext.PA off
delay(1000); // 20 ms 1 SEk. um es optisch zu sehen
digitalWrite(relay3, LOW); //int. PA OFF
// delay(20); // 20 ms 1 SEk. um es optisch zu sehen
digitalWrite(relay1, LOW); //coaxrelay OFF
delay(1000); // 20 ms coaxrelay Schaltzeit
digitalWrite(relaisvv, HIGH);
}
/*
alarminputstate = digitalRead (alarminput);
if (alarminputstate == HIGH) {
digitalWrite(relay3, HIGH); //RF-PA OFF
digitalWrite(relay2, HIGH); //Power PA OFF
digitalWrite(relay1, HIGH); //Coaxrelay OFF
digitalWrite(alarmled, LOW); //Alarmled ON
digitalWrite(relaisvv, LOW);
delay(5);
}
*/
}
*/code