Arduino počítadlo pulzů. ATmega

Arduino počítadlo pulzů. ATmega

24.06.2023

Implementoval signál PWM 25 kHz. Osciloskop nemám, ale chci zkontrolovat výsledek. Vyrábíme počítadlo pulzů, kontrolujeme práci.

Úkol

Na základně ATmega 328P implementujte počítadlo pulzů pro kontrolu PWM 25 kHz, přesnost měření na puls není potřeba, ale je potřeba znát pořadí.

Řešení

Logika řešení je jednoduchá, sledujeme impulsy, kterými na vteřinu inkrementujeme globální proměnnou. Akumulovaná hodnota bude frekvence příchozího signálu.

Pro čtení impulsů použijeme externí přerušení, jsou popsána na stránkách 87-96 dokumentaci od výrobce. V Atmega 328P existují dva vstupy, pomocí kterých můžeme sledovat externí přerušení INT0(PD2) A INT1(PD3), k vyřešení problému používáme INT0.

Nastavení externích přerušení

Prvním krokem je konfigurace portu D jako vstup a aby nedošlo k rušení, připojím pull-up rezistor.

Chcete-li určit, které události spustí obsluhu přerušení, musíte nakonfigurovat registr ERICA. bitů ISC00 A ISC01 zodpovědný za INT0, A ISC10 A ISC11 za INT1. Nastavení sledovaných událostí je shodné s rozdílem v bitech:

00 - Nízká úroveň signálu;
01 — Jakákoli změna logického signálu;
10 — Sestupná hrana signálu;
11 — Náběžná hrana signálu.

Registr se používá k přímému povolení vstupů přerušení. EIMSK, bitů INT0 A INT1 jsou zodpovědní za stejnojmenné výstupy. Kód napíšeme podle výše uvedeného

