Professional Documents
Culture Documents
RobDuino Rezina BASCOM
RobDuino Rezina BASCOM
za programiranje
rezine RobDuino v
okolju BASCOM
Tomaž Kušar
Kratek opis uporabe rezine RobDuino
Zbral in zapisal Tomaž Kušar
Rezino RobDuino je razvil in izdelal David Rihtaršič. Programsko knjižnico robDuino.bas je razvil Tomaž Kušar
Nazadnje posodobljeno:
februar, 2019, različica 1.0
Kazalo vsebine
1 Digitalni izhod...................................................................................................................................................................4
1.1 Vezava porabnika na digitalni izhod.........................................................................................................................4
1.2 Krmiljenje digitalnih izhodov...................................................................................................................................4
2 Digitalni izhod s funkcijo motor[1-3]................................................................................................................................6
2.1 Vezava motorja..........................................................................................................................................................6
2.2 Klicanje funkcije motor[1-3]....................................................................................................................................6
2.3 Uporaba funkcije motor in pulznoširinsko krmiljenje motorjev...............................................................................6
3 Digitalni vhod....................................................................................................................................................................7
3.1 Vezava digitalnega senzorja na vhod........................................................................................................................7
3.2 Konfiguracija digitalnega vhoda...............................................................................................................................7
3.3 Branje digitalnega vhoda oziroma stanja tipke.........................................................................................................8
4 Analogni vhod....................................................................................................................................................................9
4.1 Vezava analognega senzorja......................................................................................................................................9
4.2 Konfiguracija analognega vhoda..............................................................................................................................9
4.3 Branje analognega vhoda..........................................................................................................................................9
5 Izpis na LCD....................................................................................................................................................................10
5.1 Vezava LCD-ja........................................................................................................................................................10
5.2 Konfiguracija LCD-ja.............................................................................................................................................10
5.3 Izpisovanje na LCD................................................................................................................................................10
6 Ultrazvočni senzor razdalje.............................................................................................................................................11
6.1 Vezava senzorja HC-SR04......................................................................................................................................11
6.2 Konfiguracija senzorja HC-SR04...........................................................................................................................11
6.3 Branje senzorja........................................................................................................................................................11
7 Servo motor.....................................................................................................................................................................12
7.1 Vezava servomotorjev.............................................................................................................................................12
7.2 Konfiguracija servomotorjev..................................................................................................................................12
7.3 Krmiljenje servomotorjev.......................................................................................................................................12
8 Programske strukture.......................................................................................................................................................13
8.1 setup().....................................................................................................................................................................13
8.2 Loop().....................................................................................................................................................................13
8.3 Funkcije...................................................................................................................................................................13
8.4 If strukture...............................................................................................................................................................13
8.5 Zanka while.............................................................................................................................................................13
8.6 Matematični operatorji............................................................................................................................................14
8.7 Primerjani operatorji...............................................................................................................................................14
8.8 Logični operatorji....................................................................................................................................................14
9 Objekti in spremenljivke..................................................................................................................................................14
10 Časovnik (timer)............................................................................................................................................................15
10.1 Konfiguracija časovnika.......................................................................................................................................15
10.2 Uporaba časovnika oziroma objekta Timer..........................................................................................................15
1 Digitalni izhod
Z digitalnimi izhodi krmilimo aktuatorje oziroma
porabnike. Močnostni digitalni izhodi so na rezini
RobDuino označeni s črko D (PortD, od D0 – D7). Ko v
program vključimo knjižnico RobDuino.bas, je
PortD nastavljen kot izhodni priključek. PortD sicer v
kombinaciji z rezino RobDuino lahko uporabljamo tudi
kot VHODNI priključek, a zelo redko.
1. V desetiški obliki:
PORTD = 20
PORTD = 0
2. V dvojiški obliki:
PORTD = &B10100111
3. BASCOM ukaz:
PORTD.4 = 1
PORTD.0 = 0
Primer kode, krmiljenja izhodnega priključka D7 in sicer gre za utripanje lučke na izhodu D7 s frekvenco 1Hz.
$regfile = "m328pdef.dat"
$crystal = 16000000
$include "RobDuino.bas"
Config Portd = Output
Do
Portd.7 = Not Portd.7
Waitms 500
Loop
End
2 Digitalni izhod s funkcijo motor[1-3]
Za krmiljenje motorjev je v knjižnici RobDuino.bas
zapisana posebna funkcija motor. Z njo enostavno
krmilimo smer in hitrost vrtenja motorja.
Do
Gosub Pelji_naprej
Wait 2
Gosub Pelji_nazaj
Wait 2
Loop
End
Pelji_naprej:
Motor3 Naprej , 128
Wait 2
Motor3 Ustavi , 255
Wait 1
Return
Pelji_nazaj:
Motor3 Nazaj , 200
Wait 2
Motor3 Ustavi , 255
Wait 1
Return
3 Digitalni vhod
Z digitalnimi vhodi zaznavamo stanje tipk, stikal in
digitalnih senzorjev. Digitalni vhodi so lahko vsi
priključki PortaB ali PortaC.
.
3.3 Branje digitalnega vhoda oziroma stanja tipke
Digitalni vhod lahko beremo na več načinov. Če
uporabljamo zgornjo konfiguracijo, je branje stanja
tipke naslednje:
PRIMER:
Do
If C4 = Dol Then Gosub Vklopi_ventilator
If C5 = Dol Then Gosub Izklopi_ventilator
Loop
End
Vklopi_ventilator:
Motor2 Naprej , 255
Return
Izklopi_ventilator:
Motor2 Ustavi , 255
Return
4 Analogni vhod
Z analognimi vhodi zaznavamo stanje analognih
senzorjev, kot na primer, svetlobni senzor, temperaturni
senzor...
PRIMER:
Do
Print Getadc(2)
Waitms 300
Loop
End
5 Izpis na LCD
Na rezino RobDuino lahko priključimo tudi LCD. Za ta
namen ima rezina poseben 10 pinski speedy konektor
(označen na sliki).
Const Lcd_enabled = 1
Trig.......….......... C3
Echo..... ….......... C2
PRIMER:
Servo1 30
PRIMER:
Dim I As Byte
Do
For I = 30 To 120
Servo1 I
Waitms 100
Next I
Wait 2
Loop
End
8 Programske strukture
Pri programiranju neizbežno uporabljamo programske strukture kot so zanke in odločitveni (pogojni) stavki. V
nadaljevanju je opisanih nekaj struktur.
8.2 If strukture
Z if strukturo preverjamo, če je določen pogoj izpolnjen in potem posledično ukrepamo.
If pogoj_izpolnjen then
Če pogoj ne bo nikoli izpolnjen, se ne bo zgodilo nič. Če pa vseeno želimo, da se kljub neizpolnjenemu pogoju nekaj
zgodi, uporabimo if-else strukturo.
If pogoj_ipolnjen then
nekaj_naredi...
Else
naredi_nekaj_drugega...
End if
x = x + 1 , x povečamo za 1
x = x – 1, x zmanjšamo za 1
x = x + y, x-u prištejemo y
x = x-y, x-u odštejemo y
x = x*y, x pomnožimo z y
x = x/y, x delimo z y
x=y x je enako y
x != y x ni enak y
x<y x je manjše od y
x>y x je večji od y
x <= y x je manjšji ali enak y
x >= y x je večji ali enak y
8.6 Logični operatorji
Logične operatorje uporabljamo pri združevanju oziroma preverjanju dveh pogojev.
Logični AND:
Logični OR:
9 Spremenljivke
Držimo se enotne dogovorjene oblike in pri programiranju imena spremenljivk pišimo z malo začetnico. V kolikor so
imena spremenljivk sestavljena iz večih besed, se naslednja beseda začne z veliko začetnico.