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

Dependencies:   mbed TextLCD

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

Revision:
0:34c1f05d8d2c
Child:
1:024485d1c677
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Nov 16 10:14:58 2019 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+#include "MPU.h"
+#include "HCSR04.h"
+#include "TextLCD.h"
+
+class LED_interrupt
+{
+
+    public:
+        LED_interrupt(PinName tipkalo_pin, PinName led_pin) : _stanje(tipkalo_pin), _tipkalo(led_pin)
+        {
+            _tipkalo.fall(callback(this, &LED_interrupt::promjena));
+            off();
+        };
+    
+        void off(void)
+        {
+            _stanje = 0;
+        };
+    
+        void promjena(void)
+        {
+            _stanje = !_stanje;
+        };
+    
+    private:
+        DigitalOut _stanje;
+        InterruptIn _tipkalo;
+};
+
+
+Serial pc(USBTX,USBRX);
+Senzor mpu(p9,p10);                                             // žiroskop (Sda, Scl)
+HCSR04 sensor(p7,p8);                                           // ultrazvučni senzor (trig, echo)
+TextLCD lcd(p15, p16, p17, p18, p19, p20, TextLCD::LCD16x2);    // display (rs, e, d4-d7)
+
+void calc()
+{
+    sensor.startMeasurement();
+}
+
+int main()
+{
+    float angle[3] = {0, 0, 0};
+    float temp;
+    float sampleTime = 0.5;
+    Ticker ticker;
+    float distance;
+
+    pc.printf("\nPocnimo\n");
+
+    sensor.setRanges(2, 400);
+    pc.printf("Minimum sensor range = %g cm\n\rMaximum sensor range = %g cm\n\r", sensor.getMinRange(), sensor.getMaxRange());
+    ticker.attach(&calc, sampleTime);
+
+    while(true) {
+
+        LED_interrupt(p15,p16);
+
+        mpu.finalAngle(angle);
+        temp=mpu.getTemp();
+        distance = sensor.getDistance_mm();
+
+        //lcd.cls();
+        //lcd.locate(0,1);
+        pc.printf("\npitch: %.4f", angle[0]);
+
+        //lcd.locate(0,0);
+        pc.printf("\nroll: %.4f", angle[1]);
+
+        pc.printf("\nTemp: %.4f",temp);
+        pc.printf("\nDistance: %f mm\r", distance);
+
+        wait(1);
+
+    }
+}
\ No newline at end of file