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.
main.cpp
00001 /*********************************** 00002 name: BULME_BERTL17_automatischer_Umdreher July 1st 2017 00003 author: Elias Nestl, einige Codesnippets von Gottfried Enenkel HTL BULME 00004 description: 00005 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. 00006 Drückt man einen der Knöpfe die vorne an der Unterseite sind, dann bleibt er wieder stehen. 00007 Während der BERTL fährt, leuchten je nach Richtung die vorderen oder hinteren LEDs. 00008 00009 ***********************************/ 00010 #include "mbed.h" 00011 00012 /************** DEKLARATIONEN **************/ 00013 DigitalOut Von (P2_13); // Motor Spannung ab BERTL15 nötig! 00014 DigitalOut MotorL_EN(P1_19); // Enable 00015 DigitalOut MotorL_FORWARD(P2_14); // Vorwärts 00016 DigitalOut MotorL_REVERSE(P2_15); // Rückwärts 00017 00018 DigitalOut MotorR_EN(P2_19); // Die Leitung führt zum Pin PO_21 am Prozessor 00019 DigitalOut MotorR_FORWARD(P2_21); // Die Leitung führt zum Pin P1_3 am Prozessor 00020 DigitalOut MotorR_REVERSE(P2_20); 00021 00022 // Definition der Schalter als Eingänge 00023 DigitalIn TA1 (P1_23); 00024 DigitalIn TA2 (P1_24); 00025 DigitalIn TA3 (P1_25); 00026 DigitalIn TA4 (P1_26); 00027 DigitalIn TA5 (P1_27); 00028 DigitalIn TA6 (P1_28); 00029 DigitalIn TA7 (P1_30); 00030 DigitalIn TA8 (P1_31); 00031 00032 // Definition der LEDS als Ausgänge 00033 DigitalOut LedD1 (P1_10); 00034 DigitalOut LedD4 (P1_12); 00035 DigitalOut LedD7 (P1_15); 00036 DigitalOut LedD9 (P1_17); 00037 00038 void setforw(bool val); 00039 void setrev(bool val); 00040 void ledf(bool val); 00041 void ledb(bool val); 00042 00043 // ************* Hauptprogramm ************ 00044 int main() 00045 { 00046 Von=1; // Motor Spannung ein 00047 wait (1.0); // 1 Sekunde warten 00048 MotorR_EN=MotorL_EN=1; // Beide Motoren enablen 00049 LedD1=LedD4=LedD7=LedD9=1; // Alle LEDs aus 00050 00051 while(1) { // Endlosschleife 00052 if(TA1 == 0 || TA2 == 0 || TA3 == 0) { // Vordere Tasten gedrückt 00053 setforw(0); // Motoren vorwärts aus 00054 ledf(0); // Vordere LEDs aus 00055 ledb(1); // Hintere LEDs an 00056 setrev(1); // Motoren rückwärts ein 00057 } else if(TA4 == 0 || TA5 == 0 || TA6 == 0) {// Hintere Tasten gedrueckt 00058 setrev(0); // Motoren rückwärts aus 00059 ledb(0); // Hintere LEDs aus 00060 ledf(1); // Vordere LEDs an 00061 setforw(1); // Motoren vorwärts ein 00062 } else if(TA7 == 0 || TA8 == 0) { 00063 setforw(0); // Motoren vorwärts aus 00064 ledf(0); // Vordere LEDs aus 00065 ledb(0); // Hintere LEDs aus 00066 setrev(0); // Motoren rückwärts aus 00067 } 00068 } 00069 } 00070 00071 void setforw(bool val) // 0 = EIN, 1 = AUS 00072 { 00073 MotorR_FORWARD = !val; // Rechter Motor vorwärts zu val 00074 MotorL_FORWARD = !val; // Linker Motor vorwärts zu val 00075 } 00076 00077 void setrev(bool val) // 0 = EIN, 1 = AUS 00078 { 00079 MotorR_REVERSE = !val; // Rechter Motor rückwärts zu val 00080 MotorL_REVERSE = !val; // Linker Motor rückwärts zu val 00081 } 00082 00083 void ledf(bool val) // Schaltet vordere LEDs zu val, 0 = EIN, 1 = AUS 00084 { 00085 LedD1 = !val; 00086 LedD4 = !val; 00087 } 00088 00089 void ledb(bool val) // Schaltet hintere LEDs zu val, 0 = EIN, 1 = AUS 00090 { 00091 LedD7 = !val; 00092 LedD9 = !val; 00093 } 00094 00095 /************** ENDE **************/
Generated on Tue Jul 12 2022 18:57:24 by 1.7.2