Arduino schéma - arduino.sk

2xbutton-2xrelay help

Programovanie arduina
Príspevky: 3
Registrovaný: Str 17. Júl 2013 15:27:58

2xbutton-2xrelay help

Poslaťod vikieso » Str 17. Júl 2013 15:39:14

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: Vybrať všetko

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:
#define RELAY_PIN_4 7 // Reley-4 casovac PIN 7:


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(18000); // (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)
    }
}
 

Obrázok užívateľa
Príspevky: 311
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: 2xbutton-2xrelay help

Poslaťod tomXX » Str 17. Júl 2013 16:00:34

blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 3
Registrovaný: Str 17. Júl 2013 15:27:58

Re: 2xbutton-2xrelay help

Poslaťod vikieso » Str 17. Júl 2013 16:05:42

ak ta velmi poprosim upravis my ten program ako by to malo byt som tiez zaciatocnik a nejak sa to len ucim toto my trvalo asi tyzden napisat a odskusat

Obrázok užívateľa
Príspevky: 311
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: 2xbutton-2xrelay help

Poslaťod tomXX » Štv 18. Júl 2013 10:04:42

vikieso píše:ak ta velmi poprosim upravis my ten program ako by to malo byt som tiez zaciatocnik a nejak sa to len ucim toto my trvalo asi tyzden napisat a odskusat


Potom sa nič nenaučíš :) V tých linkoch máš príklady, tak si to pozri a uprav na svoje potreby.
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 3
Registrovaný: Str 17. Júl 2013 15:27:58

Re: 2xbutton-2xrelay help

Poslaťod vikieso » Štv 18. Júl 2013 14:55:25

tu je zdrojovi kod ktory funguje ako ma az na to ze tam neni to casovanie lebo netusim ako niesom programator ani nic podobne a nemam sajnu ako dalej uz dost co som sa dostal az sem tak ak sa da nak dopis do neho co treba uz su tu aj taky ze za 20 eury dakujem

Kód: Vybrať všetko
int buttonState = 0;
const int buttonPin1 = 9;  // Tlacitko casovani PIN 9
//          Button1     10K
//    +5 o---0__0---.--/\/\/---o GND
//                  |
// Pin 9 o-----------      :
const int buttonPin2 = 10;  // Tlacitko casovania PIN 10
//           Button2     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:
    }
    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:
    }
}

Príspevky: 3
Registrovaný: Uto 31. Dec 2013 19:35:37

Re: 2xbutton-2xrelay help

Poslaťod viktorf » Ned 05. Jan 2014 23:01:30

na tak primitívnu funkciu nepoužívaj zbytočne procesor.
vyznáš sa aspoň trochu do elektroniky? použi na to monostabilný klopný obvod, máš to omnoho jednoduchšie.
napríklad cmos 4098 + 2 odpory a 2 kondenzatory, na budenie rele 2x tranzistor, 2x odpor 2x dioda a mas vystarane, a ešte aj o dosť lacnejšie ako arduino.
http://www.st.com/web/en/resource/techn ... 000401.pdf

a k tvojej verzii s arduino: nesmies pouzivat delay, inak ti to nepôjde, počas delay totiž procesor nič nerobí, len čaká.

môžeš to urobiť tak, že ak je tlačidlo stlačené, uložíš do premennej hodnotu funkcie milis (interný časovač od spustenia procesora)
potom k tomu pripočítaš 18000 (milisekund = 18s)
dáš podmienku, ak je číslo v tvojej premennej menšie ako hodnota funkcie milis, vtedy bure relé zapnuté.
takýmto spôsobom môžeš ovládať toľko relé, kým ti stačia piny procesora :D

Späť na Software