Void int0_initial(void) ( DDRD = 0x00; // Port D jako vstup PORTD = (1<< 2); // Включение подтягивающего регистра EICRA = (1 << ISC00) | (1 << ISC01); // Восходящий фронт сигнала EIMSK = (1 << INT0); // Включение входа прерывания sei(); // Разрешаем прерывания }

Obsluha externích přerušení

Přerušení nastavena, nyní je musíme zpracovat. K tomu existuje obsluha přerušení. ISR(), který potřebuje specifikovat typ přerušení, v mém případě INT0_vect. Ve funkci budeme inkrementovat proměnnou Tic_Count:

ISR(INT0_vect) (Tic_Count ++; )

Výsledek Výstup

Pro usnadnění výstupu výsledku, aby nedošlo ke šroubování displeje, jsem použil nečistý ATmega 328P, A Arduino UNO A Arduino NANO, na jehož palubě je stejný MK.

Jak jsem psal výše, přesnost měření není až tak důležitá, proto nebudu nastavovat časovače, ale jednoduše v hlavní smyčce jednou za sekundu zobrazím akumulovanou hodnotu proměnné Tic_Count a resetujte jej. Po dobu těchto akcí přestávám zpracovávat přerušení.

Níže je uveden úplný kód pro řešení problému s komentáři:

#define F_CPU 1600000UL #zahrnout #zahrnout volatile unsigned int Tic_Count = 0; // Externí obsluha přerušení INT0 ISR(INT0_vect) ( Tic_Count ++; ) void setup() ( int0_initial(); Serial.begin(9600); ) void loop() ( cli(); // Zakázání přerušení Serial. println( Tic_Count); Tic_Count = 0; sei(); // Povolení zpoždění přerušení (1000); ) void int0_initial(void) ( DDRD = 0x00; // Port D jako vstup PORTD = (1<< 2); // Включение подтягивающего регистра EICRA = (1 << ISC00) | (1 << ISC01); // Восходящий фронт сигнала EIMSK = (1 << INT0); // Включение входа прерывания sei(); // Разрешаем прерывания }

Nyní zbývá připojit signál PWM na pin PD2 a otevřít monitor sériového portu. Můžete také generovat a kontrolovat signál na jednom MK.

Zobrazené hodnoty se přibližně rovnají dříve vypočtené frekvenci, vzhledem k implementaci se očekávají malé rozdíly. Pro přesné měření je asi správnější počítat čas mezi impulsy a z toho vypočítat frekvenci.

Tento článek obsahuje všechna data o elektroměru na bázi Arduina, včetně schémat, firmwaru, komentářů k revizi aktuální verze firmwaru a designu.

Takhle to nakonec vypadá.

Zpočátku jsem všechny informace rozdělil na velkou hromadu malých článků – což velmi znepříjemnilo jejich hledání a vůbec opakování tohoto zařízení. Tento článek tuto situaci opravuje.

Část 1. Nápad, design a myšlení nahlas.

Před časem jsem nainstaloval dvouzónový elektroměr, abych využil výhodnější noční sazby (50 % z 2300 na 0800). Ukázalo se, že v noci spotřebujeme 45 % elektřiny. Ale odpovědí je, jak ke spotřebě dochází v kontextu míst spotřeby. Toto zařízení samozřejmě ne.

Proto byla potřeba podrobnější prezentace údajů o spotřebě. Původně bylo rozhodnuto vytvořit zařízení zobrazující následující údaje:

  1. Aktuální výkon zátěže
  2. Spotřeba od začátku dne
  3. Spotřeba od začátku měsíce
  4. Procento noční spotřeby v %

Zařízení musí také přenášet na konfigurovatelnou internetovou adresu údaje o spotřebě za posledních 24 hodin ve formě 24 odečtů. Interval přenosu — nastavte v minutách 1…120.

Parametry nastavené v menu:

  1. Hodina v RTC
  2. Minuta v RTC
  3. Den v RTC
  4. Měsíc v RTC
  5. Rok v RTC
  6. Interval počítání 1…120
  7. síťová adresa označující poziční znaky: „a-z0-9_-/:.“ Editovaný znak musí být zvýrazněn, aby bylo jasné, co se upravuje.

Počáteční verze zařízení bude vytvořena na základě následující sady modulů:

  1. (upřesnění ohledně připojení indikátoru k mega 2560)

Zařízení je zajímavé pro objasnění, kolik spotřebuje dílna, mediální zařízení, kuchyňské náčiní. V důsledku toho potřebujete získat data ve formě grafů, na internetu nebo na místním síťovém serveru ()

Počáteční schéma zapojení měřicího uzlu.

Schéma na měření výkonu a napětí jsem si vypůjčil. Průměrný výkon se bere v úvahu a nejen mnoho dalších parametrů, jako je frekvence, účiník. Nejprve je potřeba sestavit takový malý stojan na měření.

Vezmu prkénko, hledám vhodný transformátor na měření napětí (beru z ATX služebny) a jdu do toho.

UPD. Měřicí jednotka

Část 2.1 Poznámky k úžasným funkcím ENC28J60

Úžasná věc. Dnes jsem začal kopat modul pro práci s ezernetem, pro projekt "pult". Kdo by pochyboval, byla to legrace a vše se nakonec povedlo.

Spojením. Podíváme se, kde najít rozhraní SPI s Arduino "Mega", dobře, nebo s vaším. Spojujeme se. CS výstup (výběr čipu) zavěsíme kam chceme, samostatně se pak nastavuje v inicializaci knihovny. "Zavěsil" jsem to na 42. pin, možná máš nějaký jiný. Zbývající MOSI / MISO / SS / OV / 3,3 V jsou připojeny k odpovídajícím pinům Arduino.

Ukázalo se, že za účelem snížení využití paměti se vývojář „báječné“ knihovny EtherCard rozhodl a poslal do paměti programu nějaké řetězce pro požadavek GET. To znamená, že si představte, že se programátor na volné noze najednou rozhodl udělat ze sebe pult. Aby bylo vše chytré, rozhodl se upravit řádek URL, kam se tam posílají data. A dnes dokonce udělal toto:

A tak připojí knihovnu a myslí si, že nyní snadno zadá požadavek na externí server. Ne. Koneckonců nastavil server jako řetězec. Řetězec bohužel není paměť programu. Harvardská architektura. Všechno je rozdělené.

Nic, rychle jsem vlezl do knihovny, našel místo, kde byla žádost vyplněna, zkomolil ji, odnesl vše podle mého názoru „navíc“. Nakonec vše funguje skvěle.

Přikládám knihovnu a příklad práce se serverem, který funguje pro řetězce. a to nejen pro neměnné hodnoty v programu. Spolu s příkladem -

V průběhu projektu zbývá pouze vyřešit problém s měřicí částí, vše ostatní je již vyřešeno. Nejobtížnější věcí v programu byla úprava řetězce URL.

Funkce připojení je pouze DHCP, nebudu dělat statické ip a výběrové úlohy, vše funguje zcela správně a není třeba přidávat funkce, které nepotřebuji.

Část 3. Počáteční ladění softwaru čítače

Dnes jsem si trochu pohrál s laděním softwaru čítače. Faktem je, že jsem omylem neinstaloval snižovací rezistor, do snímače CT proniklo příliš velké napětí a v důsledku toho na vstup proniklo příliš mnoho šumu. Opraveno, připájeno 150 ohmů paralelně se snímačem ST, obecně vyšlo asi 100 ohmů.

Musel jsem mírně korigovat koeficienty v programu.Upravil jsem ... podle čínského počítadla. Pak na voltmetru. Dostal jsem to co nejblíže.

Ve výsledku měření spotřeby EH pro vyvaření konvice ukázalo totéž, co na čínském wattmetru. Už je to dobré, ale budu se muset nějak podívat na hlavní pult.

Písmeno h po kW se na displej nevešlo, ale je třeba chápat, že tam je. Číslo ukazuje spotřebu od začátku aktuální hodiny. Na konci hodiny je odeslána na server a vynulována. Pak to pravděpodobně jednou denně resetuji.

Counter software, ve své současné podobě -

Část 4. Zhotovení první části těla

Dnes jsem vyrobil pouzdro, materiál je stejný jako minule - kaprolon 11 mm. Upevnění je pravda na imbus šrouby M4, minule byly všude M3. Je to pro tělo příliš slabé.

Pro měřítko vložte do myši „vzduch“ dovnitř.

Zbývá vyrobit přední panel, opravit moduly, udělat frézování pro USB a napájení 12V. V případě tohoto zařízení bude pravděpodobně stačit 0,7A, čili lze použít něco malého.

Část 5 Výroba předního panelu

Část 9. Aktualizovaný software, na základě výsledků provozu zařízení

Při provozu cca jeden měsíc jsem došel k závěru, že je potřeba nejprve v měsíci připočítat přenos aktuálního spotřebovaného výkonu. Kromě toho jsem přesunul sběrný webový server do své podsítě a přestal jsem přenášet data ven. Protože to někteří nestihli. Zvýšila se tak spolehlivost sběru dat No, vlastně tady je nejnovější firmware - .

Aktualizováno 23.09.2015. Dnes jsem napsal rozhraní pro prohlížení monitorovacích dat. Zároveň jsem optimalizoval firmware, našel v něm chyby. Zvedl jsem interní DNS server, na "" je to otázka minut.

Právě se zobrazilo posledních 48 hodin (ztratil jsem statistiku, takže je na grafu méně) ve formě vyhlazeného grafu. Splash je začátek pračky, podle U - cena v hřivnách za aktuální hodinu, samozřejmě s přihlédnutím k noční sazbě. Podle X – datum/čas.

Nyní se můžeme podívat na to, co se děje. Malá nuance - vše jsem umístil na domácí síť, pro větší stabilitu.

Už jsem psal dříve, že jsem zkoušel jeden standardní software pro zobrazení spotřeby elektrikářů (moncms). Nerozumím paradigmatu a přístupu. Tam každé tři sekundy posílá data na server a něco ukazuje. Udělal jsem to jinak - zařízení shromažďuje data 1 hodinu, pak je odesílá za posledních 24 hodin. Webový server neběží, je to NAS s nízkou spotřebou.

UPD. Ukázalo se, že to není internet, který mám, toto zařízení někdy nepřenáší data. Není jasné, co s tím souvisí, a je těžké to zachytit, takže jsem šel jinou cestou - výpočtem meziodečtů na základě aktuální spotřeby. Za den někde 1-2 krát dojde k selhání. Toto schéma vám umožňuje odmítnout ukládat hodinová data ve svém odvětví, což také z nějakého důvodu nefunguje zcela správně.

UPD. Byl dokončen nějaký software pro web zobrazující data. Nyní je napětí na hodinu, hodinové a denní výdaje.

Přemýšlím o hostování softwaru na githubu. Možná. tak to bude.

Ne, tento článek není o jiném způsobu, jak toto nešťastné zařízení oklamat. Zde je návod, jak používat Arduino a LabView k přeměně vašeho elektroměru na monitor výkonu nebo dokonce ampérmetr!


Úplně první elektroměr byl indukční. Princip jeho fungování je až směšně jednoduchý – ve skutečnosti jde o elektromotor, jehož rotorem je hliníkový disk, který otáčí číselníkem. Čím větší proud odebírá, tím rychleji se disk otáčí. Zařízení je čistě analogové.

Dnes však indukční měřiče ztrácejí půdu pod nohama a ustupují svým levnějším elektronickým protějškům. A právě jeden z nich se stane experimentálním:

Princip fungování se příliš nezměnil - v tomto případě je disk nahrazen elektronikou, která generuje impulsy v souladu s množstvím spotřebované elektřiny. U většiny zařízení jsou tyto impulzy zpravidla indikovány LED indikátorem. Čím rychleji tedy tato kontrolka bliká, tím vzácnější kW je spáleno.
Kromě toho je na předním panelu jakéhokoli zařízení poměr počítadla A- počet pulsů na 1 kWh. Jak je vidět z fotografie, experimentální A = 12800. Z těchto informací lze vyvodit následující závěry:

S každým impulsem měřič zaznamená spotřebu rovnající se 1/12800 1 kWh. Pokud zapnete zátěž elektroměru a začnete jednoduše počítat pulsy, pak je snadné získat množství elektřiny, kterou spotřebuje (kWh), vydělením počtu pulsů převodovým poměrem.

Vzhledem k tomu, že indikátor mění rychlost svého blikání, je možné odvodit vztah mezi výkonem (kW) a dobou pulzu jednoho metru, což umožní získat údaje o výkonu / proudu.
Článek nebudeme zatěžovat výpočty, ale pokud to bude nutné, tak

Zde jsou

Převodový poměr měřiče je opravdu skvělá věc, protože jeho znalost můžete vyjádřit výkon i proud:
Udělejme poměr z našeho převodového poměru (A=12800 imp/kW*h) a neznámého převodového poměru, který bude při zatížení X a během jednoho jediného pulzu (kontrolka bliká):

Zde X je neznámý výkon a t je čas jednoho pulzu. Odtud vyjadřujeme neznámou sílu a zde je:

Proud se vypočítá pomocí následujícího podílu převodových poměrů a známých a neznámých proudů při zatížení X.:


Což obecně vede ke stejnému vzorci, ale pro proud (proud se měří v ampérech a indexy znamenají zatížení, při kterém bude tento proud):

Zde je vidět úskalí – je potřeba znát proud při ideální zátěži 1 kW. Pokud je potřeba dobrá přesnost, je lepší ji změřit sami, a pokud ne, můžete ji přibližně vypočítat pomocí vzorce (napětí a výkon jsou známy), ale bude to drsnější, protože se nebere v úvahu účiník účet.


Vše tedy spočívá na měření doby jednoho impulsu (blikání indikátoru). Ve svém výzkumu jsem vycházel z tohoto vynikajícího projektu. Jistý Ital vyrobil rozhraní pro sledování výkonu v prostředí Labview a přišel s obvodem pro měření pulsů. V jeho projektu byla ale obrovská chyba - byl vhodný pouze pro měřiče s převodovým poměrem 1000 imp / kWh.

Horní graf je průměrný výkon za 5 minut, spodní graf je v reálném čase. Rozhraní je poměrně flexibilní a lze jej snadno upravit tak, aby vyhovovalo vašim potřebám. Pokud jste se s prostředím LabView ještě nezabývali, doporučuji se seznámit.

Aby vše fungovalo, ukázalo se, že stačí vložit do algoritmu programu jeden jediný blok podle výše uvedeného vzorce.

Vypadá to takto


Zdálo by se to jednoduché, ale předtím na to musíte ještě myslet!

Pokud se tedy přesto rozhodnete implementovat monitorování napájení, máte dvě možnosti:

1. Váš žeton je uzavřen a zapečetěn podle vašich nejlepších schopností. To znamená, že pulsy lze číst pouze pomocí fotorezistoru, který reaguje na blikání žárovky. Musí být připevněn modrou elektrickou páskou naproti LED indikátoru na předním panelu měřiče.
Schéma bude vypadat takto:

Schéma pro bezkontaktní pulzní snímání


Program jednoduše porovná hodnotu odporu na fotorezistoru a potenciometru. Ten vám navíc umožňuje nastavit citlivost takového senzoru, abyste se vyhnuli falešným poplachům a přizpůsobili se jasu indikátoru.

2. Máte přístup k pulznímu výstupu měřiče. Mnoho modelů má pulzní výstup, který kopíruje mrkání miláčka. To se provádí proto, aby bylo možné připojit zařízení k automatizovanému účetnímu systému. Je to tranzistor, který se otevře, když svítí indikátor, a zavře, když zhasne. Připojení přímo k němu není obtížné - vyžaduje pouze jeden pull-up rezistor. Než to však uděláte, ujistěte se, že se jedná o pulzní výstup a ne o něco jiného! (v pase je vždy schéma)

Schéma připojení k telemetrickému výstupu


V mém případě je přístup plný, takže jsem se příliš neobtěžoval. Nainstalujte LabView a začněte měřit! Všechny grafy představují výkon (W) v reálném čase.
Jako první se rozdávala trpělivá konvička. Víčko říká, že má výkon 2,2 kW, ale soudě podle harmonogramu pravidelně spotřebuje pouze 1700 wattů. Všimněte si, že spotřeba je v průběhu času víceméně konstantní. To znamená, že topné těleso (nejspíše nichrom) mění svůj odpor během celého procesu varu velmi málo.

Zcela jiná věc je lepicí pistole - deklarovaný výkon je 20 W. Chová se v souladu s fyzikálními zákony - při zahřátí se zvyšuje odpor topidla a podle toho klesá proud. Zkontroloval jsem to multimetrem a je to tam.

Starý rozhlasový přijímač "Jaro". Zde šel graf na začátku nahoru díky tomu, že jsem spustil měření během impulsu a tím pádem to ovlivnilo data. Snímky v grafu ukazují, jak jsem otočil knoflíkem hlasitosti. Čím hlasitěji - tím víc rádio žere.

Perforátor s deklarovaným výkonem 700 wattů. Stiskl jsem tlačítko až na doraz, chvíli počkal a nechal to být, ale ne plynule. V grafu je přehledně znázorněn náběhový proud při startování motoru. Proto bliká světlo, když dobrý soused začne bušit do jeho milované zdi.

A teď to nejzajímavější. Udělal jsem malý experiment se svým starým notebookem, jehož výsledek je znázorněn na obrázku:

Oranžová tečka označuje dobu, kdy jsem spouštěl několik „těžkých“ programů najednou. Jak je vidět, grafy zatížení CPU a zvýšená spotřeba mají něco do sebe. Nedávno bylo

Za úkol navíc

Kruhový diagram

Schéma na prkénku

Poznámka

    V tomto experimentu poprvé používáme IC, v tomto případě výstupní posuvný registr 74HC595. Mikroobvody jsou užitečné v tom, že vám umožňují vyřešit konkrétní problém, aniž byste pokaždé museli sestavovat standardní obvod.

    Výstupní posuvný registr nám dává možnost „uložit“ digitální výstupy použitím pouze 3 místo 8. Kaskáda registrů by umožnila 16 a tak dále. signály přes stejné tři piny.

    Před použitím mikroobvodu je třeba pečlivě prostudovat schéma jeho připojení v datovém listu. Abychom pochopili, kde počítat nohy mikroobvodu, mají na jedné straně půlkruhový zářez. Pokud umístíme náš 74HC595 se zářezem doleva, pak bude mít spodní řada nohy 1-8 a horní řada 16-9.

    Ve schematickém schématu našeho experimentu jsou nohy uspořádány v jiném pořadí, aby nedošlo k záměně ve spojích. Přiřazení pinů podle datového listu je podepsáno uvnitř obrázku mikroobvodu, čísla nohou jsou venku.

    Připomeňme, že na obrázku sedmisegmentového indikátoru jsou podepsána čísla jeho nohou a jejich korespondence se segmenty.

Skica

Abychom mohli přenést část dat, která budou odeslána přes posuvný registr dále, musíme použít LOW na západkový kolík (ST cp vstup mikroobvodu), poté přenést data a poté odeslat HIGH na západkový kolík. , po kterém je vysílána kombinace vysoké a nízké úrovně signálu.

K přenosu dat jsme použili funkci shiftOut(dataPin, clockPin, bitOrder, value). Funkce nic nevrací a jako parametry je potřeba ji sdělit

  • Arduino pin, který je připojen ke vstupu DS mikroobvodu (datový kolík),

3

Nejen, že to můžete udělat bez obsluhy přerušení, můžete to udělat s malým nebo žádným softwarem a vypořádat se s rychlejšími pulzy, které jsou možné pomocí softwarového dotazování nebo počítání přerušení.

Atmel AVR, že většina Arduin je založena na hardwaru čítače/časovače, který bude počítat puls na vstupním kolíku přímo. Jediné, co musíte udělat, je nastavit hardware čítače a přečíst registr čítače. U 16bitových čítačů na 8bitovém zařízení existuje mírná komplikace, kterou lze ale snadno překonat. Arduino nastavuje časovače pro PWM operace ve výchozím nastavení, ale to lze přepsat, jak je popsáno (podrobnosti viz uživatelská příručka AVR) - musíte použít časovač/počítadlo v režimu CTC.

ARM založený na Arduninos a téměř jakýkoli jiný mikrokontrolér bude mít podobný hardware; některé jsou flexibilnější, takže kolíky lze použít k počítání vybavení.

Na AVR máte 8 a 16 bitové čítače, pokud potřebujete velké počty, možná budete muset zvládnout přerušení přetečení. Pokud budete počítadlo pravidelně kontrolovat, zvládnete i to bez přerušení a budete moci volat mnohem pomaleji a možná aperiodicky, než je frekvence vstupních pulzů, pouhým dotazováním na příznak přetečení před dalším přetečením.

Ve vašem případě pravděpodobně potřebujete odečíst počet pulzů v pravidelné periodě, která je kratší než doba, po kterou počítadlo přeteče při maximální očekávané frekvenci pulzů. Pokud byste tedy například používali 8bitové počítadlo a maximální tepová frekvence byla 1 kHz, museli byste dotazovat každých 256/1000 sekund nebo méně, ale nejvyšší přesnosti dosáhnete, když tuto periodu nastavíte na co nejdelší . Takže byste mohli mít například něco jako následující (toto není skutečný kód, jen úryvek):

For(;;) ( delayMS(250) ; frekvence = 4 * readCounter() ; )

Alternativa, která získá lineárnější odezvu, ale nedeterministický počet, bude zjišťovat přetečení a měřit čas potřebný k počítání pevného počtu impulzů, a proto definuje vaše měření od času pro pevný počet, nikoli po počítat ve stanoveném čase.

For(;;) ( int start = getMillisec() ; while(!counterOVF()) ( // Nedělat nic (nebo něco užitečného, ​​ale rychlého) ) int t = getMillisec() - start ; frekvence = 256 * t/1000 ; )

0

Děkuji mnohokrát za vaši otázku. Pokud tomu dobře rozumím, váš první nápad je vypnout pulsy přes hardware a druhý je po celou dobu, kdy je CPU zaneprázdněn. Problém je v tom, že můj mikrokontrolér je plně nabitý (takže jednoduché ISR zvyšující proměnnou čítače nebude fungovat) a nemůže být dotazován, protože musí dělat jiné úkoly.Také už nemám hardwarové čítače. Existují další alternativy? Slyšel jsem, že je to možné pomocí analogových portů (spoléhá se na podobnost s PWM). Děkuji mnohokrát - manattatta 28. srpna 14 2014-08-28 08:16:36

0

V obou případech počítá hardwarové počítadlo, ve druhém příkladu můj průzkum kontroluje příznak přetečení, ale to jen pro demonstraci principu, nejde o zásadní rozhodnutí; stejně tak to může být obsluha přerušení – výhodou je, že získáte jedno přerušení na každých 256 pulzů (za předpokladu 8 bitů čítače) spíše než na každý pulz, takže režie přerušení je mnohem nižší. - Clifford 28. srpna 14 2014-08-28 11:10:07

0

Analogový vstup můžete použít pouze v případě, že výstup snímače má pevnou frekvenci PWM (a přidali jste vhodné analogové filtrování s mezní hodnotou mírně pod touto frekvencí), ale z vaší otázky vyplývá, že se jedná o proměnnou frekvenci, nikoli PWM (jak jinak pomoci počítání pulsů?). -



© 2023 globusks.ru - Opravy a údržba automobilů pro začátečníky