Close

Odpověď na: Ovládání a ochrany zesilovače

Úvodní stránka Fórum Vaše projekty Arduino Ovládání a ochrany zesilovače Odpověď na: Ovládání a ochrany zesilovače

#4387
HadrDisk
Účastník

Trošku upravená verze 0.0002 :))

int soft = 7; //zapnutí trafa přes odpor
int tr = 8; //zapnutí trafa bez odporu
int repro = 9; //zpožděné připojení repro + ochrana před DC
int buttonPin = 10; //Tlačítko power
int led = 13; //Kontrolka (při DC na výstupu zesilovače bliká do resetu obvodu)
int DC1 = analogRead(A0); //ochrana L kanálu
int DC2 = analogRead(A1); //ochrana P kanálu

boolean currentState = LOW;//stroage for current button state
boolean lastState = LOW;//storage for last button state
boolean ledState = LOW;//storage for the current state of the LED (off/on)

void setup() {
pinMode(buttonPin, INPUT);//this time we will set the pin as INPUT
pinMode(repro, OUTPUT);
pinMode(soft, OUTPUT);
pinMode(tr, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);

}

void loop() {
int DC1 = analogRead(A0);
int DC2 = analogRead(A1);
Serial.println(DC2); //informace pro nastavení napětí
delay(100);

currentState = digitalRead(buttonPin);

while ((DC1 > 800 && lastState < 800)) {
digitalWrite(tr, LOW);
digitalWrite(soft, LOW);
digitalWrite(repro, LOW);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
}

while (DC2 > 800 && lastState < 800) {
digitalWrite(tr, LOW);
digitalWrite(soft, LOW);
digitalWrite(repro, LOW);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
}

if (currentState == HIGH && lastState == LOW) {
delay(10);//crude form of button debouncing
if (ledState == HIGH) {
digitalWrite(repro, LOW);
delay(200);
digitalWrite(soft, LOW);
digitalWrite(led, LOW);
digitalWrite(tr, LOW);
ledState = LOW;
} else {
digitalWrite(led, HIGH);
digitalWrite(soft, HIGH);
delay(1000);
digitalWrite(tr, HIGH);
delay(60);
digitalWrite(soft, LOW);
delay(3000);
digitalWrite(repro, HIGH);
ledState = HIGH;
}
}
lastState = currentState;
}

Ocením nějaké návrhy na zjednodušení a případný reset blikající LEDky dlouhým stiskem tlačítka :))

Předem díky za nápady :))