Spúštanie a vypínanie programu jedným tlačítkom

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 11 Okt 2021, 08:41

Ahoj.
Som Arduino úplný začiatočník ale skúšam si napísať jednoduchý program.

Po pripojení napätia Arduino čaká na stlačenie tlačitka.
Po stlačení tlačítka zopne rele na 1 munútu
Potom čaká 30 sekún a tak dookola. Je to ako cyklovač, kým opäť nestlačím tlačítko.
Jedným stačením program spustím, druhým stlačením program ukončím.

Napísal som si program. Funguje to ale neviem ako urobiť to ukončenie stlačením tlačitka. Môžete mi prosím pomôcť doplniť môj program?

Ďakujem veľmi pekne

const int button_enter = 8;
byte sw_enter = 0;
void setup() {
//zaciatok progamu ktory prebehne iba raz (inicializacia)
//nastavenie pinu 8 ako tlacitko vstup
pinMode(button_enter, INPUT_PULLUP);
//nastavenie pinu 2 ako vystup
pinMode(2, OUTPUT);

//nastavenie +5V na vystupe
digitalWrite(2, HIGH);
}

void loop() {
if ((digitalRead (button_enter) == 0) || (sw_enter == 1)) //stlacenie tlacitka, na pin 8 GND
{
sw_enter = 1;

//program Arduina

//zaciatok programu ktory bezi dookola kym nestlacim opat tlacitko
// delay(cas); znamena ze program nerobi nic a caka urceny cas v ms
digitalWrite(2, LOW); //pin 2 prepne na 0V (GND)
delay(60000); //cas zapnutia pinu 2 na 1minutu (60000ms)
digitalWrite(2, HIGH); //pin 2 prepne na +5V

delay(30000); //caká 30sekund (30000ms)

// caka na stlacenie tlacitka
0

Používateľov profilový obrázok
StefanST
Pokročilý člen
Pokročilý člen
Príspevky: 778
Dátum registrácie: 20 Feb 2012, 22:25
Bydlisko: Nové Zámky

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa StefanST » 11 Okt 2021, 09:24

Rozdel si program v Loop() na dve časti:
1. testuj stlačenie tlačítka. Ak je tlačidlo stlačené, nastav príznak sw_enter na opačný (0->1 resp. 1->0)
Tým zabezpečíš, že jedným tlačidlom budeš zapínať, resp vypínať cyklovač.
2. testuj nastavenie sw_enter: Ak je =1, len vtedy prebehne 1 cyklus cyklovača.
A takto to pôjde stále dokola ...
0

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 11 Okt 2021, 09:30

Ďakujem.
Dúfam, že som to správne pochopil. Skúsim to prepísať alebo dufam že to nebude drzé ale môžeš mi prepísať ten môj program a ja urobím CTRL-C a CTRL-V :yawinkle: :yawinkle: :yawinkle: :yawinkle:
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa dan21 » 11 Okt 2021, 09:37

Jedna poznamka. Snaz sa nepouzivat delay(). Blokujes si ostatne casti programu, aj ked v tomto pripade je to OK. Ale ak ho budes rozsirovat, mozu nastat problemy.

Pozri si funckiu millis() trebars tu
https://arduinoposlovensky.sk/programov ... ay-millis/
0

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 11 Okt 2021, 09:44

Ďakujem za upozornenie. Finalny čas cyklovača sa bude pohybovať okolo 15 minút zapnuté relé a 10 sekúnd vypnuté. Preto som použil delay(). Prepáčte že som to nepovedal hneď. Krátke časy som použil na testovanie.
0

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2567
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa maskrtnik01 » 11 Okt 2021, 10:14

O to väčší dôvod vyhýbať sa delay. Ak by ste neskôr chceli, aby program počas čakania reagoval na tlačidlo, máte problém.

Správny postup je podľa millis sledovať, kedy ubehne určený čas (a medzitým sa môže robiť čo len chcete).
0

miso156
Pokročilý člen
Pokročilý člen
Príspevky: 648
Dátum registrácie: 06 Dec 2020, 11:46
Bydlisko: Banska Stiavnica
Vek: 38

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa miso156 » 11 Okt 2021, 12:14

Ak pouzijes delay() tak nemas ako ten cyklovac pocas behu (tych 15-tich minut) vypnut. Jedine ak by si obsluhoval tlacitko cez interrupt.
Dokonca aj po uplynuti delay-u je problem ten cyklovac vypnut. Musel by si ho nastavit iba na jeden 15min cyklus a manualne ho zakazdym spustat.
0
"No pain, no gain." (KC238)

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa Atlan » 11 Okt 2021, 12:38

Ono ide urobit aj kratky delay, a inkrementovat premenu..... Ale to u potom radsej fakt ten milis.
0

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 11 Okt 2021, 12:39

Ak by som veľmi pekne poprosil, môžete mi niekto prepísať ten program, aby fungoval správne tak ako som písal hore? Nájde sa niekto? Ja naozaj nerozumiem tomu. Aby som ho skopíroval a nahral iba? Vidím, že ste odborníci na toto tak mi to napíšte niekto.
Ďakujem
0

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2567
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa maskrtnik01 » 11 Okt 2021, 13:18

Kód: Vybrať všetko

#define BUTTON_PIN 0
#define RELAY_PIN 1
#define ON_TIME 1000
#define OFF_TIME 1000
#define STATUS_READY 0
#define STATUS_ON 1
#define STATUS_OFF 2

int status;
long nextEventTicks;
int lastButtonState;
void setup()
{
    pinMode(BUTTON_PIN,INPUT_PULLUP);
    pinMode(RELAY_PIN, OUTPUT);
    digitalWrite(RELAY_PIN,0);

    status = STATUS_READY;
    lastButtonState = digitalRead(BUTTON_PIN);
}

void loop()
{
    int buttonState = digitalRead(BUTTON_PIN);
    long ticks = millis();

    if(buttonState & !lastButtonState)
    {
        if(status == STATUS_READY)
        {
            status = STATUS_ON;
            digitalWrite(RELAY_PIN,1);
            nextEventTicks = ticks + ON_TIME;
        }
        else
        {
            status = STATUS_READY;
            digitalWrite(RELAY_PIN,0);
        }
    }
    lastButtonState = buttonState;
    
    if(status == STATUS_ON)
    {
        if(ticks > nextEventTicks)
        {
            status = STATUS_OFF;
            digitalWrite(RELAY_PIN,0);
            nextEventTicks = ticks + OFF_TIME;
        }
    }
    else if(status == STATUS_OFF)
    {
        if(ticks > nextEventTicks)
        {
            status = STATUS_ON;
            digitalWrite(RELAY_PIN,1);
            nextEventTicks = ticks + ON_TIME;
        }
    }
}
Nie je tam debouncing tlačidla. Ďalej nie je ošetrené pretečenie millis(), to nastáva po cca 49 dňoch prevádzky.
0

miso156
Pokročilý člen
Pokročilý člen
Príspevky: 648
Dátum registrácie: 06 Dec 2020, 11:46
Bydlisko: Banska Stiavnica
Vek: 38

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa miso156 » 11 Okt 2021, 13:23

Spravil som to cez jeden switch (stavovu masinu) aby to bolo pokope. Chyba tam vyriesenie zakmitov na tlacitku -celkovo jednoznacny spolahlivy stisk v tom digitalRead() if-e. Nemam arduino ani to vyvojove prostredie, pisal som to v .txt takze nerucim.

Edit: Prisiel som na to ze existuje online compiler, bola tam chybka v dvojitej deklaracii premennnej currentMillis, tak som to opravil.

Kód: Vybrať všetko

unsigned char status = 0;
unsigned long previousMillis = 0; 
unsigned long currentMillis;
unsigned long duration = 0;    
const int button_enter = 8;



void setup() {

	//zaciatok progamu ktory prebehne iba raz (inicializacia)
	//nastavenie pinu 8 ako tlacitko vstup
	pinMode(button_enter, INPUT_PULLUP);
	//nastavenie pinu 2 ako vystup
	pinMode(2, OUTPUT);

	//nastavenie +5V na vystupe
	digitalWrite(2, HIGH);
}



void loop() {


	if(digitalRead (button_enter) == 0) { 
		delay(500);  // pre zamedzenie opatovneho volania pocas jedneho stisku tl.
		if(status == 0) {
			status = 1;
		} else {
			status = 0;
			digitalWrite(2, HIGH);        //pin 2 prepne na +5V		
		}
	
	}


	switch(status) { 

		 ////////////Cyklovac vypnuty/////////	
		case 0:  			
			break;

		////////////Nastav casovac na 60000, uloz akt. cas, Nastav Pin2 Low/////////	
		case 1:  
			duration = 60000;	
			previousMillis = millis();

 
			digitalWrite(2, LOW);        //pin 2 prepne na 0V (GND)
			status = 2;		
			break;

		////////////Kontroluj casovac, po uplynuti  60sec nastav Pin2 High /////////	
		case 2:	

  			currentMillis = millis();

  
			if (currentMillis - previousMillis >= duration) {
    
    
				digitalWrite(2, HIGH);        //pin 2 prepne na +5V
				status = 3;
			}
			
			break;

		////////////Nastav casovac na 30000, uloz akt. cas/////////	
		case 3:

			duration = 30000;	
			previousMillis = millis();

 
			status = 4;		
			break;

		////////////Kontroluj casovac, po uplynuti 30sec skoc na case 1 /////////	
		case 4:
			currentMillis = millis();

  
			if (currentMillis - previousMillis >= duration) {
   
				status = 1; 
    
			}

			break;

		default:
			break;
	}	


}
0
Naposledy upravil/-a miso156 v 11 Okt 2021, 14:12, upravené celkom 6 krát.
"No pain, no gain." (KC238)

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 11 Okt 2021, 13:25

Ďakujem veľmi pekne.
Debouncing tlačidla riešim podľa obrázka:
arduino tlačítko schéma.png
Čo sa týka dlžky cyklovania tak bude cyklovať cca 5 x max. Niekde v štvrtom alebo piatom 15 minutovom cykle ho stopnem.
0

Používateľov profilový obrázok
StefanST
Pokročilý člen
Pokročilý člen
Príspevky: 778
Dátum registrácie: 20 Feb 2012, 22:25
Bydlisko: Nové Zámky

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa StefanST » 11 Okt 2021, 14:24

martinhudak napísal:
11 Okt 2021, 08:41
Som Arduino úplný začiatočník ale skúšam si napísať jednoduchý program. ...
martinhudak napísal:
11 Okt 2021, 12:39
Ak by som veľmi pekne poprosil, môžete mi niekto prepísať ten program, aby fungoval správne tak ako som písal hore? Nájde sa niekto? Ja naozaj nerozumiem tomu. Aby som ho skopíroval a nahral iba? ...
Ctrl+C a Ctrl+V hotového programu nie je najlepší spôsob, ako sa učiť programovať.
Ak sa s tým nepopasuješ sám (aj s radami a usmerneniami), nenaučíš sa to.

Dostal si sa k upečenej rybe, no ďalšiu si chytiť nevieš.
Predložené programy možno intuitívne pochopíš, ako fungujú, ale nevieš, prečo to bolo práve takto navrhnuté.

Záver: Ak sa chceš aj niečo naučiť, toto nie je cesta. Ale možno nebolo cieľom prejsť od statusu "úplný začiatočník" k statusu "začiatočník".
A bola tu šanca - na zaujímavom probléme, ktorý ťa naviac aj zaujíma, prejsť postupnosťou úprav a pochopiť aj osvojiť si postupy vedúce k fungujúcemu a dobrému programu.
0

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 11 Okt 2021, 14:42

Ano pravda. Ja o programovani v Arduine neviem nic. Skúsal som niečo počítať po nete a potom vytvoriť. Trvalo mi to týžden a aj tak to nejde tak ako by som chcel. Preto som oslovil tu. Nájde sa niekto a napíše mi to správne. Ja to nahrám, dokončím hardware tak ako potrebujem a koniec. Možno už nikdy nebudem potrebovať Arduino. Preto toto bola ľahká cesta. Myslel som že si takto možeme pomáhať. Teda urýchliť problém. Nemusím sa hneď začať učiť programovať ak potrebujem len pre jeden projekt program. Ale nechcel som nikoho uraziť alebo niečo podobné. Nejaké návrhy som tu dostal a snáď sa s toho vysomárim a bude to fungovať. Ďakujem všetkým za ochotu a prajem pekný deň
0

Používateľov profilový obrázok
StefanST
Pokročilý člen
Pokročilý člen
Príspevky: 778
Dátum registrácie: 20 Feb 2012, 22:25
Bydlisko: Nové Zámky

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa StefanST » 11 Okt 2021, 14:49

OK - cieľom bola ryba, nie udica..
To moje rečovanie by bolo aktuálne, ak by si sa chcel učiť programovať ...
Chválihodné je, že si si to skúsil a nielen žiadal, kto ti napíše hotový program.
Takto sa aj skôr dostaneš k rade a pomoci, ak by ti niečo nešlo tak, ako si si to predstavoval.
Prajem úspešné dokončenie projektu.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa peterple » 11 Okt 2021, 20:29

V prvom rade by som rád pokritizoval niekoľko predošlých postov.
1. Odstránie zákmitov kondenzátorom. Ak niekto nevie čo urobí skratovanie kondenzátora tak nech sa pozrie na video TO220 na youtube. V tomto prípade je síce kondenzátor podstatne slabší. Takže kontakt mikrospínača sa nezničí okamžite, ale až po nejakej dobe. Treba tam doplniť ešte jeden odpor aby to bolo OK.

2. maskrtnik01 prečo sem dávaš chybný kód, keď vieš že je chybný (nerieši pretečenie). To si si nemohol zobrať kód z linku čo dal dan21 kde je to naprogramované OK? Aký to má zmysel šíriť bludy začiatočníkom. Navyše zákerné jak sviňa. To žiadny začiatočník nepochopí čo je na tom zle.

3. V tomto prípade si myslím že millis je kanón na vrabca. Pre začiatočníka to musí byť absolútne nepochopitelné. Dokonca aj tie arduino príklady na tlačítka sa mi moc nepáčia.
Čo napr. toto? Je to tiež nepochopitelné?

Kód: Vybrať všetko

const int button_enter = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

//Pocka na stisnutie a uvolnenie tlacika
void waitPushRelease()
{
  while(digitalRead (button_enter) == 1);  //cakaj pokym je tlacitko pustene
  delay(50);  //ignoruj zakmity zatvorenim oci na 50ms
  while(digitalRead (button_enter) == 0);  //cakaj pokym je tlacitko stlacene
  delay(50);  //ignoruj zakmity zatvorenim oci na 50ms
}

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(button_enter, INPUT_PULLUP);
}

void loop() {
    waitPushRelease(); //pockaj az stisne a pusti
    digitalWrite(ledPin, HIGH); //zapni led
    waitPushRelease(); //pockaj az stisne a pusti
    digitalWrite(ledPin, LOW); //vypni led
}
1
Obrázok 1
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

martinhudak
Stály člen
Stály člen
Príspevky: 196
Dátum registrácie: 13 Máj 2011, 00:00
Vek: 47

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa martinhudak » 12 Okt 2021, 07:01

Prosím skúste nekritizovať, ale poradiť. Veľmi to oceníme aj my, ktorý tomu nerozumieme. A ešte jedna vec. Ak viem, čo má robiť program a niekto mi ho napíše, pozerám na ten kód a podstatne skôr pochopím čo znamená ako keď ho mám písať sám. Takže aj takto sa ľudia učia. Každý máme svoj spôsob.

peterple ak si videl že maskrtnik01 sem dal zlý kód, prečo si ten kód neopravil, nevložil sem s milým poučením a takto by sme sa to robiť správne naučili všetci vrátane maskrtnik01 a to podstatne príjemnejším spôsobom. Ja chápem že sú tu múdrejší ľudia ako ja ale ja naozaj oceňujem snahu maskrtnik01 mi pomôcť. Za to sa mu chcem poďakovať.

peterple ďakujem za kritiku tlačítka, pravdepodobne si narážal na môj obrázok ale ja som čerpal z učenia na webe https://zschlebnice.sk/kopr/arduino.php tak potom už neviem ako zistiť čo je správne. A na druhej strane si mohol chlapsky ku komentu pribaliť tvoju presnú schému aj s odporom a povedať "takto je to správne" Aby sme to mohli používať aj my obyčajný ľudia. Toto by bolo pekné.

Chcem ale veľmi pekne poďakovať miso156. Urobil presne to, čo som od tohto fóra očakával. Vložil sem svoj program upravený pre mňa. Dokonca je to pekne jednoducho popísané, takže som hneď pochopil tie povely. Upravil som si už čas a funguje to pekne. Má to nejaké mušky (citlivosť tlačítka a blikanie počas stlačenia) ale pre moje použitie je to úplne fantastické. Ďakujem ešte raz. Páči sa mi tento prístup k nám nováčikom.

Ďakujem Vám všetkým a prajem pekný deň (vyriešené :tonqe: )
0

miso156
Pokročilý člen
Pokročilý člen
Príspevky: 648
Dátum registrácie: 06 Dec 2020, 11:46
Bydlisko: Banska Stiavnica
Vek: 38

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa miso156 » 12 Okt 2021, 08:20

Ten debounce bol mysleny asi takto:
image.png
R1 je nizky aby si eliminoval ucinok prechodoveho odporu tlacitka.
R2 znizuje vybijaci prud kondenzatora, taktiez predlzi casovu konstantu na cca 2ms (22k x 100n) co je vhodne, kedze bezne tlacitka zakmitavaju okolo 20ms, menej kvalitne aj okolo 50ms.
0
"No pain, no gain." (KC238)

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2567
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa maskrtnik01 » 12 Okt 2021, 08:31

Chcel by som to trošku ukľudniť. Od peterple som dostal zaslúžene. Bohužial správne ošetrenie pretečenia už nie je úplne moja doména.

Či je to v tomto konkrétnom prípade pruser závisí od toho, ako dlho bude arduino zapnuté. 47 dní(aj niečo) sa nebude diať nič, potom príde problém. Po resete zase 47 dní kľud.

Tým kódom som ale aj tak chcel poukázať na inú vec. Delay nie je až taká milá pomoc ako by sa zdalo. Keď dáte delayom čakať 15 minút, 15 minút sa nič nemôže diať. Žiadne predčasné ukončenie, dokonca ani zobrazenie ostávajúceho času na displayi.

Preto lepší prístup je ako bol demonštrovaný na obidvoch ukážkach kódu - millis. Dĺžka jedného behu loop() sa zminimalizuje, a je možné kvazi-paralelne vykonávať viac vecí.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Spúštanie a vypínanie programu jedným tlačítkom

Príspevok od používateľa peterple » 12 Okt 2021, 20:40

maskrtnik01:
Aký máš s tým problém? Jediná vec je že musíš robiť rozdiel a porovnávať tú časovú differenciu. Tá sa vypočíta správne aj keď je aktuálny čas pretečený a odpamätaný je ešte pred pretečením. Treba si to predstaviť tak že sa nepohybuješ po číselnej osi po priamke ale vlastne v kruhu. To je jediná zmena. Už som tu (SvetElektro) niekoľkokrát na to upozorňoval a dával odkaz kde to vysvetľujem, ale je to marný, je to marný, je to marný.

martinhudak:
Mojim cieľom bolo poukázať na bludy ktoré sa tu šíria. Na tej stránke ZŠ a MŠ na to jaksi nemá kto a ako upozorniť. Ono riadiť sa a argumentovať podľa agentúry JPP (jedna pani povedala), nie je dvakrát moc múdre. Inak klobúk dole pred učiteľom na tej škole. Schémy pekne nakreslené v eagle, žiadne omaľovávanky arduinistov alebo paintbrush ako často tu v iných vláknach.
Tá kritika je pre teba a ďalších aby vedeli že tieto riešenia obsahujú čertovo kopýtko. Alebo si myslíš že je v poriadku že vznikla ďalšia stránka ktorá šíry hlúposti?

A že som neporadil? Si si istý? Skúšal si kód z bodu 3?
martinhudak napísal:
11 Okt 2021, 08:41
Jedným stačením program spustím, druhým stlačením program ukončím.
Nerobí to čo si požadoval? Keby si si ho prečítal a pochopil tak by si vedel že žiadne hw odstraňovanie zákmitov nepotrebuje. Tak načo by som kreslil nejaké schémy ktoré nie sú vôbec treba. Zbytočne niekam trepať externé súčiastky (až 3 aby to bolo OK).

Ešte taká malá podotázka. Viete prečo si na AVR možete dovoliť ten kondenzátor na digitálny vstup pripojiť? Vďaka čomu? Je to možné pripojiť na hocijaký MCU?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok