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
- Committer:
- EliasN
- Date:
- 2017-07-01
- Revision:
- 0:0672b607559c
File content as of revision 0:0672b607559c:
/*********************************** 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 **************/