Ovládání a ochrany zesilovače
Úvodní stránka › Fórum › Vaše projekty › Arduino › Ovládání a ochrany zesilovače
Označeno štítky: ochrany zesilovače
- Toto téma obsahuje celkem 1 odpověď. Do diskuze (1 diskutující) se naposledy zapojil uživatel HadrDisk a poslední změna proběhla před 10 roky a 2 měsíci. 
- 
		AutorPříspěvky
- 
		
			
				
3.9.2015 v 21:25 #4350HadrDisk ÚčastníkAhoj lidi :)) jelikož jsem zatím absolutní vemeno co se programování týče a několik moudřejších dobrotinců spolu s některými jednoduchými tutoriály mi umožnily vytvořit tento program na zapínání zesilovače spolu s ochranou reproduktorů :)) Tak bych se tu o to chtěl podělit a případně vylepšit podle zkušených ochotných huchů (i děvčat) :)) int soft = 7; 
 int tr = 8;
 int repro = 9;
 int buttonPin = 10;
 int DCpin = 11;
 int led = 13;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)
 boolean DCState = LOW;
 boolean cache = HIGH;void setup() { 
 pinMode(buttonPin, INPUT);//this time we will set the pin as INPUT
 pinMode(repro, OUTPUT);
 pinMode(soft, OUTPUT);
 pinMode(tr, OUTPUT);
 pinMode(DCpin, INPUT);
 pinMode(led, OUTPUT);} void loop() { 
 currentState = digitalRead(buttonPin);DCState = digitalRead(DCpin); 
 if (DCState == HIGH && lastState == LOW) {
 if (DCState == HIGH)
 digitalWrite(cache, HIGH);
 while (cache == HIGH) {
 digitalWrite(tr, LOW);
 digitalWrite(soft, LOW);
 digitalWrite(repro, LOW);
 digitalWrite(led, HIGH);
 delay(200);
 digitalWrite(led, LOW);
 delay(200);
 }
 }if (currentState == HIGH && lastState == LOW) { //if button has just been pressed 
 delay(10);//crude form of button debouncingif (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;
 }4.9.2015 v 12:58 #4387HadrDisk ÚčastníkTroš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áluboolean 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 :)) 
- 
		AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.
