Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je pát črc 20, 2018 12:01 am


Uprava programu pro ovladani rele

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.

Uprava programu pro ovladani rele

Příspěvekod jiri255 » čtv kvě 01, 2014 6:59 am

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
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 8:11 pm
Reputation: 0

Re: Uprava programu pro ovladani rele

Příspěvekod jiri255 » čtv kvě 01, 2014 7:35 pm

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;
 }
jiri255
 
Příspěvky: 11
Registrován: stř dub 30, 2014 8:11 pm
Reputation: 0


Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

cron
Reputation System ©'