User manual
38
12. Naključna števila - generator loterijskih števil
Med zapisovanjem, merjenjem, nadzorom, regulacijo in izvajanjem programa je pogosto
koristno ustvarjanje naključnih števil, na primer ko se luči vklapljajo in izklapljajo v hiši ob
različnih časih. Za ta namen lahko uporabite funkcijo Arduino™-random(). To dovoljuje
ustvarjanje preprostega generatorja loterijskih števil. Ne boste rabili več razmišljati katerega
števila izbrati, ko boste izpolnjevali vaš loterijski listek.
Za nastavitev generatorja loterijskih števil potrebujete tipko in anteno. Tipka se znotraj
programa odbija. Tipka in stikalo ne zapreta stika 100 % naenkrat, ampak sta namenjena
sprožitvi večkrat zapored po pritisku. To lahko primerjate z metom žoge ob tla. Nekajkrat se
bo odbila, preden bo obležala na tleh. To se zgodi veliko hitreje s tipko, vendar je Arduino™
mikrokrmilnik tako hiter, da bo zaznal te milisekundne skoke. Da se temu izognete, se tipka
odbije, s tem da je prebrana dvakrat zapored v presledku 50 ms, kar je dovolj za odbojno
rutino v praksi. Edino če je druga ocena še vedno prepoznala nizko stanje izhoda D7, se bo
navodilo med oklepaji izvršilo.
Na začetku programa preklopimo vrata D7 na izhod in aktiviramo notranji dvig upornosti s
pomočjo digitalWrite() z zapisom 1 za visoko stanje vhoda. Sedaj napetost približno 5 V čaka
na vhodu v stanju mirovanja. Sedaj lahko usmerite vhod proti GND (ozemljitvi) s tipko. Ta
dvig upornosti je integriran v mikrokrmilniku in ima vrednost približno 20 do 50 kΩ. Kar se tiče
funkcije, je enako kot da bi priključili zunanji upornik iz vhoda D7 na +5 V. V stanju mirovanja
bo program vedno prepoznal visoko vrednost na vratih D7 in nizko stanje ko bo pritisnjena
tipka. Zato je stavek tipke zapisan v programu z vprašajem. To se imenuje NOT-operator v
programskem jeziku C. Ker je znano da If() stavek preverja za TRUE, bo vse drugo
interpretirano kot FALSE. Če je bil If() stavek izveden brez tega operatorja, bo pogoj vedno
TRUE. Izvedel se bo še pred pritiskom tipke. NOT-operator obrne stanje tipke. 1 obrne v 0 in
0 obrne v 1 in If() stavek je sedaj samo TRU, če je tipka bila dejansko pritisnjena.










