Stránka 1 z 1

2xbutton-2xrelay help

Napsal: stř črc 17, 2013 4:16 pm
od vikieso
zdravim mam problem z programom
mam 2 tlacitka a 2rele s casovanim 18 sekund

tlacitko-1 aktivuje rele-1 na 18 sekund
tlacitko-2 aktivuje rele-2 na 18 sekund

problem je ked aktivujem hoci ktore tlacitko to druhe je po dobu 18sekund nefunkcne a naopak ja by som potreboval aby boli na sebe nazavisle vie my niekdo upravit program lebo sa s tym uz tyzden hrajkam a bez uspechu
dakujem

Kód: Vybrat vše

int buttonState = 0; 
const int buttonPin1 = 9;  // Tlacitko casovania PIN 9
//          Button      10K
//    +5 o---0__0---.--/\/\/---o GND
//                  |
// Pin 9 o-----------      :
const int buttonPin2 = 10;  // Tlacitko casovania PIN 10
//           PhotoR     10K
//     +5 o---0__0---.--/\/\/---o GND
//                   |
// Pin 10 o-----------     :
#define RELAY_PIN_3 6 // Reley-3 casovac PIN 6:
  //               .---.
  //   6 o---------| / | Rele-3
  // -0V o---------|   |
  //               .---.
#define RELAY_PIN_4 7 // Reley-4 casovac PIN 7:
  //               .---.
  //   7 o---------| / | Rele-4
  // -0V o---------|   |
  //               .---.
void setup() 
{ 
  pinMode(buttonPin1, INPUT); // Tlacitko casovania VSTUP:
  pinMode(buttonPin2, INPUT); // Tlacitko casovania VSTUP:
  pinMode(RELAY_PIN_3, OUTPUT); // Reley-3 casovac VYSTUP:
  pinMode(RELAY_PIN_4, OUTPUT); // Reley-4 casovac VYSTUP:
  Serial.begin(9600);
}
   
void loop() 
{
    buttonState = digitalRead(buttonPin1);
    if (buttonState == LOW) {  // ked je LOW:    
    digitalWrite(RELAY_PIN_3, HIGH); // RELEY-3 on:   
    }
    else { // inokedy HIGHT:
    digitalWrite(RELAY_PIN_3, LOW); // RELEY-3 off:
    delay(3600); // (ms)
    }
    buttonState = digitalRead(buttonPin2);
    if (buttonState == LOW) {  // ked je LOW:      
    digitalWrite(RELAY_PIN_4, HIGH); // RELEY-4 on:   
    }
    else { // inokedy HIGHT:
    digitalWrite(RELAY_PIN_4, LOW); // RELEY-4 off:
    delay(18000); // (ms) 
    }
}

Re: 2xbutton-2xrelay help

Napsal: stř črc 17, 2013 4:22 pm
od mypower.cz
volani funkce delay(18000) neznamena "drz stav pinu po dobu 18 sekund a nemen ho", ale "zastav program na 18 sekund a nedelej nic".

Re: 2xbutton-2xrelay help

Napsal: stř črc 17, 2013 4:24 pm
od bednar
Nejsem kovaný arduinista ale problem bude v tom delay().
Na tuto dobu je pozastaveno provadeni programu.
Obecně: Na tyto akce je třeba si zřídit pomocnou proměnnou, která načítá ve smyčce čas běhu xxx = millis().
A až bude větší než 18000 tak něco provést a proměnnou vynulovat.
Někdo sem třeba hodí i kód na pomoc.

Re: 2xbutton-2xrelay help

Napsal: stř črc 17, 2013 4:26 pm
od vikieso
vedel by s vas niekdo upravit ten kod ako to ma byt bo ja som s toho trosku mimo dakujem

Re: 2xbutton-2xrelay help

Napsal: stř črc 17, 2013 5:53 pm
od mypower.cz
Vedel. Oproti zaslani prijatelne podpory na provoz zdejsiho serveru vam to napisu, otestuju a zdokumentuju klidne i pro vice tlacitek/rele, s nezavislym a libovolnym nastavenim casu, pinu pro tlacitka a pinu pro rele. Mate-li zajem, poslete soukromou zpravu.