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

Committer:
EliasN
Date:
Sat Jul 01 13:19:04 2017 +0000
Revision:
0:0672b607559c
:D

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EliasN 0:0672b607559c 1 /***********************************
EliasN 0:0672b607559c 2 name: BULME_BERTL17_automatischer_Umdreher July 1st 2017
EliasN 0:0672b607559c 3 author: Elias Nestl, einige Codesnippets von Gottfried Enenkel HTL BULME
EliasN 0:0672b607559c 4 description:
EliasN 0:0672b607559c 5 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.
EliasN 0:0672b607559c 6 Drückt man einen der Knöpfe die vorne an der Unterseite sind, dann bleibt er wieder stehen.
EliasN 0:0672b607559c 7 Während der BERTL fährt, leuchten je nach Richtung die vorderen oder hinteren LEDs.
EliasN 0:0672b607559c 8
EliasN 0:0672b607559c 9 ***********************************/
EliasN 0:0672b607559c 10 #include "mbed.h"
EliasN 0:0672b607559c 11
EliasN 0:0672b607559c 12 /************** DEKLARATIONEN **************/
EliasN 0:0672b607559c 13 DigitalOut Von (P2_13); // Motor Spannung ab BERTL15 nötig!
EliasN 0:0672b607559c 14 DigitalOut MotorL_EN(P1_19); // Enable
EliasN 0:0672b607559c 15 DigitalOut MotorL_FORWARD(P2_14); // Vorwärts
EliasN 0:0672b607559c 16 DigitalOut MotorL_REVERSE(P2_15); // Rückwärts
EliasN 0:0672b607559c 17
EliasN 0:0672b607559c 18 DigitalOut MotorR_EN(P2_19); // Die Leitung führt zum Pin PO_21 am Prozessor
EliasN 0:0672b607559c 19 DigitalOut MotorR_FORWARD(P2_21); // Die Leitung führt zum Pin P1_3 am Prozessor
EliasN 0:0672b607559c 20 DigitalOut MotorR_REVERSE(P2_20);
EliasN 0:0672b607559c 21
EliasN 0:0672b607559c 22 // Definition der Schalter als Eingänge
EliasN 0:0672b607559c 23 DigitalIn TA1 (P1_23);
EliasN 0:0672b607559c 24 DigitalIn TA2 (P1_24);
EliasN 0:0672b607559c 25 DigitalIn TA3 (P1_25);
EliasN 0:0672b607559c 26 DigitalIn TA4 (P1_26);
EliasN 0:0672b607559c 27 DigitalIn TA5 (P1_27);
EliasN 0:0672b607559c 28 DigitalIn TA6 (P1_28);
EliasN 0:0672b607559c 29 DigitalIn TA7 (P1_30);
EliasN 0:0672b607559c 30 DigitalIn TA8 (P1_31);
EliasN 0:0672b607559c 31
EliasN 0:0672b607559c 32 // Definition der LEDS als Ausgänge
EliasN 0:0672b607559c 33 DigitalOut LedD1 (P1_10);
EliasN 0:0672b607559c 34 DigitalOut LedD4 (P1_12);
EliasN 0:0672b607559c 35 DigitalOut LedD7 (P1_15);
EliasN 0:0672b607559c 36 DigitalOut LedD9 (P1_17);
EliasN 0:0672b607559c 37
EliasN 0:0672b607559c 38 void setforw(bool val);
EliasN 0:0672b607559c 39 void setrev(bool val);
EliasN 0:0672b607559c 40 void ledf(bool val);
EliasN 0:0672b607559c 41 void ledb(bool val);
EliasN 0:0672b607559c 42
EliasN 0:0672b607559c 43 // ************* Hauptprogramm ************
EliasN 0:0672b607559c 44 int main()
EliasN 0:0672b607559c 45 {
EliasN 0:0672b607559c 46 Von=1; // Motor Spannung ein
EliasN 0:0672b607559c 47 wait (1.0); // 1 Sekunde warten
EliasN 0:0672b607559c 48 MotorR_EN=MotorL_EN=1; // Beide Motoren enablen
EliasN 0:0672b607559c 49 LedD1=LedD4=LedD7=LedD9=1; // Alle LEDs aus
EliasN 0:0672b607559c 50
EliasN 0:0672b607559c 51 while(1) { // Endlosschleife
EliasN 0:0672b607559c 52 if(TA1 == 0 || TA2 == 0 || TA3 == 0) { // Vordere Tasten gedrückt
EliasN 0:0672b607559c 53 setforw(0); // Motoren vorwärts aus
EliasN 0:0672b607559c 54 ledf(0); // Vordere LEDs aus
EliasN 0:0672b607559c 55 ledb(1); // Hintere LEDs an
EliasN 0:0672b607559c 56 setrev(1); // Motoren rückwärts ein
EliasN 0:0672b607559c 57 } else if(TA4 == 0 || TA5 == 0 || TA6 == 0) {// Hintere Tasten gedrueckt
EliasN 0:0672b607559c 58 setrev(0); // Motoren rückwärts aus
EliasN 0:0672b607559c 59 ledb(0); // Hintere LEDs aus
EliasN 0:0672b607559c 60 ledf(1); // Vordere LEDs an
EliasN 0:0672b607559c 61 setforw(1); // Motoren vorwärts ein
EliasN 0:0672b607559c 62 } else if(TA7 == 0 || TA8 == 0) {
EliasN 0:0672b607559c 63 setforw(0); // Motoren vorwärts aus
EliasN 0:0672b607559c 64 ledf(0); // Vordere LEDs aus
EliasN 0:0672b607559c 65 ledb(0); // Hintere LEDs aus
EliasN 0:0672b607559c 66 setrev(0); // Motoren rückwärts aus
EliasN 0:0672b607559c 67 }
EliasN 0:0672b607559c 68 }
EliasN 0:0672b607559c 69 }
EliasN 0:0672b607559c 70
EliasN 0:0672b607559c 71 void setforw(bool val) // 0 = EIN, 1 = AUS
EliasN 0:0672b607559c 72 {
EliasN 0:0672b607559c 73 MotorR_FORWARD = !val; // Rechter Motor vorwärts zu val
EliasN 0:0672b607559c 74 MotorL_FORWARD = !val; // Linker Motor vorwärts zu val
EliasN 0:0672b607559c 75 }
EliasN 0:0672b607559c 76
EliasN 0:0672b607559c 77 void setrev(bool val) // 0 = EIN, 1 = AUS
EliasN 0:0672b607559c 78 {
EliasN 0:0672b607559c 79 MotorR_REVERSE = !val; // Rechter Motor rückwärts zu val
EliasN 0:0672b607559c 80 MotorL_REVERSE = !val; // Linker Motor rückwärts zu val
EliasN 0:0672b607559c 81 }
EliasN 0:0672b607559c 82
EliasN 0:0672b607559c 83 void ledf(bool val) // Schaltet vordere LEDs zu val, 0 = EIN, 1 = AUS
EliasN 0:0672b607559c 84 {
EliasN 0:0672b607559c 85 LedD1 = !val;
EliasN 0:0672b607559c 86 LedD4 = !val;
EliasN 0:0672b607559c 87 }
EliasN 0:0672b607559c 88
EliasN 0:0672b607559c 89 void ledb(bool val) // Schaltet hintere LEDs zu val, 0 = EIN, 1 = AUS
EliasN 0:0672b607559c 90 {
EliasN 0:0672b607559c 91 LedD7 = !val;
EliasN 0:0672b607559c 92 LedD9 = !val;
EliasN 0:0672b607559c 93 }
EliasN 0:0672b607559c 94
EliasN 0:0672b607559c 95 /************** ENDE **************/