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

Dependencies:   mbed TextLCD

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

Files at this revision

API Documentation at this revision

Comitter:
jpapratov
Date:
Sat Nov 16 13:15:11 2019 +0000
Parent:
0:34c1f05d8d2c
Commit message:
uC

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 34c1f05d8d2c -r 024485d1c677 main.cpp
--- a/main.cpp	Sat Nov 16 10:14:58 2019 +0000
+++ b/main.cpp	Sat Nov 16 13:15:11 2019 +0000
@@ -3,36 +3,48 @@
 #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;
+public:
+    LED_interrupt(PinName tipkalo_pin, PinName led_pin) : _tipkalo(tipkalo_pin), _stanje(led_pin)
+    {
+        _tipkalo.fall(callback(this, &LED_interrupt::promjena));
+        off();
+    };
+
+    void off(void)
+    {
+        _stanje = 1;
+    };
+
+    void promjena(void)
+    {
+        _stanje = !_stanje;
+    };
+
+private:
+    DigitalOut _stanje;
+    InterruptIn _tipkalo;
+
 };
+*/
+DigitalOut led(LED1);
+Timer debounce;
 
+void flip()
+{
+    if (debounce.read_ms()>200)
+        led = !led;
+    debounce.reset();
+}
 
 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)
+InterruptIn _tipkalo(p12);
 
 void calc()
 {
@@ -53,9 +65,11 @@
     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(p12,LED1);
+    debounce.start();
+    _tipkalo.rise(&flip);
 
-        LED_interrupt(p15,p16);
+    while(true) {
 
         mpu.finalAngle(angle);
         temp=mpu.getTemp();
@@ -63,13 +77,13 @@
 
         //lcd.cls();
         //lcd.locate(0,1);
-        pc.printf("\npitch: %.4f", angle[0]);
+        pc.printf("\n\rpitch: %.4f", angle[0]);
 
         //lcd.locate(0,0);
-        pc.printf("\nroll: %.4f", angle[1]);
+        pc.printf("\n\rroll: %.4f", angle[1]);
 
-        pc.printf("\nTemp: %.4f",temp);
-        pc.printf("\nDistance: %f mm\r", distance);
+        pc.printf("\n\rTemp: %.4f",temp);
+        pc.printf("\n\rDistance: %f mm\r", distance);
 
         wait(1);