Ivan Novak / Mbed 2 deprecated sveukupno

Dependencies:   Projekt TextLCD mbed uStep

Committer:
inovak1
Date:
Sat Jan 21 09:30:52 2017 +0000
Revision:
0:2523ee75e346
PURS project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inovak1 0:2523ee75e346 1 #include "mbed.h"
inovak1 0:2523ee75e346 2 #include "uStep.h"
inovak1 0:2523ee75e346 3 #include "TextLCD.h"
inovak1 0:2523ee75e346 4 #include "Projekt.h"
inovak1 0:2523ee75e346 5 #define THERMISTORNOMINAL 100000
inovak1 0:2523ee75e346 6 #define TEMPERATURENOMINAL 25
inovak1 0:2523ee75e346 7 #define BCOEFFICIENT 3950
inovak1 0:2523ee75e346 8 #define SERIESRESISTOR 10000
inovak1 0:2523ee75e346 9 TextLCD lcd(PTE0, PTE1, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
inovak1 0:2523ee75e346 10 Ticker ticki;
inovak1 0:2523ee75e346 11 AnalogIn Thermistor(A5);
inovak1 0:2523ee75e346 12 DigitalIn in0(PTB0);
inovak1 0:2523ee75e346 13 DigitalIn in1(PTB1);
inovak1 0:2523ee75e346 14 DigitalIn in2(PTB2);
inovak1 0:2523ee75e346 15 DigitalIn in3(PTD7);
inovak1 0:2523ee75e346 16 DigitalIn buttondown(PTE30);
inovak1 0:2523ee75e346 17 DigitalIn buttonup(PTC2);
inovak1 0:2523ee75e346 18 DigitalOut andrijinkriz1(PTE29);
inovak1 0:2523ee75e346 19 DigitalOut andrijinkriz2(PTE23);
inovak1 0:2523ee75e346 20
inovak1 0:2523ee75e346 21 uStep motor(PTB8, PTB9,PTB10, PTB11);
inovak1 0:2523ee75e346 22
inovak1 0:2523ee75e346 23 float get_temperature()
inovak1 0:2523ee75e346 24 {
inovak1 0:2523ee75e346 25 float temperature, resistance;
inovak1 0:2523ee75e346 26 float steinhart;
inovak1 0:2523ee75e346 27 int a;
inovak1 0:2523ee75e346 28
inovak1 0:2523ee75e346 29 a = Thermistor.read_u16(); // Read 16bit Analog value
inovak1 0:2523ee75e346 30
inovak1 0:2523ee75e346 31
inovak1 0:2523ee75e346 32 /* Calculate the resistance of the thermistor from analog votage read. */
inovak1 0:2523ee75e346 33 resistance = (float) SERIESRESISTOR / ((65536.0 / a) - 1);
inovak1 0:2523ee75e346 34 steinhart = resistance / THERMISTORNOMINAL; // (R/Ro)
inovak1 0:2523ee75e346 35 steinhart = log(steinhart); // ln(R/Ro)
inovak1 0:2523ee75e346 36 steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
inovak1 0:2523ee75e346 37 steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
inovak1 0:2523ee75e346 38 steinhart = 1.0 / steinhart; // Invert
inovak1 0:2523ee75e346 39 temperature = steinhart - 273.15; // convert to C
inovak1 0:2523ee75e346 40
inovak1 0:2523ee75e346 41 return temperature;
inovak1 0:2523ee75e346 42 }
inovak1 0:2523ee75e346 43
inovak1 0:2523ee75e346 44
inovak1 0:2523ee75e346 45
inovak1 0:2523ee75e346 46 void task1(void)
inovak1 0:2523ee75e346 47 {
inovak1 0:2523ee75e346 48 andrijinkriz1=!andrijinkriz1;
inovak1 0:2523ee75e346 49 andrijinkriz2=!andrijinkriz1;
inovak1 0:2523ee75e346 50 }
inovak1 0:2523ee75e346 51
inovak1 0:2523ee75e346 52
inovak1 0:2523ee75e346 53 float step_brzina = 0.002;
inovak1 0:2523ee75e346 54
inovak1 0:2523ee75e346 55 int numstep = 512 ;
inovak1 0:2523ee75e346 56
inovak1 0:2523ee75e346 57 int main()
inovak1 0:2523ee75e346 58 {
inovak1 0:2523ee75e346 59 Projekt rasvjeta (D9,D8,D2,A3);
inovak1 0:2523ee75e346 60 while (1) {
inovak1 0:2523ee75e346 61 if(buttondown==0 && !motor.isRunning()) {
inovak1 0:2523ee75e346 62 ticki.attach(&task1,0.5);
inovak1 0:2523ee75e346 63 motor.step(numstep/4,0,step_brzina);
inovak1 0:2523ee75e346 64
inovak1 0:2523ee75e346 65
inovak1 0:2523ee75e346 66 }
inovak1 0:2523ee75e346 67 if(buttonup==0 && !motor.isRunning()) {
inovak1 0:2523ee75e346 68
inovak1 0:2523ee75e346 69 motor.step(numstep/4,1,step_brzina);
inovak1 0:2523ee75e346 70 ticki.detach();
inovak1 0:2523ee75e346 71 andrijinkriz1=0;
inovak1 0:2523ee75e346 72 andrijinkriz2=0;
inovak1 0:2523ee75e346 73
inovak1 0:2523ee75e346 74 }
inovak1 0:2523ee75e346 75
inovak1 0:2523ee75e346 76 float value0,value1,value2,value3;
inovak1 0:2523ee75e346 77
inovak1 0:2523ee75e346 78 value0 = in0;
inovak1 0:2523ee75e346 79 value1 = in1;
inovak1 0:2523ee75e346 80 value2 = in2;
inovak1 0:2523ee75e346 81 value3 = in3;
inovak1 0:2523ee75e346 82
inovak1 0:2523ee75e346 83
inovak1 0:2523ee75e346 84 if(value0==1) {
inovak1 0:2523ee75e346 85 lcd.cls();
inovak1 0:2523ee75e346 86 lcd.printf("OPREZ SKLISKA CESTA\n");
inovak1 0:2523ee75e346 87 }
inovak1 0:2523ee75e346 88 if(value1==1) {
inovak1 0:2523ee75e346 89 lcd.cls();
inovak1 0:2523ee75e346 90 lcd.printf("NESRECA USPORITE\n");
inovak1 0:2523ee75e346 91 }
inovak1 0:2523ee75e346 92 if(value2==1) {
inovak1 0:2523ee75e346 93 lcd.cls();
inovak1 0:2523ee75e346 94 lcd.printf("DRZITE RAZMAK KEEP DISTANCE \n");
inovak1 0:2523ee75e346 95
inovak1 0:2523ee75e346 96 }
inovak1 0:2523ee75e346 97 if(value3==1) {
inovak1 0:2523ee75e346 98 lcd.cls();
inovak1 0:2523ee75e346 99 lcd.printf("RADOVI NA CESTI \n");
inovak1 0:2523ee75e346 100
inovak1 0:2523ee75e346 101 }
inovak1 0:2523ee75e346 102 if(value0==0&&value1==0&&value2==0&&value3==0) {
inovak1 0:2523ee75e346 103 lcd.cls();
inovak1 0:2523ee75e346 104
inovak1 0:2523ee75e346 105 lcd.printf(" %.1f *C",get_temperature());
inovak1 0:2523ee75e346 106 }
inovak1 0:2523ee75e346 107
inovak1 0:2523ee75e346 108
inovak1 0:2523ee75e346 109 }
inovak1 0:2523ee75e346 110
inovak1 0:2523ee75e346 111 }