Regulace amplitudy PWM signálu

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#31 Příspěvek od Valdano »

bitak píše:Známý používá Arduino Mega mimo jiné pro generování PWM signálu. Frekvence 0-65kHz, střída 0-100 procent. Nyní by ještě potřeboval sw. měnit celkem přesně amplitudu v rozmezí 0-5V...

Má to simulovat nějaký senzor, jehož výstupem je PWM.
Ten Váš známý si zřejmě jen chybně vyložil nebo nesprávně pochopil popis PWM výstupního signálu u nějakého konkrétního senzoru. Požádejte ho ať vám buď specifikuje označení toho konkrétního senzoru a nebo pokud jej má tak ať Vám poskytne přímo odkaz na datasheet popisující výstupní PWM signál toho konkrétního senzoru a pak sem dejte příslušný odkaz ať se to vyjasní.
Uživatelský avatar
Ruprecht
Příspěvky: 1494
Registrován: 28 zář 2005, 00:00
Bydliště: ZČ + JM

#32 Příspěvek od Ruprecht »

Tak třeba staví nějaký univerzální simulátor/generátor signálů PWM: uvádí 0-65kHz, šířku 0-100%, tak ještě k univerzálnosti výstupu zbývá napětí. Já bych to řešil natvrdo přepínačem napětí, třeba 3,3V, 5V, 9V a 12V.

Ale místo pofiderní konstrukce bych si na to koupil nějaký normální stolní generátor třeba za tři litry, kde si nastavím všechny tři parametry (a pomíjím možnosti modulace) :wink:
Za den práce je na to vyděláno. Ale dost pochybuju, že za den práce to bude zkonstruováno, naprogramováno a namontováno v krabičce s konektory a napájením.
Když promluví, tak buď kňučí, nebo lže.
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#33 Příspěvek od Mahoney »

Nedá se všecko převést na peníze, radost z konstruování ti nikdo nevezme.
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#34 Příspěvek od Valdano »

Uvádí jen do 5V. Pro tento účel může použít s Arduinem DAC MCP4725 jak už zde zmínil HF_Tech. Příklady s Arduinem a MCP4725 najde na Internetu.

Stručný popis postupu.

Použije oficiální knihovnu k MCP4725 pro Arduino.

V Loop() pro jednoduchost třeba takto:

1. Nastaví výstupní napětí DAC přes dac.setVoltage(napeti);
2. Počká po dobu trvání impulsu delayMicroseconds(delka_impulsu_us);
3. Nastaví 0 výstupní napětí DAC přes dac.setVoltage(0);
4. Počká po dobu trvání mezery delayMicroseconds(delka_mezery_us);

A tak pořád dokola.

Délku trvání impulsu a mezery si vypočte dle aktuální frekvence.
Naposledy upravil(a) Valdano dne 19 kvě 2025, 16:32, celkem upraveno 1 x.
Uživatelský avatar
feliz_navidad
Příspěvky: 959
Registrován: 15 říj 2009, 00:00

#35 Příspěvek od feliz_navidad »

Jakou chybu bude mít PWM na 65kHz, když MCP4725 má Full scale settling time celkem 18us a wake-up 6-10us?
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#36 Příspěvek od Valdano »

Platí v podstatě to co zde už uvedl HF_Tech tj. je to použitelné pouze v případě, že nebude vadit tímto daná nepřesnost PWM.

Takže nemá žádný smysl se tu dohadovat. Hotové řešení zde tazatel stejně nedostane a ten jeho známý si to tak jako tak bude muset sám vyzkoušet a odladit podle toho jak mu to či ono bude vyhovovat. Možností řešení tu bylo ostatními zmíněno více viz třeba použít na výstupu stávajícího PWM signálu digitální potenciometr apod. Toto je jen jedno z řešení. Takže náznaky zde jsou a zbytek už je čistě jen na tom známém tazatele.
Uživatelský avatar
HF_Tech
Příspěvky: 2365
Registrován: 25 dub 2022, 00:00

#37 Příspěvek od HF_Tech »

feliz_navidad píše:Jakou chybu bude mít PWM na 65kHz, když MCP4725 má Full scale settling time celkem 18us a wake-up 6-10us?
Vo požadované přesnosti není v zadání ani zmínka. Ale číší z toho, že je to potřeba udělat hlavně levně :lol:
Uživatelský avatar
feliz_navidad
Příspěvky: 959
Registrován: 15 říj 2009, 00:00

#38 Příspěvek od feliz_navidad »

Tak to bezesporu.

Jenom to na těch 65kHz bude spíš taková ON/OFF, než PWM...
masar
Příspěvky: 14453
Registrován: 03 pro 2005, 00:00

#39 Příspěvek od masar »

Pokud jde o jednoduché a levné řešení, může se to řešit i podobným způsobem, jako následující simulace ve Falstadu:
Obrázek
Pro požadované řízení po 100mV (v 50-ti krocích) lze použít jako převodník přímo arduino s váhovými odpory jako alternativa za MCP4725. Pro společné napájení z 5V musí být OZ rail-to-rail.
:wink:
Uživatelský avatar
bitak
Příspěvky: 225
Registrován: 02 lis 2005, 00:00

#40 Příspěvek od bitak »

Tak pro upřesnění. Jedná se o simulaci 2 druhů senzorů. Jeden poskytuje na výstupu PWM, druhý je analogový, s výstupním signálem 0-5V. Omlouvám se za nedorozumění, ale poprvé mi bylo opravdu řečeno, že je potřeba měnit amplitudu PWM. Typy senzorů jsem si zapomněl opsat, datasheet bych měl mít koncem týdne. Jedná se o simulátor senzorů nějakého většího celku, kde je např. potřeba vědět, jak se tento systém zachová, pokud: se ztratí PWM signál, odpojí se napájení senzoru, zkrat výstupu na GND, nebo (u analogového senzoru) čeká se na výstupu např.3V, ale je tam více či méně apod. Proudy údajně zanedbatelné.
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#41 Příspěvek od Valdano »

V tom případě stačí mít na udělátku dva výstupy a nebo mezi nimi přepínat třeba obyčejným páčkovým přepínačem apod. Jeden výstup pro klasický PWM signál, který už má a druhý výstup z MCP4725 pro 0 až 5V a je hotovo. Pro MCP4725 stačí jen nastavit výstupní napětí DAC přes dac.setVoltage(napeti).
Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“