Uprava programu pro ovladani rele
- 
				jiri255
 - Příspěvky: 11
 - Registrován: stř dub 30, 2014 9:11 pm
 - Reputace: 0
 
Uprava programu pro ovladani rele
Dobrý den,
jelikož jsem úplný začátečník, tak bych Vás tu chtěl požádat o radu ohledně programu pro ovládání relé.
Mám desku Arduino Mega 2560 a k ní modul se 4x relé. Mám připojené zatím jen jedno relé a ovládám
ho tlačítkem, když stisknu tlačítko relé se sepne, když ho pustím relé vypne viz program níže.
Nevíte někdo, jak tento program upravit a přidat do něj ještě druhé tlačítko připojené k button2Pin = 4
a druhé relé připojené k Rele2Pin = 5 s tím, že obě tlačítka budou fungovat, tak že když jedno nebo druhé
stisknu, tak se jedno nebo druhé relé sepne a zůstane seplé a když je opět stisknu, tak se relé rozepnou
a zůstnou rozeplá?
Děkuji za případnou pomoc Jirka
			
			
									
						
										
						jelikož jsem úplný začátečník, tak bych Vás tu chtěl požádat o radu ohledně programu pro ovládání relé.
Mám desku Arduino Mega 2560 a k ní modul se 4x relé. Mám připojené zatím jen jedno relé a ovládám
ho tlačítkem, když stisknu tlačítko relé se sepne, když ho pustím relé vypne viz program níže.
Nevíte někdo, jak tento program upravit a přidat do něj ještě druhé tlačítko připojené k button2Pin = 4
a druhé relé připojené k Rele2Pin = 5 s tím, že obě tlačítka budou fungovat, tak že když jedno nebo druhé
stisknu, tak se jedno nebo druhé relé sepne a zůstane seplé a když je opět stisknu, tak se relé rozepnou
a zůstnou rozeplá?
Děkuji za případnou pomoc Jirka
Kód: Vybrat vše
// relatka nastaveni
const int buttonPin   =  2;      // tlačítko1
const int relePin     =  3;      // rele
      int buttonState = 0;       //stav
 void setup() {
//relé jako výstup
  pinMode(relePin, OUTPUT);     
  //tlačítko jako vstup
  pinMode(buttonPin,INPUT);  
}
void loop(){
// načtení stavu
buttonState = digitalRead(buttonPin);
 // stisknutí
  if (buttonState == HIGH) {     
    // zapni relé    
   digitalWrite(relePin, LOW);
  } 
  else {
    // vypni relé
   digitalWrite(relePin, HIGH);
  }
}
- 
				jiri255
 - Příspěvky: 11
 - Registrován: stř dub 30, 2014 9:11 pm
 - Reputace: 0
 
Re: Uprava programu pro ovladani rele
Tak uz jsem to vyresil, ten program se musi cely predelat. Pokud byste nekdo resili stejny problem, prikladam vysledek je to jenom na jedno rele + se k tomu i rozsviti ledka, kdyz se rele sepne, a kdyz se rele rozepne ledka zhasne. Doplnit si tam vice rele uz neni problem...
			
			
									
						
										
						Kód: Vybrat vše
// ovladani rele tlacitkem 
 // Konstanty se nezmění . Jsou zde použity pro 
 // Nastavení čísla PIN : 
 const int buttonPin = 2;    // cislo pinu tlacitka 
 const int relePin = 3;      // cislo pinu rele 
 const int ledPin = 13;      // cislo pinu ledky 
 // Variables will change: 
 int ledState = HIGH;         // Aktuální stav výstupního pinu 
 int releState = LOW;         // Aktuální stav výstupního pinu 
 int buttonState;             // Aktuální čtení ze vstupního pinu 
 int lastButtonState = LOW;   // Předchozí čtení ze vstupního pinu 
 // Následující proměnné jsou dlouhé , protožečas , měřeno v milisekundách , 
 // Se rychle stanevětší číslo , než je možné uložit do int 
 long lastDebounceTime = 0;  // Poslední doba kdy výstupní pin byl přepnut 
 long debounceDelay = 50;    // cas konstanta zvysit 
 void setup() { 
   pinMode(buttonPin, INPUT); 
   pinMode(ledPin, OUTPUT); 
   pinMode(relePin, OUTPUT); 
   // Nastavit počáteční stav ledky a rele 
   digitalWrite(ledPin, ledState); 
   digitalWrite(relePin, releState); 
 } 
 void loop() { 
   // Čtení stavu spínače do lokální proměnné : 
   int reading = digitalRead(buttonPin); 
   // Zkontroluje, zda jste právě stiskli tlačítko  
   // zmena prepinace: 
   if (reading != lastButtonState) { 
     // reset casovace odskoku 
     lastDebounceTime = millis(); 
   } 
   
   if ((millis() - lastDebounceTime) > debounceDelay) { 
    //  Cas tam byl déle než vstupní zpoždění , 
    //  skutečný současný stav: 
     // Pokud došlo ke změněstavu tlačítka: 
     if (reading != buttonState) { 
       buttonState = reading; 
       // Pouze přepínat ledku a rele , pokud je nové zmáčknutí: 
       if (buttonState == HIGH) { 
         ledState = !ledState; 
         releState = !releState; 
       } 
     } 
   } 
   
   // nastaveni ledky a rele: 
   digitalWrite(ledPin, ledState); 
   digitalWrite(relePin, releState); 
   
   // ulozeni cteni pro pristi smycku: 
   lastButtonState = reading; 
 }
Kdo je online
Uživatelé prohlížející si toto fórum: Claudebot [Bot] a 0 hostů