User manual

32
Ko doseže vrednost števca i 255 ali 0, bo spremenljivka flag vedno nastavljena od 0 do 1 in
smer števca se bo spremenila (i++ povečuje stanje števca za 1, i— zmanjšuje stanje števca
za 1). V Loop() funkciji tokrat ne rabimo uporabiti break, ampak določiti čas s pomočjo
funkcije millis(). Šele ko bo razlika, ki smo jo določili v spremenljivki previousMillis, potekla se
bo osvetlitev spremenila na eno stopnjo. Na ta način bo program nadaljeval s polnim
delovanjem izven If() funkcije. Samo če je PWM vrednost zamenjana se bo čas delovanja
malo zamenjal, ker bodo klicane nekatere funkcije, ki potrebujejo časovno spremembo. Tukaj
lahko poskusite določiti različne čase delovanje s funkcijo Millis(), ki ste se jo že naučili
uporabljati.
10. Ura matričnega LCD
V veliko aplikacijah je ura potrebna za nadzor programa kot preprost časovnik, nadzor nad
točno določenim urnikom ali kot delujoči števec ur. Aplikacije ki potrebujejo uro so različne.
Poskus prikazuje kako lahko sami programirate zelo preprosto uro. Program se izvaja v
loop() funkciji, je končen in šteje v ciklih dolgih 10 ms. Če števec prebere cnt=100 se izpiše
čas. To se zgodi vsako sekundo. LED L bo zasvetil vsako sekundo. Spremljajte delovanje
programa da zagotovite, da se še vedno izvaja in če je slučajno prišlo do napake. Vendar
lahko opazite da ura ni tako natančna kot dejanska quartz ura, ker je cikel in odstopanje
mikrokrmilnika quartz pri 16 MHz veliko višje, kot pri večji quartz uri z kilohertz dosegom
(quartz ura =32,768 kHz). Odstopanje za več kot eno minuto na dan ni nič nenavadnega.
Natančnost je odvisna tudi od sobne temperature. Če močno niha s časom, bo ura imela
veliko časovno napako. Časovno odstopanje lahko popravimo z ukazom delay(). Za še
boljšo popravilo napake lahko uporabite delayMicroseconds(). Za to nastavite digitalne pine
kot izhod in preklopite ob vsakem izvajanju programa, zamenjajte pogoje enkrat na izvajanje.
Za signal je lahko natančno naravnan na izhodni čas 10 ms s pomočjo osciloskopa. Lahko
določite odstopanje čez razširjeno časovno periodo, s primerjavo časa z različno, bolj
natančno uro, na primer DCF uro (1 ali dva dni), računate razliko in jo nato popravite
odstopanje z delayMicroseconds().
Ura v uporabi.
Spremenljivke so nato uporabljene za nastavitev ure:
Nasvet
Za več informacij o quartz uri si oglejte spletno stran:
http://de.wikipedia.org/wiki/Uhrenquarz
Nalaganje
Za poskus potrebujete osnovni zapis LCD, ki ste ga že nastavili v testu funkcij.