Programsko rješenje za uređaj koji mjeri nagib i udaljenost.

Dependencies:   mbed TextLCD

/https:/os.mbed.com/media/uploads/jpapratov/skiron_ii.jpeg

Committer:
jpapratov
Date:
Sat Nov 16 13:15:11 2019 +0000
Revision:
1:024485d1c677
Parent:
0:34c1f05d8d2c
uC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jpapratov 0:34c1f05d8d2c 1 #include "mbed.h"
jpapratov 0:34c1f05d8d2c 2 #include "MPU.h"
jpapratov 0:34c1f05d8d2c 3 #include "HCSR04.h"
jpapratov 0:34c1f05d8d2c 4 #include "TextLCD.h"
jpapratov 0:34c1f05d8d2c 5
jpapratov 1:024485d1c677 6 /*
jpapratov 0:34c1f05d8d2c 7 class LED_interrupt
jpapratov 0:34c1f05d8d2c 8 {
jpapratov 0:34c1f05d8d2c 9
jpapratov 1:024485d1c677 10 public:
jpapratov 1:024485d1c677 11 LED_interrupt(PinName tipkalo_pin, PinName led_pin) : _tipkalo(tipkalo_pin), _stanje(led_pin)
jpapratov 1:024485d1c677 12 {
jpapratov 1:024485d1c677 13 _tipkalo.fall(callback(this, &LED_interrupt::promjena));
jpapratov 1:024485d1c677 14 off();
jpapratov 1:024485d1c677 15 };
jpapratov 1:024485d1c677 16
jpapratov 1:024485d1c677 17 void off(void)
jpapratov 1:024485d1c677 18 {
jpapratov 1:024485d1c677 19 _stanje = 1;
jpapratov 1:024485d1c677 20 };
jpapratov 1:024485d1c677 21
jpapratov 1:024485d1c677 22 void promjena(void)
jpapratov 1:024485d1c677 23 {
jpapratov 1:024485d1c677 24 _stanje = !_stanje;
jpapratov 1:024485d1c677 25 };
jpapratov 1:024485d1c677 26
jpapratov 1:024485d1c677 27 private:
jpapratov 1:024485d1c677 28 DigitalOut _stanje;
jpapratov 1:024485d1c677 29 InterruptIn _tipkalo;
jpapratov 1:024485d1c677 30
jpapratov 0:34c1f05d8d2c 31 };
jpapratov 1:024485d1c677 32 */
jpapratov 1:024485d1c677 33 DigitalOut led(LED1);
jpapratov 1:024485d1c677 34 Timer debounce;
jpapratov 0:34c1f05d8d2c 35
jpapratov 1:024485d1c677 36 void flip()
jpapratov 1:024485d1c677 37 {
jpapratov 1:024485d1c677 38 if (debounce.read_ms()>200)
jpapratov 1:024485d1c677 39 led = !led;
jpapratov 1:024485d1c677 40 debounce.reset();
jpapratov 1:024485d1c677 41 }
jpapratov 0:34c1f05d8d2c 42
jpapratov 0:34c1f05d8d2c 43 Serial pc(USBTX,USBRX);
jpapratov 0:34c1f05d8d2c 44 Senzor mpu(p9,p10); // žiroskop (Sda, Scl)
jpapratov 0:34c1f05d8d2c 45 HCSR04 sensor(p7,p8); // ultrazvučni senzor (trig, echo)
jpapratov 0:34c1f05d8d2c 46 TextLCD lcd(p15, p16, p17, p18, p19, p20, TextLCD::LCD16x2); // display (rs, e, d4-d7)
jpapratov 1:024485d1c677 47 InterruptIn _tipkalo(p12);
jpapratov 0:34c1f05d8d2c 48
jpapratov 0:34c1f05d8d2c 49 void calc()
jpapratov 0:34c1f05d8d2c 50 {
jpapratov 0:34c1f05d8d2c 51 sensor.startMeasurement();
jpapratov 0:34c1f05d8d2c 52 }
jpapratov 0:34c1f05d8d2c 53
jpapratov 0:34c1f05d8d2c 54 int main()
jpapratov 0:34c1f05d8d2c 55 {
jpapratov 0:34c1f05d8d2c 56 float angle[3] = {0, 0, 0};
jpapratov 0:34c1f05d8d2c 57 float temp;
jpapratov 0:34c1f05d8d2c 58 float sampleTime = 0.5;
jpapratov 0:34c1f05d8d2c 59 Ticker ticker;
jpapratov 0:34c1f05d8d2c 60 float distance;
jpapratov 0:34c1f05d8d2c 61
jpapratov 0:34c1f05d8d2c 62 pc.printf("\nPocnimo\n");
jpapratov 0:34c1f05d8d2c 63
jpapratov 0:34c1f05d8d2c 64 sensor.setRanges(2, 400);
jpapratov 0:34c1f05d8d2c 65 pc.printf("Minimum sensor range = %g cm\n\rMaximum sensor range = %g cm\n\r", sensor.getMinRange(), sensor.getMaxRange());
jpapratov 0:34c1f05d8d2c 66 ticker.attach(&calc, sampleTime);
jpapratov 0:34c1f05d8d2c 67
jpapratov 1:024485d1c677 68 //LED_interrupt(p12,LED1);
jpapratov 1:024485d1c677 69 debounce.start();
jpapratov 1:024485d1c677 70 _tipkalo.rise(&flip);
jpapratov 0:34c1f05d8d2c 71
jpapratov 1:024485d1c677 72 while(true) {
jpapratov 0:34c1f05d8d2c 73
jpapratov 0:34c1f05d8d2c 74 mpu.finalAngle(angle);
jpapratov 0:34c1f05d8d2c 75 temp=mpu.getTemp();
jpapratov 0:34c1f05d8d2c 76 distance = sensor.getDistance_mm();
jpapratov 0:34c1f05d8d2c 77
jpapratov 0:34c1f05d8d2c 78 //lcd.cls();
jpapratov 0:34c1f05d8d2c 79 //lcd.locate(0,1);
jpapratov 1:024485d1c677 80 pc.printf("\n\rpitch: %.4f", angle[0]);
jpapratov 0:34c1f05d8d2c 81
jpapratov 0:34c1f05d8d2c 82 //lcd.locate(0,0);
jpapratov 1:024485d1c677 83 pc.printf("\n\rroll: %.4f", angle[1]);
jpapratov 0:34c1f05d8d2c 84
jpapratov 1:024485d1c677 85 pc.printf("\n\rTemp: %.4f",temp);
jpapratov 1:024485d1c677 86 pc.printf("\n\rDistance: %f mm\r", distance);
jpapratov 0:34c1f05d8d2c 87
jpapratov 0:34c1f05d8d2c 88 wait(1);
jpapratov 0:34c1f05d8d2c 89
jpapratov 0:34c1f05d8d2c 90 }
jpapratov 0:34c1f05d8d2c 91 }