Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   865 / 866
(#) asch válasza Frankye hozzászólására (») Okt 19, 2025 /
 
Csinálhatsz két párhuzamos állapotgépet, és az egyik vezérelheti a másikat. A "külső" gombnyomásra 20 másodpercig van aktív állapotban. A belsőt a külső aktiválása indítja és állítja le és közben ismételgeti amit kell neki. A sokat emlegetett állapotgépes megoldással így néz ki kb:
  1. static uint32_t process1time;
  2. static uint32_t process1state = 0;
  3. static uint32_t process2time;
  4. static uint32_t process2state = 0;
  5. static bool process2enabled = false;
  6. void process1(uint32_t time)
  7. {
  8.         uint32_t dt=time-process1time; // Az átfordulást jól kezeli, az eltelt időnek kell 2^31 alatt maradni amikor hasznaljuk
  9.         switch(process1state)
  10.         {
  11.         case 0:
  12.                 if(isButtonPressed())
  13.                 {
  14.                         process1time=time;
  15.                         process1state=1;
  16.                         process2enabled = true;
  17.                 }
  18.                 break;
  19.         case 1:
  20.                 if(dt>=20000)
  21.                 {
  22.                         process2enabled = false;
  23.                         process1state=0;
  24.                 }
  25.                 break;
  26.         }      
  27. }
  28. void process2(uint32_t time)
  29. {
  30.         uint32_t dt=time-process2time;
  31.         if(!process2enabled)
  32.         {
  33.                 process2state = 0;
  34.                 outputLed(false);
  35.         }
  36.         switch(process2state)
  37.         {
  38.         case 0:
  39.                 if(process2enabled)
  40.                 {
  41.                         process2time=time;
  42.                         process2state=1;
  43.                         outputLed(true);
  44.                 }
  45.                 break;
  46.         case 1:
  47.                 if(dt>=200)
  48.                 {
  49.                         process2time=time;
  50.                         outputLed(false);
  51.                         process2state=2;
  52.                 }
  53.                 break;
  54.         case 2:
  55.                 if(dt>=200)
  56.                 {
  57.                         process2time=time;
  58.                         outputLed(true);
  59.                         process2state=1;
  60.                 }
  61.                 break;
  62.         }
  63. }
  64. void loop()
  65. {
  66.         uint32_t t=millis();
  67.         process1(t);
  68.         process2(t);   
  69. }


Ha hosszútávon pontos időzítést akarsz, akkor
  1. process2time=time;
helyett
  1. process2time+=200;
-at írhatsz. Ilyenkor észnél kell lenni, hogy el ne rontsuk, de ha nem rontjuk el, akkor hosszú távú átlagban is tűpontos lesz minden. Akár használhatsz mikroszekundomos órát is ezzel a technikával.
(#) asch válasza Régi motoros hozzászólására (») Okt 19, 2025 /
 
A hátránya, hogy szerintem sokkal érzékenyebb lesz mint egy Arduino UNO.
Nem hülyeség egyébként teljes Linuxot tenni Wifihez, mert amint drót nélkül kapcsolódunk azonnal kritikussá válik, hogy titkosítva legyen a kapcsolat, és ezt Linux alatt gyerekjáték megcsinálni - például SSH-val -, mikrovezérlő alapon meg egyáltalán nem egyszerű.
Szerintem a díszdobozos UNO árába beleférhet ez is, olyasmi árúnak képzelem, mint egy router. A háttértár és a RAM az általam elképzelt célokra jócskán túlméretezett, de az nem baj. Az STM-eket szeretem, jó doksijuk van és jók hozzá a toolok is.
(#) cua válasza asch hozzászólására (») Okt 19, 2025 /
 
(#) Frankye válasza asch hozzászólására (») Okt 19, 2025 /
 
Köszönöm. Nem teljesen világos (még) minden, de majd tanulmányozom.
(#) tki válasza Régi motoros hozzászólására (») Okt 19, 2025 /
 
Az a bajom vele, hogy szép, szép, csak tökéletlen megoldás, mivel mezítláb látványos, de ha csak egyetlen shield-et is rádugsz közvetlenül... Azokat majd átlátszó alkatrészekből építik?

Egyébként 8x12, megszámoltam. : -] Bár nem szeretem azokat a parányi kijelzőket, amik mostanában a kisebb projectekhez nem irritálóan drágák, de talán mégis célszerűbb lett volna, akár kihosszabbíthatóan. Sok ilyen létezik.
(#) pipi válasza tki hozzászólására (») Okt 19, 2025 /
 
Hátulról/alulról kell dugni
A hozzászólás módosítva: Okt 19, 2025
(#) tki válasza pipi hozzászólására (») Okt 19, 2025 /
 
Gondoltam rá, de alulról mintha nem lehetne csatlakoztatni őket, és azokon még inkább lehetnek kezelőszervek, kijelzők. Maradnak a szalagkábelek.
(#) Josi777 válasza pipi hozzászólására (») Okt 19, 2025 /
 
Alulról az UNO féle csatlakozó kiosztás nem érhető el, kizárólag felülről. Cserébe alul van rengeteg kivezetése a panelnek, amik meg 1,8 V-osak. Érdekes koncepció.
(#) pipi válasza Josi777 hozzászólására (») Okt 19, 2025 /
 
Tüske/hüvelysor ráforrasztható alulra utólag, nem?
(#) Josi777 válasza pipi hozzászólására (») Okt 19, 2025 / 1
 
Persze, megoldható (Kellő ügyességgel, de nem hinném, hogy szakszerű lenne, mivel egy eleve beforrasztott csatlakozósor forrasztási pontjaihoz kellene forrasztani az új csatlakozót. Vagy kiveszed az eredetit és alulra nézve forrasztasz be tüskesort.), de akkor valójában nem férsz hozzá a többi csatlakoztatási ponthoz, pont azokhoz, ami miatt érdemes beruházni egy ilyen lapkába.
(#) asch válasza Frankye hozzászólására (») Okt 22, 2025 / 1
 
A lényeg az, hogy ha két folyamatnak két külön állapotgépet csinálsz két külön függvénnyel megvalósítva, akkor egymástól függetlenül fognak párhuzamosan működni. Tehát a process2 állapotgépet önmagában nézheted. Az eredeti hozzászólásod nem olvastam elég figyelmesen, hogy lényeges, hogy a különböző időzítéseket hogyan valósítod meg. Csak a process2-t átírva tetszőleges idő mintát meg lehet valósítani, amit leírtál, az kb így nézhet ki. 5 állapotunk van, a kikapcsolt állapot, és minden várakozás 1-1 állapotnak felel meg.
  1. void process2(uint32_t time)
  2. {
  3.         uint32_t dt=time-process2time;
  4.         if(!process2enabled)
  5.         {
  6.                 // bármilyen állapotban is vagyunk, ha az engedélyezés megszűnik, akkor a 0 állapotra állunk, és kikapcsoljuk a LED-et
  7.                 process2state = 0;
  8.                 outputLed(false);
  9.         }
  10.         switch(process2state)
  11.         {
  12.         case 0: // 0 állapot: várakozás engedélyezésre, a LED ki van kapcsolva.
  13.                 if(process2enabled)
  14.                 {
  15.                         process2time=time;
  16.                         process2state=1;
  17.                         outputLed(true);
  18.                 }
  19.                 break;
  20.         case 1:
  21.                 if(dt>=200) // A LED bekapcsolva, várakozunk 200ms elteltére
  22.                 {
  23.                         process2time=time;
  24.                         outputLed(false);
  25.                         process2state=2;
  26.                 }
  27.                 break;
  28.         case 2:
  29.                 if(dt>=200) // LED kikapcsolva 200ms ideig
  30.                 {
  31.                         process2time=time;
  32.                         outputLed(true);
  33.                         process2state=3;
  34.                 }
  35.                 break;
  36.         case 3:
  37.                 if(dt>=200) // LED bekapcsolva 200ms ideig
  38.                 {
  39.                         process2time=time;
  40.                         outputLed(false);
  41.                         process2state=4;
  42.                 }
  43.                 break;
  44.         case 4:
  45.                 if(dt>=2000) // LED kikapcsolva 2000ms ideig
  46.                 {
  47.                         process2time=time;
  48.                         outputLed(true);
  49.                         process2state=1;  // ismétlés az 1 állapottól kezdve ameddig van engedélyező alapjel.
  50.                 }
  51.                 break;
  52.         }
  53. }

Nagyjából ez lenne a blokkoló megvalósítás pszeudókóddal, ami ugyanezt csinálja:
  1. kikapcsolva:
  2.   if(!process2enabled) goto kikapcsolva;
  3. be200_elso_enter:
  4.   outputLed(true);
  5.   t=millis();
  6. be200_elso_loop:
  7.   if(!processEnabled) {outputLed(false); goto kikapcsolva;}
  8.   if(millis()-t<200) goto be200_elso_loop;
  9. ki200_enter:
  10.   outputLed(false);
  11.   t=millis();
  12. ki200_loop:
  13.   if(!processEnabled) {outputLed(false); goto kikapcsolva;}
  14.   if(millis()-t<200) goto ki200_loop;
  15. be200_masodik_enter:
  16.   outputLed(true);
  17.   t=millis();
  18. be200_masodik_loop:
  19.   if(!processEnabled) {outputLed(false); goto kikapcsolva;}
  20.   if(millis()-t<200) goto be200_masodik_loop;
  21. ki2000_enter:
  22.   outputLed(false);
  23.   t=millis();
  24. ki2000_loop:
  25.   if(!processEnabled) {outputLed(false); goto kikapcsolva;}
  26.   if(millis()-t<2000) goto ki2000_loop;
  27.   goto be200_elso_enter;
(#) Frankye válasza asch hozzászólására (») Okt 22, 2025 /
 
Köszönöm, ez szimpatikus megoldás. Még tanulmányozom, de elsőre jónak tűnik. Köszönet a fáradozásért mindenkinek!
(#) gyula84 hozzászólása Okt 23, 2025 /
 

Uno q

Meg is vettem a uno q, majd mondom eljátszadozom vele, persze a program nem indul ami hozzá van az App Lab, csak az ide 2.x, szép egy start
(#) gyula84 válasza gyula84 hozzászólására (») Okt 23, 2025 /
 
Jött egy frissítés ami megoldotta a gondot!
(#) tki válasza gyula84 hozzászólására (») Okt 23, 2025 /
 
Majd mesélj, milyen példaprogramokat adtak hozzá...
(#) gyula84 válasza tki hozzászólására (») Okt 23, 2025 /
 
Nem igazán tetszik
(#) Eregyenlouperi válasza Frankye hozzászólására (») Okt 23, 2025 /
 
Lehet két hét után már nem aktuális , de azért volna egy tippem a gomb figyelés-20 másodperces kihagyására .
void gombfigyelés()
{
if(!gnyomi)
{
bool x=digitalread(gomb);
if(x) gnyomi=true , húszmásodperces() ; // kizárod magad a gombfigyelő eljárásból
}
}

void húszmásodperces ()
{
végevan=false;
.....tevékenység.....
if (végevan) gnyomi=false; // engedélyezed a gombfigyelést.
}
Nyílván ez csak egy ötlet ezt ki kell dolgozni és a részletekben megbújó ödögöt pedig kizavarni belőle. Villogtatás és egyebek:
A mikros() függvénnyel tudsz pontos időmarkereket létrehozni (a millis egy rakat sz.... azzal ne foglalkozz )
unsigned long ms = micros();
idoalap=ms/100000 ; // időalap változód minden tizedmásodpercben fog egyet lépni előre.
Ha változtatod az osztót akkor más időalapot kapsz. /1000 =1mS (és ez pontos is)
Erre alapozva annyi egymástól független időzítést villogtatást , programrészlet lefutást tudsz létrehozni amennyit csak akarsz (illetve amit a chip elbír). Ja és a delay is mehet a kukába.
Gombfigyelés: Sokszor láttam már azt a módszert amikor a belső felhúzó ellenállást bekapcsolják és ráakasztanak egy gombot a bemenetre amely gombnak a prellezése miatt írnak egy k@rvára bonyolult eljárást, mellyel kiküszöbölik a nyomigomb okozta problémát. Hát lehet így is de egy kerámia kondi meg két ellenállás is megoldja , főleg ha minden le van időzítve a programban. Ott a módszer fentebb . Ha tizedmásodpercenként egyszer nézel rá a gombra és a mellékelt fotón látható módon kötöd be akkor a prellezést és a kapcsolódó programozási hókuszpókuszt el is felejtheted végleg.
üdv
(#) tki válasza gyula84 hozzászólására (») Okt 23, 2025 /
 
Pedig csupa izgalom; face detector meg minden. : -) Köszi.
(#) Frankye válasza Eregyenlouperi hozzászólására (») Okt 24, 2025 /
 
Közben írtam egy használható verziót, de ebben is van, ami szimpatikus. A delay eleve kiesett, a millis szóba jöhet, mert nem kritikus az idő. Ezzel együtt köszönöm a fáradozásod!
(#) tki válasza Eregyenlouperi hozzászólására (») Okt 25, 2025 /
 
"a millis egy rakat sz.... azzal ne foglalkozz"

Igazából mi a probléma a millis()-sel? A wiring.c-ben található a forrásuk, és ugyanolyan számláláson alapszik a kettő, semmilyen lényegi különbség sincs köztük. Egyszerűsítve ilyenek:

  1. volatile unsigned long timer0_millis = 0;
  2. volatile unsigned long timer0_overflow_count = 0;
  3.  
  4. ISR(TIMER0_OVF_vect) {
  5.     timer0_millis++;
  6.     timer0_overflow_count += 256;
  7. }
  8.  
  9. unsigned long millis() {
  10.     unsigned long m;
  11.     m = timer0_millis;
  12.     return m;
  13. }
  14.  
  15. unsigned long micros() {
  16.     unsigned long m;
  17.     m = (timer0_overflow_count + (TCNT0));
  18.     return m * (64 / (F_CPU / 1000000UL));
  19. }
(#) benjami válasza Eregyenlouperi hozzászólására (») Okt 25, 2025 / 1
 
Ha szabályos időközönként foglalkozol a nyomógombokkal (te tizedmásodpercenkéntit írsz, én általában harmincadmásodpercenkénti lekérdezést szoktam használni, de ez részletkérdés), akkor szerintem teljesen felesleges a hardvert kondikkal és ellenállásokkal bonyolítani, nem okoz gondot a gombok prellezése. Én külön eseménykódot szoktam hozzárendelni a gomb lenyomásához, meg a gomb felengedéséhez, sőt nem sokkal bonyolultabb megoldani, hogy kezelve legyen a gomb ismétlése meg a rövid/hosszú gombnyomás utáni felengedés megkülönböztetése. Ezzel a PC billentyűzetéhez hasonló működést lehet megvalósítani.
(#) KoblogPerGyok válasza Frankye hozzászólására (») Okt 25, 2025 /
 
Szia!

Gondolom már minden megy, és akkor az jó, de miért nem használtál timer-eket?
Azok erre vannak kitalálva, bár a milis() is ere épül. De ha jól tudom az Arduino-ban is több timer van. Ha a timer 8 bites, akkor hamar lefut, azaz számlálók kellenek bele, nem túl bonyolult. A ComparA és társai is hasznosak lehetnek ekkor, de a sima overflow -val is megoldható, csak akkor a timer kezdeti értékét kell megadni.

A másik:
Tömbökbe ki leht szervezni a bekapcsolt és kikapcsolt időtartamokat, így a tömb indexeivel kell lépni csak.

Másik:
Ha a szünetek ideje számtani sorozat mentén nő, akkor egy sima változó, ami mindig x értékkel nő. Ebben az esetben tömb sem kell.
Valójában nem bonyolult annyira szerintem, mert egy olyan timer kell, amivel megoldod a 20s időt és egy másik, ami ezzel együtt indul, majd az szabályoza a ki/be kapcsolásokat. Ha a 20s lejár, akor ez a timer kinulláz, overflow flag 0, és leállít (illetve maga a 20s timer is leáll, alaphelyzetbe téve). Gombnyomásra logikai változó átáll, indulnak a timerek. Ezt a lábat simán lehet interruptra tenni is, így a fő ciklusban nem kell if a láb figyelésére.
Szóval pár volatile logikai és egyéb változó és a timer-ek megoldják, igen kevés processzor időt felhasználva, így a fő main-be lehetnek még egyéb kódok.

A timer-ek az órajellel vannak összekötve, számlálók valójában és bizonyos esetekben (overflow, comparA, stb) esetekben megszakítást kérnek, azaz addig, míg ez nem történik meg, a cpu futhat gond nélkül. Ezek a feladatok nem terhelik meg a cput annyira, hiszen más áramkörök dolgoznak a háttérben ekkor.
(bár ebben az esetben a sima serial olvasás írás lehet gondban lenne, mert ha jól emlékszem az is megszakításokkal operál, lehet ebből gond lehet, ezt nem tudom pontosan)

De:

Sima milis()-el is simán megoldható, interruptok nélkül is akár.
A lényeg, hogy a milis() a timer0-t használja. Ezért több nem lehet ha jól sejtem, de nem is kell feltétlenül.

De inkább kipróbálom, megpróbálom megírni.

Ha sikerül bemásolom ide.

REmélem menni fog!
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Okt 25, 2025 /
 
Ezt hoztam össze, ez sima millis()-el megy:

Bővebben: Link

A kód úgy megy, hogy a gomb megnyomása után 20 másodpercig villogtatja a piros LED-et, a zöld LED jelzi, hogy a 20 másodpercben vagyunk. Ha a 20 másodperc nem telt le, akkor a gombot hiába nyomjuk meg, nem veszi figyelembe.

A piros LED 1 másodpercig világít, utána 0.2s ig nem, majd megint 1 s de utána 0.4s-ig nem. A növekmény 200ms minden lépésben.

Könnyen átírható lenne akár tömbben tárolt időkre is szerintem.
A változók nevei azért ilyen hosszúak, mert így sokkal érthetőbbé válik szerintem, de 1-2 helyen hosszú lesz..

A szimuláció remélem elérhető, de a kódot ide is bemásolom:

  1. const int buttonPin = 2;  // nyomógomb
  2. int buttonState = 0;  //nyomógomb állapotát örző változó
  3. unsigned long husz_masodperc_start;
  4. unsigned long Piros_LED_bekapcsolasanak_pillanata;
  5. unsigned long Piros_LED_kikapcsolasanak_pillanata;
  6. unsigned long Piros_LED_bekapcsolt_allapot_ideje;
  7. unsigned long Piros_LED_kikapcsolt_allapot_ideje;
  8. unsigned long Piros_LED_kikapcsolt_allapot_novekmenye;
  9.  
  10. byte husz_masodperc_folyamatban;
  11. byte Piros_LED_starthoz = 0;
  12. byte Piros_LEDnek_kell_vilagitania = 1;
  13. int novekmeny_szamlalo=0;
  14.  
  15.  
  16. void setup() {
  17.   pinMode(LED_BUILTIN, OUTPUT);
  18.   pinMode(7, OUTPUT); // 20 sec-et jelző LED kimenetre.
  19.   pinMode(buttonPin, INPUT);
  20.  
  21.   husz_masodperc_start = 0;
  22.   husz_masodperc_folyamatban = 0;
  23.   Piros_LED_bekapcsolasanak_pillanata = 0;
  24.  
  25.   Piros_LED_bekapcsolt_allapot_ideje = 1000; // Ennyi ideig lesz bekapcsolva a LED
  26.   Piros_LED_kikapcsolt_allapot_ideje = 100;  // Ennyi ideig lesz kikapcsolva elsőként
  27.   Piros_LED_kikapcsolt_allapot_novekmenye = 200; // Ennyivel nő a kikapcsolt idő
  28.  
  29.   Piros_LED_starthoz = 1;
  30.   Piros_LEDnek_kell_vilagitania = 1;
  31. }
  32.  
  33. void loop() {
  34.   if (husz_masodperc_folyamatban == 0) {
  35.     buttonState = digitalRead(buttonPin);
  36.     if (buttonState == HIGH) {
  37.       husz_masodperc_folyamatban = 1;
  38.       husz_masodperc_start = millis();
  39.     }
  40.   }
  41.  
  42.   if (husz_masodperc_folyamatban == 1) {
  43.     // 20 másodperc
  44.     if (millis() - husz_masodperc_start < 20000) {
  45.       digitalWrite(4, HIGH); // Zöld LED világít
  46.  
  47.       // Piros LED villogtatása
  48.       if (Piros_LED_starthoz == 1) {
  49.         Piros_LED_bekapcsolasanak_pillanata = millis();
  50.         Piros_LED_starthoz = 0; // csak egyszer állítjuk be első futásnál.
  51.       }
  52.  
  53.       if (Piros_LEDnek_kell_vilagitania == 1) {
  54.         if (millis() - Piros_LED_bekapcsolasanak_pillanata < Piros_LED_bekapcsolt_allapot_ideje) {
  55.           digitalWrite(LED_BUILTIN, HIGH);
  56.         } else {
  57.           Piros_LEDnek_kell_vilagitania = 0; //hogy legközelebb az else ág fusson le, ahol kikapcsolva tartjuk
  58.           digitalWrite(LED_BUILTIN, LOW);
  59.           Piros_LED_kikapcsolasanak_pillanata = millis();
  60.           //Szünet növekmény számlálójának növelése:
  61.           novekmeny_szamlalo+=1;
  62.  
  63.         }
  64.       } else {
  65.         if (millis() - Piros_LED_kikapcsolasanak_pillanata < (novekmeny_szamlalo*Piros_LED_kikapcsolt_allapot_novekmenye+ Piros_LED_kikapcsolt_allapot_ideje)) {
  66.           //Ezzel a változóval valójában kikapcsolva tartjuk, mert a felső if -be nem fut bele
  67.           Piros_LEDnek_kell_vilagitania = 0;
  68.         } else {
  69.           //A kikapcsolási idő lejárta után, ezzel a változóval ismét az if ágba futunk bele, ahol bekapcsolva tartja
  70.           Piros_LEDnek_kell_vilagitania = 1;
  71.           //Kell a pontos időpont, hogy lehessen számolni vele, illetve fontos, hogy csak itt kapjon értéket
  72.           //mert máshol esetleg minden esetben kapna, így a feltétel mindig teljesülne.
  73.           Piros_LED_bekapcsolasanak_pillanata=millis();
  74.         }
  75.       }
  76.  
  77.     } else {
  78.       //Minden érték kinullázása és minden LED kikapcsolása.
  79.       digitalWrite(4, LOW);
  80.       digitalWrite(LED_BUILTIN, LOW);
  81.       husz_masodperc_folyamatban = 0;
  82.       Piros_LEDnek_kell_vilagitania = 0;
  83.       Piros_LED_starthoz = 1;
  84.        novekmeny_szamlalo=0;
  85.     }
  86.   }
  87. }


Régen írtam Arduino kódot, ráadásul Timer-ekkel szoktam megoldani, ezért lehet ezt még egyszerűsíteni esetleg, illetve nem tudom pontosan, hogy maradt-e benne felesleges váltizó vagy sem.
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Okt 25, 2025 /
 
És ez a rész már nem is kell bele:

  1. // Piros LED villogtatása
  2.       if (Piros_LED_starthoz == 1) {
  3.         Piros_LED_bekapcsolasanak_pillanata = millis();
  4.         Piros_LED_starthoz = 0; // csak egyszer állítjuk be első futásnál.
  5.       }


Mikor elkezdtem akkor kellett csak, ezt nem feltétlen kell már bele. A fejlesztés elején kellett, de a későbbi változók mint például a "Piros_LEDnek_kell_vilagitania" megoldja ezt a problémát.
A hozzászólás módosítva: Okt 25, 2025
(#) Frankye válasza KoblogPerGyok hozzászólására (») Vas, 5:27 /
 
Köszönöm szépen a fáradozásod!
(#) TavIR-AVR válasza TavIR-AVR hozzászólására (») Kedd, 15:26 /
 
Qualcomm-Arduino: amikor a nyílt hardver találkozik az ipari óriással

Bővebben: Link
(#) TavIR-AVR hozzászólása Kedd, 15:28 /
 

Arduino UNO Q és használata

Arduino UNO Q – Az új korszak kezdete: Linux és valós idejű vezérlés egy lapon.

Hátha egyszer még előkerül...

Bővebben: Link


Valakinek van tapasztalat vele? Az USB C-re rakott video nélül már el sem indul?
(#) cua válasza TavIR-AVR hozzászólására (») Sze, 4:23 /
 
En meg nem lattam megvasarolhato peldanyt, kiveve ezt az Aliexpress-en.
Bar nekem jok a tapasztalataim az ottani (Aliexpress) rendelesekkel, de ezt meg nem mertem bevallani
(#) sargarigo válasza cua hozzászólására (») Sze, 10:17 /
 
18 rugó: Bővebben: Link
(#) tki válasza sargarigo hozzászólására (») Sze, 10:46 /
 
"Available for shipping in 3-4 weeks."
Következő: »»   865 / 866
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem