Forum » Elektrotehnika in elektronika » Arduino frekvenca
Arduino frekvenca
Janko97 ::
Zdravo!
Imam težavo z generiranjem frekvence na Arduinu. Na izhodu bi želel dobiti signal nekako takšne oblike.
TON naj bi bil po defaultu 1.5ms, prav tako TOF.
Velikosto oz. voltaža signala pa 3.2V.
Je to možno narediti s PWM-jem na način:
Če je to pravilno pa nevem kako bi nastavil TON na 1,5ms. Isto delay??
Hvala za pomoč.
Imam težavo z generiranjem frekvence na Arduinu. Na izhodu bi želel dobiti signal nekako takšne oblike.
TON naj bi bil po defaultu 1.5ms, prav tako TOF.
Velikosto oz. voltaža signala pa 3.2V.
Je to možno narediti s PWM-jem na način:
void loop() {
analoglWrite(11,163) // nastavitev voltaže na 3,2V 255=5V 0=0V
delay(1,5) // pavza oz. TOF
}
Če je to pravilno pa nevem kako bi nastavil TON na 1,5ms. Isto delay??
Hvala za pomoč.
- spremenilo: Janko97 ()
stalker ::
Pulse-width modulation (PWM)
Kar ti iščeš se kliče duty cycle. Na zgornji strani je vse razloženo. Napetost ne nastaviš na pinih, tam imaš ali 0V ali 5V (ali 3,2V, ne vem koliko ima arduino), duty cycle ti da napetost na izhodu: 100%=5V, 64%=3,2V, 50%=2,5V, 33%=1,65V itd.
Kar ti iščeš se kliče duty cycle. Na zgornji strani je vse razloženo. Napetost ne nastaviš na pinih, tam imaš ali 0V ali 5V (ali 3,2V, ne vem koliko ima arduino), duty cycle ti da napetost na izhodu: 100%=5V, 64%=3,2V, 50%=2,5V, 33%=1,65V itd.
Zgodovina sprememb…
- spremenilo: stalker ()
janco ::
Ja, rabiš dva delay-a.
Nisem expert za arduinote, sem pa skoraj 100% prepričan, da funkcijam podajaš napačne parametre:
Digitalni izhod je lahko samo 1(verjetno 5V) ali 0.
digitalWrite funkcija
Funkcija delay sprejme samo cela števila, za dosego 1.5ms moraš uporabiti DelayMicroseconds:
delay funkcija
Nisem expert za arduinote, sem pa skoraj 100% prepričan, da funkcijam podajaš napačne parametre:
Digitalni izhod je lahko samo 1(verjetno 5V) ali 0.
digitalWrite funkcija
Funkcija delay sprejme samo cela števila, za dosego 1.5ms moraš uporabiti DelayMicroseconds:
delay funkcija
Siddh ::
Arduino že ima funkcijo analogWrite(pin, 0-255), kar lahko uporabiš samo na pinih, ki imajo možnost pwm(pulzno širinska modulacija). s številko 0-255 pa nastavljaš procent pwm 0-100% pwm.
Janko97 ::
Po preizkusu z LED diodo:
Je rešitev vredu??
void loop() {
analogWrite(11,163);
delay(2000);
analogWrite(11,0);
delay(1000);
}
Je rešitev vredu??
Zgodovina sprememb…
- spremenilo: Janko97 ()
stalker ::
Ne. Uporabi samo en analogWrite(). In zakaj rabiš toliko dolg delay?
Si sploh pogledal na stran, ki sem ti jo dal? Ker tam imaš TOČNO to, kar ti rabiš.
Si sploh pogledal na stran, ki sem ti jo dal? Ker tam imaš TOČNO to, kar ti rabiš.
Zgodovina sprememb…
- spremenilo: stalker ()
stalker ::
Ne glej gornjega posta. Morala bi. Ti pa priporočam, da si prebereš, kaj PWM sploh je.
Zgodovina sprememb…
- spremenilo: stalker ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Arduino in luči (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 11897 (9523) | FX6300B |
» | Arduino "leteče luči"Oddelek: Elektrotehnika in elektronika | 2978 (1855) | zrataj4201 |
» | Arduino - krmiljenje stepper motorjevOddelek: Elektrotehnika in elektronika | 3687 (2866) | steling |
» | programiranje procesorja (strani: 1 2 3 4 … 8 9 10 11 )Oddelek: Elektrotehnika in elektronika | 36218 (25619) | icek |
» | Zelo pocasno utripanje LED diode (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 8639 (7844) | a13misko |