Der BERTL fährt vorwärts wenn einer der hinteren Knöpfe gedrückt wird und rückwärts wenn einer der vorderen gedrückt wird. Drückt man einen der Knöpfe die vorne an der Unterseite sind, dann bleibt er wieder stehen. Während der BERTL fährt, leuchten je nach Richtung die vorderen oder hinteren LEDs.

Dependencies:   mbed

Revision:
0:0672b607559c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jul 01 13:19:04 2017 +0000
@@ -0,0 +1,95 @@
+/***********************************
+name: BULME_BERTL17_automatischer_Umdreher July 1st 2017
+author: Elias Nestl, einige Codesnippets von Gottfried Enenkel   HTL BULME
+description:
+    Der BERTL fährt vorwärts wenn einer der hinteren Knöpfe gedrückt wird und rückwärts wenn einer der vorderen gedrückt wird.
+    Drückt man einen der Knöpfe die vorne an der Unterseite sind, dann bleibt er wieder stehen.
+    Während der BERTL fährt, leuchten je nach Richtung die vorderen oder hinteren LEDs.
+
+***********************************/
+#include "mbed.h"
+
+/************** DEKLARATIONEN **************/
+DigitalOut Von (P2_13);                              // Motor Spannung ab BERTL15 nötig!
+DigitalOut MotorL_EN(P1_19);                         // Enable
+DigitalOut MotorL_FORWARD(P2_14);                    // Vorwärts
+DigitalOut MotorL_REVERSE(P2_15);                    // Rückwärts
+
+DigitalOut MotorR_EN(P2_19);                         // Die Leitung führt zum Pin PO_21 am Prozessor
+DigitalOut MotorR_FORWARD(P2_21);                    // Die Leitung führt zum Pin P1_3 am Prozessor
+DigitalOut MotorR_REVERSE(P2_20);
+
+// Definition der Schalter als Eingänge
+DigitalIn TA1 (P1_23);
+DigitalIn TA2 (P1_24);
+DigitalIn TA3 (P1_25);
+DigitalIn TA4 (P1_26);
+DigitalIn TA5 (P1_27);
+DigitalIn TA6 (P1_28);
+DigitalIn TA7 (P1_30);
+DigitalIn TA8 (P1_31);
+
+// Definition der LEDS als Ausgänge
+DigitalOut LedD1 (P1_10);
+DigitalOut LedD4 (P1_12);
+DigitalOut LedD7 (P1_15);
+DigitalOut LedD9 (P1_17);
+
+void setforw(bool val);
+void setrev(bool val);
+void ledf(bool val);
+void ledb(bool val);
+
+// *************  Hauptprogramm ************
+int main()
+{
+    Von=1;                                           // Motor Spannung ein
+    wait (1.0);                                      // 1 Sekunde warten
+    MotorR_EN=MotorL_EN=1;                           // Beide Motoren enablen
+    LedD1=LedD4=LedD7=LedD9=1;                       // Alle LEDs aus
+
+    while(1) {                                       // Endlosschleife
+        if(TA1 == 0 || TA2 == 0 || TA3 == 0) {       // Vordere Tasten gedrückt
+            setforw(0);                              // Motoren vorwärts aus
+            ledf(0);                                 // Vordere LEDs aus
+            ledb(1);                                 // Hintere LEDs an
+            setrev(1);                               // Motoren rückwärts ein
+        } else if(TA4 == 0 || TA5 == 0 || TA6 == 0) {// Hintere Tasten gedrueckt
+            setrev(0);                               // Motoren rückwärts aus
+            ledb(0);                                 // Hintere LEDs aus
+            ledf(1);                                 // Vordere LEDs an
+            setforw(1);                              // Motoren vorwärts ein
+        } else if(TA7 == 0 || TA8 == 0) {
+            setforw(0);                              // Motoren vorwärts aus
+            ledf(0);                                 // Vordere LEDs aus
+            ledb(0);                                 // Hintere LEDs aus
+            setrev(0);                               // Motoren rückwärts aus
+        }
+    }
+}
+
+void setforw(bool val)                               // 0 = EIN, 1 = AUS
+{
+    MotorR_FORWARD = !val;                           // Rechter Motor vorwärts zu val
+    MotorL_FORWARD = !val;                           // Linker Motor vorwärts zu val
+}
+
+void setrev(bool val)                                // 0 = EIN, 1 = AUS
+{
+    MotorR_REVERSE = !val;                           // Rechter Motor rückwärts zu val
+    MotorL_REVERSE = !val;                           // Linker Motor rückwärts zu val
+}
+
+void ledf(bool val)                                  // Schaltet vordere LEDs zu val, 0 = EIN, 1 = AUS
+{
+    LedD1 = !val;
+    LedD4 = !val;
+}
+
+void ledb(bool val)                                  // Schaltet hintere LEDs zu val, 0 = EIN, 1 = AUS
+{
+    LedD7 = !val;
+    LedD9 = !val;
+}
+
+/**************     ENDE     **************/
\ No newline at end of file