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 , 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 . 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.
PWM buzení transformátoru
Re: PWM buzení transformátoru
Trochu divočina ve struktuře.
Ve sketchi může být jen jeden blok setup.
A definici funkce
máš někde úplně mimo.
Nemám to teď na čem ověřit, ale pro začátek zkus tohle:
Ve sketchi může být jen jeden blok setup.
A definici funkce
Kód: Vybrat vše
void analogWrite25k(int value)
Nemám to teď na čem ověřit, ale pro začátek zkus tohle:
Re: PWM buzení transformátoru
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.
Mohl bys mě prosím ještě zkontrolovat program PWM_transformator, právě tu syntaxi, díky.
Re: PWM buzení transformátoru
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á.)
----
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).
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).
Re: PWM buzení transformátoru
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.
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.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů