Tehničko veleučilište u Zagrebu Elektrotehnički odjel Mikroupravaljači, 2013. Laboratorijski zadatak br. 8

Dependencies:   mbed TextLCD

Zadatak

Sklopovsko okruženje mikroupravljača dano je prema shemi u prilogu. Pokazivač je LCD displej 16x1.

Procesna trasa je prozirna cijev na čijim krajevima su postavljeni ventilatori koji tjeraju zrak u suprotnim smjerovima. Na trasi se nalazi celuloidna loptica koja se pokreče tjerana tlakom zraka. Na podnožju trase, simetrično oko sredine smješteni su infracrveni senzori koji odsjajem detektiraju prisutnost predmeta. Loptica se pokreče po trasi naizmjeničnim pokretanje ventilatora. Dvije LEDice na izlaznim priključcima MBEDa služe za indikaciju aktivacije pojedinog senzora.

Na displeju se treba prikazati smjer kretanja loptice, te njezina linearna brzina u smjeru kretanja.

Osciloskopom treba snimiti signale uključenja ventilatora kao i signale sa infracrvenih senzora. Pokušati programski regulirati da se loptica zadržava točno na sredini trase između dva senzora.

Demonstrirati rad prototipa te objasniti napisanu programsku podršku.

Shema

/media/uploads/mdraganic/zadatak8_1.png

Dokumentacija

