PWM buzení transformátoru

Odpovědět
Venda
Příspěvky: 12
Registrován: 05 pro 2018, 17:59
Reputation: 0

PWM buzení transformátoru

Příspěvek od Venda » 05 pro 2018, 23:36

Zdravím všechny přítomné a prosím o radu.
Stavím zdroj pro buzení VN transformátoru s PWM buzením, které je na 25KHz a 25% střídu. Tlačítkem se postupně nastavují tři stupně výkonu indikované LED diodami, na kterých jsou různé časy buzení a pauz. Přikládám program PWM_ transformátor
PWM_transformator.ino
(2.12 KiB) Staženo 156 x
, kde mě sice funguje přepínání stupňů, ale nedaří se mi do něj vložit samotné buzení PWM, to je druhý přiložený soubor PWM_25Khz
PWM_25Khz.ino
(2.88 KiB) Staženo 149 x
. nemáte někdo prosím s tímto zkušenosti, třeba mě nasměrovat na nějakou web stránku nebo i literaturu, kde se to řeší, velice vám děkuji.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PWM buzení transformátoru

Příspěvek od AstroMiK » 06 pro 2018, 06:51

Trochu divočina ve struktuře.

Ve sketchi může být jen jeden blok setup.
A definici funkce

Kód: Vybrat vše

void analogWrite25k(int value)
máš někde úplně mimo.

Nemám to teď na čem ověřit, ale pro začátek zkus tohle:
pwm.gif

Venda
Příspěvky: 12
Registrován: 05 pro 2018, 17:59
Reputation: 0

Re: PWM buzení transformátoru

Příspěvek od Venda » 06 pro 2018, 10:58

Moc děkuju, odpolko to vyzkouším, doteď jsem dělal elektroniku postaru, s tímhle teprve začínám.
Mohl bys mě prosím ještě zkontrolovat program PWM_transformator, právě tu syntaxi, díky.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PWM buzení transformátoru

Příspěvek od AstroMiK » 06 pro 2018, 19:51

Tak ten první program (PWM transfoormátor.ino) sice šel přeložit, ale nefungoval podle očekávání, protože mi to bralo zákmity tlačítka.

Doplnil jsem tam krátkou pauzu po kontrole rozdílného stavu a zvenku jsem připojil 10k Pull-Down ze vstupu na GND.
Tlačítko pak spíná proti Vcc. Přepínání pak funguje dobře.
(Čtvrtá LED je nevyužitá.)

Kód: Vybrat vše

.
.
.
    if (buttonState != lastButtonState) {
        delay(20);    // odruseni zakmitu
        // jestliže se stav změnil, navyšte hodnotu počítadla
        if (buttonState == HIGH) {
.
.
.
----
Druhý program ale nefunguje na Arduinu Uno(Nano).
Problém je v registru OCR4C, který v procesoru ATmega328 není.

Pravděpodobně se jedná o kus kódu na řízení PWM, který byl původně navržený pro Arduino Micro (s procesorem ATmega32U4).


Jinak i bez toho řízení PWM je to nějaký nesmysl.
Například Serial.parseInt() je co? To tam chceš něco posílat po sériovém portu z počítače do Arduina?

Nevím, jak nastavit 25kHz na Arduinu Uno.
Zkoušel jsem nějaké příklady z https://www.eprojectszone.com/how-to-mo ... ino-part1/

Povedlo se mi nastavit asi 63kHz, které se tlačítkem přepínají na střídu 0% /25% / 50% / 75%.
Výstup je na pinu D6 (tam jak je ta nevyužitá LED)

Možná se dá nějakým nastavením těch registrů TCCR0A, TCCR0B docílit i těch 25kHz, ale na to už nějak nemám sílu.
Zkus si prostudovat ten odkaz.

V příloze je funkční program pro těch 63kHz s ukázkou výstupu na osciloskopu (pinu D6).
PWM_63kHz.ino
(2.69 KiB) Staženo 151 x
25procent.gif
75procent.gif

Venda
Příspěvky: 12
Registrován: 05 pro 2018, 17:59
Reputation: 0

Re: PWM buzení transformátoru

Příspěvek od Venda » 06 pro 2018, 22:12

Mám to na UNU a maká to bezvadně, díky moc za tvůj čas. Můj program jsou různě slepený kódy, proto je to taková divočina a jsou tam věci navíc.
Potřebuju aby to běhalo podle těchto časů:

LED1(pwm-25KHz, duty cycle 25%, nonstop)
LED2(pwm-25KHz, duty cycle 25%, 20s buzení a 20s pauza)
LED3(pwm-25KHz, duty cycle 25%, 20s buzení a 150s pauza)
LED4 (poruchová led4, funkci doplním později)

-ale bez základních znalostí, který si musím doplnit, to nedám, všude bych jen bouchal DELAY ... a stál by celý systém, to je blbý. Jak pokročím tak to sem šoupnu, ještě jednou díky.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů