Admira Husić
/
LV4_Grupa7_Tim004_Z4
LV4_grupa7_Tim004_z4_AmarBasic_AdmiraHusic
main.cpp@0:9842b760e5d1, 2015-03-26 (annotated)
- Committer:
- pai2015admirahusic
- Date:
- Thu Mar 26 20:14:47 2015 +0000
- Revision:
- 0:9842b760e5d1
LV4_grupa7_Tim004_z4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pai2015admirahusic | 0:9842b760e5d1 | 1 | #include <math.h> |
pai2015admirahusic | 0:9842b760e5d1 | 2 | |
pai2015admirahusic | 0:9842b760e5d1 | 3 | #include "mbed.h" |
pai2015admirahusic | 0:9842b760e5d1 | 4 | #define dp23 P0_0 |
pai2015admirahusic | 0:9842b760e5d1 | 5 | |
pai2015admirahusic | 0:9842b760e5d1 | 6 | |
pai2015admirahusic | 0:9842b760e5d1 | 7 | int izlazi[]= {64,121,36,48,25,18,2,120,0,16}; |
pai2015admirahusic | 0:9842b760e5d1 | 8 | BusOut ledovi(dp26, dp27, dp5, dp6, dp28, dp1, dp2); |
pai2015admirahusic | 0:9842b760e5d1 | 9 | BusOut ukljuci(dp23,dp24,dp25); |
pai2015admirahusic | 0:9842b760e5d1 | 10 | int ukljucicifru[3]= {3,5,6}; |
pai2015admirahusic | 0:9842b760e5d1 | 11 | |
pai2015admirahusic | 0:9842b760e5d1 | 12 | BusOut tacka(dp4); |
pai2015admirahusic | 0:9842b760e5d1 | 13 | DigitalOut enable(dp14); |
pai2015admirahusic | 0:9842b760e5d1 | 14 | AnalogIn napon(dp9); |
pai2015admirahusic | 0:9842b760e5d1 | 15 | float max=1.8; |
pai2015admirahusic | 0:9842b760e5d1 | 16 | float min=0.3; |
pai2015admirahusic | 0:9842b760e5d1 | 17 | int cifre[3]= {127,127,127}; |
pai2015admirahusic | 0:9842b760e5d1 | 18 | float predotpor=1000; |
pai2015admirahusic | 0:9842b760e5d1 | 19 | |
pai2015admirahusic | 0:9842b760e5d1 | 20 | void osvjezi(int displej) |
pai2015admirahusic | 0:9842b760e5d1 | 21 | { |
pai2015admirahusic | 0:9842b760e5d1 | 22 | int i=0; |
pai2015admirahusic | 0:9842b760e5d1 | 23 | while(i!=3) { |
pai2015admirahusic | 0:9842b760e5d1 | 24 | |
pai2015admirahusic | 0:9842b760e5d1 | 25 | |
pai2015admirahusic | 0:9842b760e5d1 | 26 | cifre[i]=displej%10; |
pai2015admirahusic | 0:9842b760e5d1 | 27 | displej/=10; |
pai2015admirahusic | 0:9842b760e5d1 | 28 | ledovi=izlazi[cifre[i]]; |
pai2015admirahusic | 0:9842b760e5d1 | 29 | ukljuci=ukljucicifru[i]; |
pai2015admirahusic | 0:9842b760e5d1 | 30 | if(i==1) tacka=0; |
pai2015admirahusic | 0:9842b760e5d1 | 31 | else tacka=1; |
pai2015admirahusic | 0:9842b760e5d1 | 32 | i++; |
pai2015admirahusic | 0:9842b760e5d1 | 33 | wait(0.010 / 3); |
pai2015admirahusic | 0:9842b760e5d1 | 34 | ledovi=255; |
pai2015admirahusic | 0:9842b760e5d1 | 35 | } |
pai2015admirahusic | 0:9842b760e5d1 | 36 | } |
pai2015admirahusic | 0:9842b760e5d1 | 37 | |
pai2015admirahusic | 0:9842b760e5d1 | 38 | |
pai2015admirahusic | 0:9842b760e5d1 | 39 | float izracunajotpor(float temp) |
pai2015admirahusic | 0:9842b760e5d1 | 40 | { |
pai2015admirahusic | 0:9842b760e5d1 | 41 | float R=1000; |
pai2015admirahusic | 0:9842b760e5d1 | 42 | float B=3400; |
pai2015admirahusic | 0:9842b760e5d1 | 43 | float T=298.15; |
pai2015admirahusic | 0:9842b760e5d1 | 44 | return (R*exp(B*(-1/T+1/temp))); |
pai2015admirahusic | 0:9842b760e5d1 | 45 | } |
pai2015admirahusic | 0:9842b760e5d1 | 46 | |
pai2015admirahusic | 0:9842b760e5d1 | 47 | float izracunajtemp(float otpor) |
pai2015admirahusic | 0:9842b760e5d1 | 48 | { |
pai2015admirahusic | 0:9842b760e5d1 | 49 | float R=1000; |
pai2015admirahusic | 0:9842b760e5d1 | 50 | float B=3400; |
pai2015admirahusic | 0:9842b760e5d1 | 51 | float T=298.15; |
pai2015admirahusic | 0:9842b760e5d1 | 52 | return B /(log(otpor/R) + B/T)-273.15; |
pai2015admirahusic | 0:9842b760e5d1 | 53 | // return (1/(log(otpor/R)/B-1/T)); |
pai2015admirahusic | 0:9842b760e5d1 | 54 | } |
pai2015admirahusic | 0:9842b760e5d1 | 55 | |
pai2015admirahusic | 0:9842b760e5d1 | 56 | int main() |
pai2015admirahusic | 0:9842b760e5d1 | 57 | { |
pai2015admirahusic | 0:9842b760e5d1 | 58 | int brojac = 0; |
pai2015admirahusic | 0:9842b760e5d1 | 59 | float mintemp; |
pai2015admirahusic | 0:9842b760e5d1 | 60 | float maxtemp; |
pai2015admirahusic | 0:9842b760e5d1 | 61 | float minotpor=izracunajotpor(mintemp); |
pai2015admirahusic | 0:9842b760e5d1 | 62 | float maxotpor=izracunajotpor(maxtemp); |
pai2015admirahusic | 0:9842b760e5d1 | 63 | float min=minotpor/(predotpor+minotpor)*3.3; |
pai2015admirahusic | 0:9842b760e5d1 | 64 | float max=maxotpor/(predotpor+maxotpor)*3.3; |
pai2015admirahusic | 0:9842b760e5d1 | 65 | enable=1; |
pai2015admirahusic | 0:9842b760e5d1 | 66 | int displej=0; |
pai2015admirahusic | 0:9842b760e5d1 | 67 | tacka=1; |
pai2015admirahusic | 0:9842b760e5d1 | 68 | float otpor=0; |
pai2015admirahusic | 0:9842b760e5d1 | 69 | while(1) { |
pai2015admirahusic | 0:9842b760e5d1 | 70 | //otpor=(int)((napon-min)/(max-min)*(maxotpor-minotpor)*10); |
pai2015admirahusic | 0:9842b760e5d1 | 71 | if(brojac%100 == 0) { otpor=3.3*napon*predotpor / (3.3 - 3.3*napon);; |
pai2015admirahusic | 0:9842b760e5d1 | 72 | osvjezi((int)(izracunajtemp(otpor)*10));} |
pai2015admirahusic | 0:9842b760e5d1 | 73 | |
pai2015admirahusic | 0:9842b760e5d1 | 74 | brojac++; |
pai2015admirahusic | 0:9842b760e5d1 | 75 | } |
pai2015admirahusic | 0:9842b760e5d1 | 76 | } |
pai2015admirahusic | 0:9842b760e5d1 | 77 | |
pai2015admirahusic | 0:9842b760e5d1 | 78 | |
pai2015admirahusic | 0:9842b760e5d1 | 79 | |
pai2015admirahusic | 0:9842b760e5d1 | 80 |