Committer:
jcaplic
Date:
Tue Mar 18 19:07:03 2014 +0000
Revision:
2:661d11a933ba
Parent:
1:aca0a1dbae28
asdfasdrg

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mdraganic 0:f30920c6bb40 1 #include "mbed.h"
jcaplic 2:661d11a933ba 2 #include "TextLCD.h"
mdraganic 0:f30920c6bb40 3
jcaplic 2:661d11a933ba 4 AnalogIn SenzorL(p15);
jcaplic 2:661d11a933ba 5 AnalogIn SenzorD(p16);
iistuk 1:aca0a1dbae28 6 DigitalOut led1(p5);
jcaplic 2:661d11a933ba 7 DigitalOut led2(p8);
jcaplic 2:661d11a933ba 8 DigitalOut MotorD(p10);
jcaplic 2:661d11a933ba 9 DigitalOut MotorL(p11);
jcaplic 2:661d11a933ba 10 TextLCD lcd(p25, p26, p27, p28, p29, p30);
jcaplic 2:661d11a933ba 11 /*DigitalOut led01(LED1);
jcaplic 2:661d11a933ba 12 DigitalOut led02(LED2);
jcaplic 2:661d11a933ba 13 DigitalOut led03(LED3);
jcaplic 2:661d11a933ba 14 DigitalOut led04(LED4);*/
mdraganic 0:f30920c6bb40 15
iistuk 1:aca0a1dbae28 16
mdraganic 0:f30920c6bb40 17 int main() {
jcaplic 2:661d11a933ba 18 //enum poz {L,LS,S,DS,D};
jcaplic 2:661d11a933ba 19 //poz pozicija;
jcaplic 2:661d11a933ba 20
jcaplic 2:661d11a933ba 21 lcd.cls();
jcaplic 2:661d11a933ba 22
jcaplic 2:661d11a933ba 23 /* MotorD=1;
jcaplic 2:661d11a933ba 24 MotorL=0;
jcaplic 2:661d11a933ba 25 led1=0;
jcaplic 2:661d11a933ba 26 led2=0;
jcaplic 2:661d11a933ba 27 wait(3);
jcaplic 2:661d11a933ba 28 MotorD=0;*/
jcaplic 2:661d11a933ba 29
jcaplic 2:661d11a933ba 30 //pozicija=L;
jcaplic 2:661d11a933ba 31
jcaplic 2:661d11a933ba 32
jcaplic 2:661d11a933ba 33 while(1) {
jcaplic 2:661d11a933ba 34
jcaplic 2:661d11a933ba 35 if(SenzorL>0.9) {
jcaplic 2:661d11a933ba 36 led1=1;
jcaplic 2:661d11a933ba 37 MotorD=0;
jcaplic 2:661d11a933ba 38 MotorL=1;
jcaplic 2:661d11a933ba 39 }
jcaplic 2:661d11a933ba 40 else {
jcaplic 2:661d11a933ba 41 led1=0;
jcaplic 2:661d11a933ba 42 MotorL=0;
jcaplic 2:661d11a933ba 43 }
jcaplic 2:661d11a933ba 44
jcaplic 2:661d11a933ba 45 if(SenzorD>0.9) {
jcaplic 2:661d11a933ba 46 led2=1;
jcaplic 2:661d11a933ba 47 MotorD=1;
jcaplic 2:661d11a933ba 48 MotorL=0;
jcaplic 2:661d11a933ba 49 }
jcaplic 2:661d11a933ba 50 else {
jcaplic 2:661d11a933ba 51 led2=0;
jcaplic 2:661d11a933ba 52 MotorD=0;
iistuk 1:aca0a1dbae28 53 }
jcaplic 2:661d11a933ba 54
jcaplic 2:661d11a933ba 55
jcaplic 2:661d11a933ba 56
jcaplic 2:661d11a933ba 57 /*if(SenzorL>0.9 && MotorD==1) {
jcaplic 2:661d11a933ba 58 pozicija=L;
jcaplic 2:661d11a933ba 59 }
jcaplic 2:661d11a933ba 60 if(SenzorD>0.9 && MotorL==1) {
jcaplic 2:661d11a933ba 61 pozicija=D;
jcaplic 2:661d11a933ba 62 }
jcaplic 2:661d11a933ba 63 if(SenzorD>0.9 && MotorD==0 && MotorL==0) {
jcaplic 2:661d11a933ba 64 pozicija=DS;
jcaplic 2:661d11a933ba 65 }
jcaplic 2:661d11a933ba 66 if(SenzorL>0.9 && MotorD==0 && MotorL==0) {
jcaplic 2:661d11a933ba 67 pozicija=LS;
jcaplic 2:661d11a933ba 68 }
jcaplic 2:661d11a933ba 69 if(SenzorD>0.9 && SenzorD>0.9 && MotorD==0 && MotorL==0 && pozicija!=L && pozicija!=D) {
jcaplic 2:661d11a933ba 70 pozicija=S;
jcaplic 2:661d11a933ba 71 }
jcaplic 2:661d11a933ba 72
jcaplic 2:661d11a933ba 73 if(pozicija==L || pozicija==LS) {
jcaplic 2:661d11a933ba 74 MotorD=0;
jcaplic 2:661d11a933ba 75 MotorL=1;
jcaplic 2:661d11a933ba 76 }
jcaplic 2:661d11a933ba 77
jcaplic 2:661d11a933ba 78 if(pozicija==D || pozicija==DS) {
jcaplic 2:661d11a933ba 79 MotorD=1;
jcaplic 2:661d11a933ba 80 MotorL=2;
jcaplic 2:661d11a933ba 81 }
jcaplic 2:661d11a933ba 82
jcaplic 2:661d11a933ba 83 if(pozicija==S) {
jcaplic 2:661d11a933ba 84 MotorD=0;
jcaplic 2:661d11a933ba 85 MotorL=0;
jcaplic 2:661d11a933ba 86 }
jcaplic 2:661d11a933ba 87
jcaplic 2:661d11a933ba 88 if(pozicija==L) {
jcaplic 2:661d11a933ba 89 led01=1;
jcaplic 2:661d11a933ba 90 led02=0;
jcaplic 2:661d11a933ba 91 led03=0;
jcaplic 2:661d11a933ba 92 led04=0;
jcaplic 2:661d11a933ba 93 }
jcaplic 2:661d11a933ba 94
jcaplic 2:661d11a933ba 95 if(pozicija==LS) {
jcaplic 2:661d11a933ba 96 led01=0;
jcaplic 2:661d11a933ba 97 led02=1;
jcaplic 2:661d11a933ba 98 led03=0;
jcaplic 2:661d11a933ba 99 led04=0;
jcaplic 2:661d11a933ba 100 }
jcaplic 2:661d11a933ba 101
jcaplic 2:661d11a933ba 102 if(pozicija==DS) {
jcaplic 2:661d11a933ba 103 led01=0;
jcaplic 2:661d11a933ba 104 led02=0;
jcaplic 2:661d11a933ba 105 led03=1;
jcaplic 2:661d11a933ba 106 led04=0;
jcaplic 2:661d11a933ba 107 }
jcaplic 2:661d11a933ba 108
jcaplic 2:661d11a933ba 109 if(pozicija==D) {
jcaplic 2:661d11a933ba 110 led01=0;
jcaplic 2:661d11a933ba 111 led02=0;
jcaplic 2:661d11a933ba 112 led03=0;
jcaplic 2:661d11a933ba 113 led04=1;
jcaplic 2:661d11a933ba 114 }*/
jcaplic 2:661d11a933ba 115
jcaplic 2:661d11a933ba 116
jcaplic 2:661d11a933ba 117 }
jcaplic 2:661d11a933ba 118 }
jcaplic 2:661d11a933ba 119