Documente Academic
Documente Profesional
Documente Cultură
Intrebari Cu Raspuns
Intrebari Cu Raspuns
2. De unde vine denumirea de BASIC Stamp (BS)? BASIC Stamp (BS) conine un microcontroller sau este inclus n
acesta? Care sunt principalele component ale modulului i ce rol.
Denumirea de BS provine de la faptul ca microcontrolerul foloseste limbajul Basic si este mic de dimensiunea unui
timbre (Stemp
Basic Stamp 2 are inclus un microcontroler, PIC16C57, pe un modul pt a face programarea foarte usoara,si in
acelasi timp foarte puternica. Principalele componente ale moduluilui sunt:
Cip interpretor - Citeste programul BASIC
Rezonator cu cuart - seteaza viteza la care Instructiunile sunt procesate.
Regulator de 5V- regleaza tensiunea de la 5V-5,5V la 15VDC
EEPROM - stocheaza datele de la calculator.
Semnal serial de conditionare - conditioneaza semnalul tensiunii dintre semnalul serial al calculatorului (+/- 12V)
si Basic Stamp (5V) pt programare
3. Care sunt directivele cu care ncepe fiecare program n PBASIC i cum pot fi introduce
' {$STAMP BS2}
' {$PBASIC 2.5}
Pot fi introduce din Basic Stamp Editor.
Directivele cu care incepe fiecare program sunt: tipul de Basic Stamp pe care se lucreaza (de exemplu BS2 - in
toolbar, chip-ul verde asezat in diagonal) si tipul limbajului de programare folosit (de exemplu PBasic 2.5 in
toolbar, butonul cu eticheta 2.5.
7. Presupunem c rezistena intre cele dou terminale ale unui LED este 1 . Ce current va circula prin LED dac l
conectm direct la o barerie de 5 V. Care este probabilitatea ca ledul s fie distrus ? Explicai !
Avand in vedere ca pe LED avem o cadere de tensiune de aproximativ 1,4V, tensiunea o sa scada la 3,6V (5V-
1.4V=3.6V). Din legea lui Ohm o sa rezulte ca avem un current de I=3.6V/1=3.6A. Curentul maxim pe care un LED
il poate suporta de obicei este in jur de 30mA, adica 0.03A. Deci probabilitatea ca LED-ul sa se arda in aceste
conditii este extreme de mare.
8. Ce curent circul printr-un LED conectat la o baterie de 9V inseriat cu o rezisten de 380 ohmi.
I=(9V-1.4V)/380=7.6V/380=0.02A=20mA
9. Care sunt diferitele tipuri de variabile folosite de limbajul PBASIC ? n ce memorie sunt stocate variabilele la un
microcontroler ? Poate ncpea valoarea 500 intr-un octet (byte) ? Ce tip de variabil folosim pentru valoari mai
mici de 15 ?
Variabilele folosite in limbajul PBASIC sunt: Bit (0 1), Nib (0 15), Byte (0 255), Word (0 65535). Ele sunt
stocate in memoria RAM a microcontroler-ului.
Un Byte are valori pana la 255, deci nu, valoarea 500 nu incape intr-un octet.
Pentru valori mai mici de 15 folosim Nib.
12. Care este instruciunea care repet de un numr prestabilit de ori un grup de comenzi ?
FOR-NEXT
13. Care este diferena dintre depunerea i recepia unui semnal HIGH sau LOW folosind BS2 ?
Receptia unui semnal (de la un buton) trebuie citita si se face prin comanda DEBUG INx (unde x este intrarea la
care este legat butonul). La receptie, pinul BS este folosit ca si input (intrare). Depunerea unui semnal se face
pentru a comanda (un led, motor, etc) si se face cu comanda HIGH sau LOW. Depunerea unui semnal presupune
utilizarea pinului BS ca si output (iesire).
14. Ce nseamn Activ-High i Activ-Low n ceea ce privete un buton conectat la portul P0 ? Deseni schemele
electrice ! Explicai rolul rezistenelor din circuit !
Activ-High:
Cand butonul este apasat, in pinul 0 va fi sesizat tensiunea Vdd (5V). Cand butonul nu e apasat, BS va sesiza pe
pinul 0 tensiunea Vss. Rezistorul de 10kohmi este un resistor de pull-down deoarece trage la masa (Vss -0V)
intrarea. Rezistenta de 220 ohmi este utilizata pentru a limita tensiunea de intrare pe pin in cazul in care butonul e
apasat si prin circuit trece tensiunea Vdd.
Activ-Low:
Cand butonul este apasat, in pinul 0 va fi sesizata tensiunea Vss (0V). Cand butonul nu e apasat, BS va sesiza pe
pinul 0 tensiunea Vdd. Rezistorul de 10kohmi este un resistor de pull-up deoarece trage la Vdd (5V) intrarea.
Rezistenta de 220 ohmi este utilizata pentru a limita tensiunea de intrare pe pin in cazul in care prin circuit trece
tensiunea Vdd.
15. Care sunt schemele de conectare a unui buton cu rezisten pull-up i pull-down la pinul P3 ? Ce rol are
rezistena de Pull-Down ? Care sunt valorile IN3 cnd butonul este apsat ?
Pull-down (trage intrarea la masa):
18. Ce fel de blocuri de cod pot fi folosite pentru luarea deciziilor pe baza valorilor unuia sau a mai multor butoane?
IF conditie THEN actiune1
ELSE actiune2
ENDIF
Daca conditie este adevarata atunci se executa actiune1, iar daca nu e adevarata se executa actiune2.
19. Precizai patru tipuri de motoare i dispozitive pentru micare ! Care dintre ele poate fi comandat direct de BS2 ?
Motoare de curent continuu, motoare de curent alternativ, motoare pas cu pas, servomotoare
20. Care este componena intern a unui servomotor standard ? bonus x puncte pentru schema bloc !!!
Un servomotor standard este alcatuit in interior din circuitele de control ale servomotorului, motor de curent
continuu si un reductor .
Schema bloc:
21. Ce comanda controleaza semnalul low time trimis la un servomotor? Ce comand controleaz time
high?
Semnalul low time este controlat de comanda PAUSE. Iar high time este controlat de comanda PULSOUT
22. Ce element de programare putei folosi pentru a controla durata timpului n care un servomotor,
conectat la P7 sta intr-o poziie anume (exmplu ora 12 ) timp n secunde (ex. 2 sec)kl ?
FOR counter = 1 TO 150 //pastreaza servormotorul in pozitie pentru aprox. 3.25 s
PULSOUT 7, 750 //muta servomotorul de la P7 in pozitia de la ora 12
PAUSE 20
NEXT
23. Care sunt limitele pentru limea impulsurilor de comand ale unui servomotor standard de la
PARALLAX? Ce se poate ntmpla dac le depim?
Intre 500 si 1000, iar daca acestea sunt depasit servomotorul va incerca sa ajunga intr-o pozitie peste limitarile
lui mecanice. Asta nu o sa avarieze servomotorul, insa ii va scurta perioada de viata
24. Care sunt comenzile prin care comandm limea impulsurilor i perioada ntre dou impulsuri ?
Specificai argumentele comenzilor! Exemplificai pentru orele 10, 12, 14 !
FOR counter = 1 TO 150 //isi pastreaza pozitia pentru aproximativ 3.25 s
PULSOUT 7, 1000 //servomotorul de la P7 la ora 10
PAUSE 20
NEXT
FOR counter = 1 TO 150
PULSOUT 7, 500 //servomotorul la ora 2
PAUSE 20
NEXT
FOR counter = 1 TO 150
PULSOUT 7, 750 //servomotorul la ora 12
PAUSE 20
NEXT
25. Cum se utilizeaz Terminal Debug pentru a trimite mesaje la BASIC Stamp? Ce comanda de programare
este folosita pentru a face BASIC Stamp sa primeasca mesaje de la Terminal Debug?
Odata deschisa fereastra Debug Terminal, ultilizatorul poate introduce date de la tastatura care sunt transmise
placii BASIC Stamp. Pentru a primi BASIC Stamp date de la calculator se foloseste comanda DEBUGIN
26. Ce este poteniometrul i cte terminale are ? Dai cteva exemple unde se utilizeaz !
Potentiometru este un dispozitiv de intrare cu rezistenta variabila. Acesta are 3 terminale
Exemple de utilizare:
- de a regla luminozitatii unui LED
- de a regla volumul unui difuzor
- de masurare a unghiului de rotatie
27. Poteniometrul este un traductor de deplasare sau de poziie ? Un servomotor conine poteniometru?
Dac da , ce rol are acesta ?
Potentiometru este un traductor de pozitie (rotatie). Acesta este folosit si in interiorul servomotorului unde
sesizeaza pozitia actuala si se afla pe ramura de feedback.
28. ntr-un poteniometru tipic, este rezistena dintre cele dou terminale exterioare reglabil ?
Nu! Acea rezistenta este fixa!
29. Poate fi asemnat un condensator ca o baterie rencrcabil? Dac DA care ar fi diferena dintre ele?
Da, insa condesatorul stocheaza energia electrica pentru o scuta perioada de timp
30. Care este tensiunea de prag care delimiteaz nivelul logic 0 de nivelul logic 1, la BS 2 ?
1.4 V
31. Care este principiul msurrii unei rezistene variabile cu un microcontroler care nu are dect porturi
digitale cum este BS2 ? Exemplilificai prin circuit electric i grup de comenzi n PBASIC !
Masurarea rezistentei se face prin RC-time care este o masura timpului de descarcare a unui
condensator (C) printr-o rezistenta (R) intr-un pin digital al placi BS2.
' {$STAMP BS2}
32. Ce se ntmpl cu timpul de desc rcare a unui condensator cnd R (rezistorul) are valori mai mici sau
mai mari?
Este invers proportional! Daca rezistenta creste, timpul de descarcare scade, si invers!
33. Care este comanda folosit de BASIC Stamp 2 pentru msurarea unei rezistene variabile ntr-un circuit
RC?. Explicai argumentele acestei comenzi !
RCTIME Pin, State, Variable
Pin - pinul la care reteaua RC este conectata
State - starea initiala in momentul in care incepe cronometrarea (0 sau 1)
Variable - locatia de memorie unde este stocat rezultatul.
34. Ce face instruciunea CON? Explicai n termeni de nume i numr.
Intructiunea CON vine de la CONstant si mentine o valuare constanta, ne permitanduse schimbarea acesteia
pe parcursul programului
Sintaxa:
PI CON 3
35. Ce este un afiaj cu 7 segmente i ce avantaje au fa de alte tipuri de afiaje? Detaliai cu exemple din
viaa cotidian !
Un afisaj cu 7 segmente reprezinta un set de 7 LED-uri sub forma de bara aranjate in asa fel incat se permita
afisarea a cat mai multor tipuri de litere si cifre.
Exemple de aplicare a afiseajelor:
-displayul cuptorului cu microunde
-in ceasul electronic
36. Ce nseamn anod comun, unde se conecteaz acesta i cu ce comand aprinde un segment legat la
pinul unui BS.2 (ex. P13)?
Anod comun inseamna ca toti pinii anod ale LED-urilor sunt legata impreuna, acestea se leaga la un singul pin
de alimentare(Vss)
Aprinderea unui LED din afisaj conectat la pinul P13 se face cu urmatoarea comanda:
LOW 13;
37. Ce nseamn catod comun, unde se conecteaz acesta i cu ce comand aprine un segment legat la pinul
unui BS.2 (ex. P12) ?
Catod comun inseamna ca toti pinii catod ale LED-urilor sunt legate impreuna, acestea se leaga la un pin de
masa (GND)
Aprinderea unui LED din afisaj conectat la pinul P13 se face cu urmatoarea comanda:
HIGH 13;
38. Cum se numete grupul de fire care conduce semnale la si de la un dispozitiv paralel?
bus-parallel
39. Ce face comanda LOOKUP 2, [A,b,c,d,E,Q],character ?
Din seria valorilor aflate intre paranteze patrate selecteaza caracterul "c" si il stocheaza in variabila character
40. Ce face comanda LOOKDOWN 600, <= [40, 150, 275, 400, 550, 800], index ?
Din seria valorilor aflate intre paranteze patrate selecteaza prima valoare care este mai mare sau egala cu
600, adica 800, iar aceasta valoare returnata este memorata in index
41.Cte porturi I/O are BS 2. n care memorie le gsim i cum sunt grupate ? BONUS x puncte pentru harta
memoriei !!!
BS2 are 16 pini de I/O notati P0...P15. Acestea sunt stocate in memoria EEPROM
42.Cum interpretai comenzile DIRA =%1111, OUTA = % 0001 ? Ce comenzi HIGH si LOW sunt echivalente ?
Cu DIR si OUT se pot controla pinii I/O.DIR este directia daca directia este 1 I/O este setat ca si iesire,si daca este
0 ca si intrare.OUT ,daca OUT este1 pinul va HIGH si daca este 0 va fi LOW.
DIRA si OUTA pot controla simultan toti pinii I/O.
Simbolul % semnifica, ca numerele care il urmeaza au valoare binara-valorile 1 si 0,iar fiecare pozitie este 1 bit.
DIRA = % 1111 se refera la pinii I/O de la P0-P3 pe care ii seteaza ca iesire
OUTA=%0001 seteaza pe LOW P0 P1 P2 si pe HIGH P3.
Astfet: DIRA=%1111 se interpreteaza DIR3=1 ,DIR2=1, DIR1=1, DIR0=1
De asemenea OUTA=%0001OUT3=0, OUT2=0, OUT1=0, OUT0=1.
43.Care este numele compusului chimic care face un fotorezistor sensibil la lumin?
Compusul chimic este sulfura de cadmiu(CdS).
43.Care este diferena ntre fotorezisten i poteniometru ? Desenai simbolurile electrice pentru ambele.
Fotorezistorul variaz n funcie de intensitatea luminii care l lumineaz, spre deosebire de potentiometru la care
rezistena variaz n funcie de poziia momentan a cursorului.
44.Care este principiul msurrii nivelului de iluminare folosind o fotorezisten i BS 2 ? Exemplificai prin circuit i
grup de comezi !
47.Ce comand se utilizeaz pentru a stoca o valoare n EEPROM? Exemplificai pentru stocarea valorilor 125, 700,
1000, ncepnd cu adresa 7 !
Pentru a stoca o valoare in EEPROM se utilizeaz comanda WRITE.
WRITE 7,125
WRITE 7, Word 700
WRITE 7, Word 1000 (Pentru a stoca valori mai mari de 255, parametrul Word trebuie specificat.
48.Ce comanda se utilizeaz pentru a regsi o valoare din EEPROM? Exemplificai pentru citirea unui byte la adresa 7
i unui cuvnt la adresa 8 ?
Pentru a o regsii o valoare in EEPROM se utilizeaz comanda READ.
READ 7,littleEE (littleEE-variabila byte)
READ 8,Word eepromValue (eepromValue-variabila word)
49.Ce este o etichet ? Ce este o subrutin? Ce comanda este folosita pentru a apela o subrutin? Ce comanda este
folosita pentru a ncheia o subrutina? Exemplificai prin subrutina de citire a nivelului de iluminare folosind o
fotorezisten in circuit RC conectat la portul P0 !
O etichet este un nume care poate fi folosit ca nlocuitor n programul dumneavoastr, cu ajutorul creia comanda
GOSUB poate face saltul de la o etichet la alta. O subrutin este un segment de cod ce deplinete o funcie bine
definit. Pentru a apela o subrutin se utilizeaz comanda GOSUB urmat de numele etichetei, iar pentru a o ncheia
se va utiliza comanta RETURN.
DO
GOSUB Get_Rc_Time
GOSUB Delay
GOSUB Update_Display
LOOP
Get_Rc_Time: ' RC-time subroutine
HIGH 2
PAUSE 3
RCTIME 2, 1, time
RETURN
Delay: ' Delay subroutine.
PAUSE time
RETURN
50.Explicai pe scurt efectul piezoelectric !
Efectul piezoelectric-la comprimarea unui cristal are loc aparitia unei polarizari electrice formandu-se o diferenta de
potential cu generare de curent electric.
51.Care este comanda care BS2 genereaz la un port un semnal de o anumit frecven i durat ?
FREQOUT PIN,DURATION,FREQ1,FREQ2(Optional in cazul in care se mizeaza doua sunete)
Ex: Semnal la pinul P9 cu durata 1,5 s si frecventa 2 kHz
FREQOUT 9,1500,2000
52.Ce cauzeaza ca un ton sa sune cu o tonalitate ridicata? Ce cauzeaza un ton sa aibe o tonalitate scazuta?
Frecventa determina tonalitatea tonului.O frecventa ridicata va genera un ton de tonalitate ridicata,iar o frecventa
scazuta va genera un ton de tonalitate scazuta.
1. Facei o comparaie ntre servomotorul cu rotaie continu i servomotorul standard de la Parallax ! (bonus
pentru schemele bloc )
Servomotoarele standard sunt controlate in pozitie. Servomotoarele cu rotatie continua sunt provenite
din servomotoarele standard dar avand unele modificari si anume eliminarea traductorului de pozitie
respectiv a clapetelor de cursa.
Standard:Unghiul de iesire va depinde de valoarea lui U si de incarcare. Controlul este in pozitie.
Rotatie
continua: viteza
motorului
depinde de
unghiul dorit si
de incarcare.
Controlul este
in viteza.
2. Ce nseamn centrarea unui servomotor cu rotaie continu ? Cum se face ? exemplificai pentru un servo
conectat pa P12 !
Deoarece serovmotoarele nu sunt pre-ajustate din fabrica, acestea se ajusteaza cu ajutorul unei
surubelnite pentru a sta nemiscate. Acest lucru se numete centrarea servo. Dupa ajustare se va testa
servomotorul pt a ne asigura ca ele functioneaza intr-un mod corespunzator.
3. Desenai diagram de timp pentru un servomotor cu rotaie continu pentru cele trei cazuri ; Vmax CW, Vmax
CCW, i V=0 ! Scriei comenzile PULSOUT pentru servo conectat la P12, pentru cele trei cazuri ! Ce
frecven trebuie s aib impulsurile pentru a se realize micarea ?
4. Pentru ca Boebotul sa mearga inainte in ce directie trebuie sa se roteasca rotile? Exemplificai prin comanda
PULSOUT . (servo dreapta conectat la P13 iar stnga la P12 )
5. Cnd robotul pivotez la stanga ce trebuie sa faca roata din dreapta? Dar cea din stanga? Exemplificai prin
comanda PULSOUT . (servo dreapta conectat la P13 iar stnga la P12 )
Cand Boe-Bot-ul pivoteaza sper stanga roata dreapta se roteste in sensul acelor de ceas iar roate stanga la
fel.
Comanda este :
For counter=1 to 122
Pulseout 13, 650
PULSOUT 12, 650
NEXT
6. Cnd robotul se rotete la stanga ce trebuie sa faca roata din dreapta? Dar cea din stanga? Exemplificai prin
comanda PULSOUT .(servo dreapta conectat la P13 iar stnga la P12 )
Cand Boe-Bot se roteste la stanga roata din dreapta si cea din stanga trebuie sa se miste in sensul acelor
de ceasornic.
PULSOUT 13,650
PULSOUR 12,650
7. Cum corectezi programul unui robot daca acesta merge usor spre stanga si vrei sa mearga drept inainte?
Exemplificai prin comanda PULSOUT .(servo dreapta conectat la P13 iar stnga la P12 )
Daca Boe-Bot isi schimba directia incet spre stanga atunci fie roata din stanga se roteste prea incet, fie roata din
dreapta se roteste prea repede. Avand in vedere faptul ca deja Boe-Bot se deplaseaza cu viteza maxima , sa crestem
viteza rotii din stanga nu rezolva nimic, insa daca incetinim roata din dreapta situatia se remediaza.
PULSOUR 12,850
8. Care este legatura dintre COUNTER (bucla for...loop) si duration(comanda pulsout)? Exemplificai la navigarea
cu ramp la pornire i oprire .
Navigarea cu rampa la pornire si la oprire este mai ingaduitoare pentru servo-uri si este recomandat
utilizarea rutinelor de de pornire si oprire cu semnal rampa, in locul startului si stopului brusc.
Navigarea cu rampa la pornire si la oprire este realizata prin luarea variabilelor folosite ca argument
Counter in bucla FORNEXT si adunarea sau scaderea lor din valoarea 750 a argumentului Duration a
comenzii PULSOUT.
pornire cu rampa
PAUSE 20
NEXT
oprirea cu rampa
NEXT
9. Dac robotul face 20 cm. ntr-o secund, cte impulsuri trebuie s-I dai pentru a parcurge 60 cm ?
Daca robotul face 20 cm/sca ii ia 3 secunde sa faca 60 cm.
Basic stamp trimite la servomotor 40,65 pluse/s. Aplicam regula de 3 simpla
1 s..40.65 pluse/s
3 s..x
X=3*40.65/1
X=121.95 pluse
10. Ce se foloseste pentru a salva in memoria eeprom? Dar pentru a citi din eeprom? Detaliai pentru pentru
variabile de tip bayte i word !
EEPROM-ul lui BASIC Stamp stocheaz programul pe care l ruleaz, dar se poate lua avantajul utilizrii
fiecrei poriuni neutilizate a programului pentru a stoca valori. Aceasta este o cale bun pentru a stoca rutine
de navigare personalizate. Directiva DATA poate stoca valori n EEPROM. Octeii sunt stocai n mod
predefinit dar, adugnd modificatorul Word item de dat, putem stoca valori pn la 65535, n 2 octei, n
funcie de spaiul de memorie al EEPROM-ului. Valorile se pot citi napoi din EEPROM cu ajutorul comenzii
READ. Dac se ncerarca s se prelueze o varibil de lungimea unui cuvnt, trebuie s se plaseze un
modificator Word naintea variabilei ce va primi valorea pe care comanda READ o aduce.
Blocul de cod folosit pentru a selecta o anumit variabil i pentru a o evalua pe baz
de caz este SELECT ... CASE ... ENDSELECT. EX: SELECT instruction
CASE "F": GOSUB Forward
CASE "B": GOSUB Backward
CASE "R": GOSUB Right_Turn
CASE "L": GOSUB Left_Turn
ENDSELECT
12. Care sunt conditiile diferite in care se poate folosi DO...LOOP ? (bucle condiionale)
13. Cum raspunde un Photoresistor sau o rezistenta la o lumina puternica,si la una slaba.Ce se intampla daca
nivelul luminii este la mijloc?
Un fotorezistor sau fotorezisten este un senzor a crui rezisten electric se modific n funcie de nivelul de
iluminare.
Dac iluminarea crete rezistena scade i invers dac ilumunarea scade rezistena electric crete. Cu alte
cuvinte ntunericul cauzeaz rezisten mare iar iluminarea cauzeaz o rezisten mic.
14. Are un pin de I/O un efect asupra circuitului atunci cand e setat la input? Ce cauzeaza ca valoarea inregistrata
la intrare de un pin I/O sa fie setata la 1 sau 0?
NU. Valoarea tensiunii aplicate cauzeaza registrul de intrare sa schimbe ceea ce
stocheaza. Dac tensiunea aplicat este mai mic de 1.4 voli, stocheaz un 0. In caz contrar,
stocheaz 1.
15. Ce semnifica o tensiune de prag la un port de intrare ? Care este tensiunea de prag pentru un pin I/O de la
BASIC STAMP?
Tensiunea de prag este o valoare care poate fi 1 logic daca este deasupra de prag si 0
logic daca este sub prag. Tensiunea de prag a unui pin I/O pt Basic Stamp este de 1,4 V
16. Referitor la figura 6-4 pe pagina 197 ce cauzeaza Vo sa creasca sau sa scada peste
tensiunea limita a unui pin I/O al BASIC STAMP ? Referitor la circuit ce cauzeaza
schimbarea valorilor lui Vo?
Valoarea lui Vo este determinata de raprtul rezistorilor. Vo isi schimba valoarea deoarece
rezistorul R isi schimba valoarea. R este un fotorezistor care isi schimba valoarea n funcie
de cantitatea de lumina care cade pe ea.
17. Care este frecvena de armonici trimise de FREQOUT 2, 1, 38500? Care este
valoarea frecvenei fundamentale de comand trimisa? Ct timp sunt
aceste semnale trimise? La ce pin I / O trebuie s fie conectat circuitul LED-uri IR n scopul de a difuza acest
semnal?
38,5 kHz este frecventa armonica. Frecventa fundamentala = 65536 38500 = 27036 Hz.
Semnalele sunt trimise pentru o milisecunda si ledul IR trebuie conectat la pinul 2.
18. Ce comanda trebuie s urmeze imediat comanda FREQOUT, n scopul de a
a determina cu exactitate dac un obiect a fost sau nu detectat?
se foloseste o variabila pentru a citi daca senzorul a detectat semnalul infrarosu care se reflecta de pe un obiect,
fiindca senzorul ramane pe High o perioada scurta de timp sub 1 milisecunda
19. Ce nseamn n cazul n care detectorul IR recepioneaz un semnal slab? Ce nseamn aceasta n cazul n care
detectorul recepioneaz un semnal inalt?
Un semnal slab inseamna ca IR la 38,5 kHz a fost detectat, astfel, un obiect a fost
detectat. Un semnal puternic inseamna ca nici un IR la 38,5 kHz nu a fost detectat, deci, nici un obiect nu a fost
detectat.
20. Ce se ntmpl dac se modific valoarea unui rezistor n serie cu un LED rou?
Ce se ntmpl dac se modific valoarea unui rezistor n serie cu o conexiune prin LED-uri infrarou?
Din punct de vedere electric, pentru ambele leduri (atat rosu cat si cu infrarosu), un
rezistor mic va cauza stralucirea mai puternica. Un rezistor mai mare are ca rezultat o lumina mai vaga a led-
ului. In concluzie, led-urile IR cu o lumina mai puternica face posibila detectarea obiectelor care sunt mai
departe.
Exerciii WAM
1. Ce afiez terminalul DEBUG dac rulm urmtoarele comenzi
x VAR byte
x =
DEBUG DEC, DEC3 x, ?x+11, CR, BIN , BIN ?x+20, CR , HEX HEX ? X+11, CR ASCI 7*11
Daca x = 10
Se va afisa: DEC 010 (afiseaza numarul utilizand 3 cifre)
?x+11=21
BIN ?x+20=11110 (30 in binar)
HEX ?x+11= 15 (21 in hexazecimal)
ASCI M
2. Desenai schema electric prin care un led bicolor (rou-verde) este conectat la P14 i P15 , iar unul monocrom
(galben) la P13. Scriei un program prin care ledul bicolor este aprins pe rou 3 sec. dup care se aprinde cel verde
pentru X secunde, timp n care ledul galben clipete cu frecventa de Z pe second.
3. Desenai schema electric a unui circuit prin care dou leduri monocrom (rou i verde) conectate la P15 i P14
sunt comandate de dou butoane PB1 i PB2 conectate la P3 i P4 cu rezisten Pull -Up. Pseudocodul
programului este: ampele butoane apsate - ambele leduri aprinse, un buton apsat un led aprins. Facei
ordinograma i scriei codul programului cu comentarii !
5. Desenai schema electric de msurare a unui poteniometru conectat ( intr-un circuit RC) la P7. Scriei
programul RC-time de afiare a valorii poteniometrului la interval de 1/4 sec.i comentai-l.
Pull up:
Pull down
Pini- 1514131211100908
OUTH=% 0 0 0 1 0 1 0 1
DIRH=% 1 1 0 0 0 0 0 0
8. n figura 1 se prezint un afiaj cu 7 segmente i conexiunile sale la BS 2. Scriei un program prin care afiai cifrele
de la 0 la 9 la interval de o secund. Prezentai dou variante de program !
Program 1
'{$STAMP BS2}
'{$PBASIC 2.5}
DEBUG "Program Running!"
OUTH = %00000000 ' OUTH initialized to low.
DIRH = %11111111 ' Set P8-P15 to all output-low.
' Digit:
' BAFG.CDE
OUTH = %11100111 ' 0
PAUSE 1000
OUTH = %10000100 ' 1
PAUSE 1000
OUTH = %11010011 ' 2
PAUSE 1000
OUTH = %11010110 ' 3
PAUSE 1000
OUTH = %10110100 ' 4
PAUSE 1000
OUTH = %01110110 ' 5
PAUSE 1000
OUTH = %01110111 ' 6
PAUSE 1000
OUTH = %11000100 ' 7
PAUSE 1000
OUTH = %11110111 ' 8
PAUSE 1000
OUTH = %11110110 ' 9
PAUSE 1000
DIRH = %00000000 ' I/O pins to input,
' segments off.
END
program 2
'{$STAMP BS2}
'{$PBASIC 2.5}
index VAR Nib
OUTH = %00000000
DIRH = %11111111
DEBUG "index OUTH ", CR,
"----- --------", CR
FOR index = 0 TO 9
LOOKUP index, [ %11100111, %10000100, %11010011,
%11010110, %10110100, %01110110,
%01110111, %11000100, %11110111, %11110110 ], OUTH
DEBUG " ", DEC2 index, " ", BIN8 OUTH, CR
PAUSE 1000
NEXT
DIRH = %00000000
END
9. Scriei......................................... ntr-o bucl care se repet continuu pe afiajul cu 7 segmente din figura 1. Facei
n aa fel nct afiarea unei litere s dureze 0,5 secunde. Se va folosi directiva CON i comanda LOOKUP..
Programul de mai jos scrie: FISH CHIPS And dIP!!!!!
'{$STAMP BS2}
'{$PBASIC 2.5}
' Patterns of 7-Segment Display to create letters
A CON %11110101
C CON %01100011
d CON %10010111
F CON %01110001
H CON %10110101
I CON %00100001
n CON %00010101
P CON %11110001
S CON %01110110
space CON %00000000
OUTH = %00000000 ' All off to start
DIRH = %11111111 ' All LEDs must be outputs
index VAR Byte ' 19 chars in message
DO
DEBUG "index OUTH ", CR,
"----- --------", CR
FOR index = 0 TO 18 ' 19 chars in message
LOOKUP index, [ F, I, S, H, space, C, H, I, P, S, space,
A, n, d, space, d, I, P, space ], OUTH
DEBUG " ", DEC2 index, " ", BIN8 OUTH, CR
PAUSE 500 ' 500 ms between letters
NEXT
LOOP
10. Desenai schema unui fotorezistor n circuit RC-time , conectat la P7. Scriei programul prin care afiai nivelul de
iluminare !
'{$STAMP BS2}
'{$PBASIC 2.5}
DO
LOOP
Exerciii i probleme ROBOTICS .
Referine Ch.4 pg.123
1. Scriei un program prin care Boe-Bot (cu servo dreapta conectat la P13 i stnga la P12 ) s mearg o secund
nainte. Se consider c interpretarea codurilor comenzilor dintr-o bucl dureaz 1,4 ms. Justificai prin calcule numrul
de bucle pentru o secund !
X VAR BYTE
FOR counter = 1 TO 41
PULSOUT 13, 650 dureaza 1.7 ms (850 *2us)
PULSOUT 12, 850 dureaza 1.3 ms (650 *2us)
PAUSE 20 dureaza 20 ms
NEXT dureaza 1.4ms sa execute bucla
1.7+1.3+20+1.4 = 24.4 ms
1000/24.4= 40.9 (41)
2. Precizai care sunt cele 6 tipuri de micri (direcii ) pe care le poate face robotul Boe-Bot (cu servo dreapta
conectat la P13 i stnga la P12 ) , specificnd i comenzile utilizate . (ex. pivotare stnga PULSOUT 13, 650; PULSOUT
12, 750 ). Scriei codul subrutinelor de micare timp de 3 secunde pentru cele 6 direcii ! Se consider c interpretarea
comenzilor dintr-o bucl dureaz 1,4 ms.
X VAR BYTE
Mers fata:
FOR X = 1 TO 123 ' ruleaza timp de 3 secunde
PULSOUT 12, 850 1.7ms
PULSOUT 13, 650 1.3ms
PAUSE 20 20ms
NEXT 1.4ms
1.7+1.3+20+1.4=24.4ms
3000/24.4 =122.95
Mers inapoi:
FOR x = 1 TO 123 ' ruleaza timp de 3 secunde
PULSOUT 12, 650 1.3ms
PULSOUT 13, 850 1.7ms
PAUSE 20 20ms
NEXT 1.4ms
1.7+1.3+20+1.4=24.4ms
3000/24.4 =122.95
RETURN
Pivotare stanga:
FOR x = 1 TO 124 ' ruleaza timp de 3 secunde
PULSOUT 12, 750 1.5ms
PULSOUT 13, 650 1.3ms
PAUSE 20 20ms
NEXT 1.4ms
1.5+1.3+20+1.4=24.2ms
3000/24.2 =123.96
Pivotare dreapta:
FOR x = 1 TO 122 ' ruleaza timp de 3 secunde
PULSOUT 12, 850 1.7ms
PULSOUT 13, 750 1.5ms
PAUSE 20 20ms
NEXT 1.4ms
1.7+1.5+20+1.4=24.6ms
3000/24.6 =121.95
Rotatie stanga:
FOR x = 1 TO 125 ' ruleaza timp de 3 secunde
PULSOUT 12, 650 1.3ms
PULSOUT 13, 650 1.3ms
PAUSE 20 20ms
NEXT 1.4ms
1.3+1.3+20+1.4=24ms
3000/24 =125
Rotatie dreapta:
FOR x = 1 TO 121 ' ruleaza timp de 3 secunde
PULSOUT 12, 850 1.7ms
PULSOUT 13, 850 1.7ms
PAUSE 20 20ms
NEXT 1.4ms
1.7+1.7+20+1.4=24.8ms
3000/24.8 =120.96
3. Se consider c pentru a se roti dreapta cu 180 de grade Boe-Bot-ul are nevoie de 48 de impulsuri . Scriei
subrutinele prin care se rotete cu 15, 45, 60 respectiv 120 grade ! Scriei un program prin care robotul parcurge un
triunghi echilateral cu latura de 20cm (o secund ).
regula de 3 simpla...
180 grade .... 48 impulsuri
15 grade .... x impulsuri
----------------------------------------------------------------------------------------------------------
X VAR BYTE
rotire15grade:
FOR X = 1 TO 4
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
rotire45grade:
FOR X = 1 TO 12
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
rotire60grade:
FOR X = 1 TO 16
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
rotire120grade:
FOR X = 1 TO 32
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
x VAR Word
GOSUB Mers
GOSUB rotire60grade
GOSUB Mers
GOSUB rotire60grade
GOSUB Mers
GOSUB rotire60grade
END
Mers:
FOR x= 1 TO 41
PULSOUT 13, 650 dureaza 1.7 ms (850 *2us)
PULSOUT 12, 850 dureaza 1.3 ms (650 *2us)
PAUSE 20 dureaza 20 ms
NEXT dureaza 1.4ms sa execute bucla
RETURN
1.7+1.3+20+1.4 = 24.4 ms
1000/24.4= 40.9
4. Scriei o subrutin n care Boe-Botul merge nainte o secund pivoteaz stnga cu ramp i continu s mearg n
linie dreapt 3 secunde.
X VAR WORD
FOR X = 1 TO 41 'inainte o secunda... din nou... din exercitiu 1...
PULSOUT 12, 850
PULSOUT 13, 650
PAUSE 20
NEXT
FOR X = 750 TO 650 STEP -1 'pivotare stanga cu rampa
PULSOUT 13, X
PULSOUT 12, 750
PAUSE 20
NEXT
FOR X = 1 TO 123 'inainte 3 secunde
PULSOUT 12, 850
PULSOUT 13, 650
PAUSE 20
NEXT
RETURN
END
5. Date iniiale : Servomotor stnga conectat la P12, servomotor dreapta la P13, difuzor piezoelectric conectat la
P0.
Pseudocodul programulu este :
- Emite un sunet cu frecvena de 1 KHz i durata de 1 sec.
- Pornete nainte, n ramp cu acceleraia minim,
- Emite un sunet de frecven 2KHz i durat 0,5 secunde.
- merge n palier 3 secunde,
-frneaz cu acceleraie dubl (negativ)
- St 1 secund ,
- pornete napoi cu profilul de vitez de mers nainte,
- Semnalizeaz sfritul cursei cu un semnal de 1KHz micsat cu 500 Hz cu durata de 1,5 secunde.
Scriei codul programului cu comentarii.
X VAR BYTE
FREQOUT 0, 1000, 1000
FOR X = 0 TO 100 'inainte rampa
PULSOUT 12, 750 + X
PULSOUT 13, 750 -X
PAUSE 20
NEXT
FREQOUT 0 500 2000
FOR X = 1 TO 123 inainte 3 secunde...
PULSOUT 12, 850
PULSOUT 13, 650
PAUSE 20
NEXT
FOR X = 100 TO 0 STEP -2 'frana cu acceleratie dubla
PULSOUT 12, 750 + X
PULSOUT 13, 750 -X
PAUSE 20
NEXT
PAUSE 1000 'freaca menta 1 secunda
FOR X = 0 TO 100 STEP 2 'spate cu acceleratie dubla
PULSOUT 12, 750 - X
PULSOUT 13, 750 +X
PAUSE 20
NEXT
FOR X = 1 TO 123 'spate 3 secunde...
PULSOUT 12, 650
PULSOUT 13, 850
PAUSE 20
NEXT
FOR X = 100 TO 0 STEP -1 'frana cu acceleratie normala
PULSOUT 12, 750 - X
PULSOUT 13, 750 +X
PAUSE 20
NEXT
FREQOUT 0 1500 1000 500 'semnalizeaza sfarsitul cursei'
END
a)
b) DO
DEBUG "Stanga: ", INs 'trebe sa schimbi INs cu ce pin zice ca ii la stanga... de ex IN3.. cu INd la fel
DEBUG "Dreapta: ", INd , CR
PAUSE 50
LOOP
END
c)
X VAR BYTE
DO
IF (INs = 0) AND (INd = 0) THEN 'ambele intuneric: inapoi, dupaia stanga, si inca o data stanga....
FOR X = 1 TO 41 'inapoi o secunda
PULSOUT 12, 650
PULSOUT 13, 850
PAUSE 20
NEXT
FOR X = 1 TO 25 'rotire 90 grade spre stanga
PULSOUT 13, 650
PULSOUT 12,650
PAUSE 20
NEXT
FOR X = 1 TO 25 'rotire 90 grade spre stanga
PULSOUT 13, 650
PULSOUT 12, 650
PAUSE 20
NEXT
ELSEIF (INs = 1) AND (INd = 0) THEN 'dreapta intuneric: mergi in stanga
PULSOUT 12, 650
PULSOUT 13, 650
PAUSE 20
ELSEIF (INs = 0) AND (INd = 1) THEN 'stanga intuneric: mergi dreapta
PULSOUT 12, 850
PULSOUT 13, 850
PAUSE 20
ELSE 'ambele lumina: merge inainte
PULSOUT 12, 850
PULSOUT 13, 650
PAUSE 20
ENDIF
LOOP
END
Referine Ch.6 pg.203
a)
b) DO
DEBUG "Stanga: ", INs 'trebe sa schimbi INs cu ce pin zice ca ii la stanga... de ex IN3.. cu INd la fel
DEBUG "Dreapta: ", INd , CR
PAUSE 50
LOOP
END
c)
DO
IF (INs = 1) AND (INd = 1) THEN 'ambele lumina: sta pe loc
PULSOUT 12, 750
PULSOUT 13, 750
PAUSE 20
ELSEIF (INs = 0) AND (INd = 1) THEN 'dreapta intuneric: mergi in stanga
PULSOUT 12, 650
PULSOUT 13, 650
PAUSE 20
ELSEIF (INs = 1) AND (INd = 0) THEN 'stanga intuneric: mergi dreapta
PULSOUT 12, 850
PULSOUT 13, 850
PAUSE 20
ELSE 'ambele intuneric: merge inainte
PULSOUT 12, 850
PULSOUT 13, 650
PAUSE 20
ENDIF
LOOP
END
Referine Ch.6 pg.205
a)
b)
a)
b)
a)
b)
irL VAR BIT
irR VAR BIT
DO
FREQOUT 2, 1, 38500
irL = IN3
FREQOUT 4, 1, 38500
irR = IN5
DEBUG "Stanga: ", irL
DEBUG " Dreapta: ", irR, CR
PAUSE 50
LOOP
c)