Projekte
wed
18_MODES
main.cpp
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
18_MODES
main.cpp
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7499 private projects
385 public projects
16433021 lines compiled
58481 builds
NIBO
@
18_modes/main.cpp [read only]
#include <nibobee/robomain.h> //-------------------------------------- // Globale Konstanten definieren //-------------------------------------- // Die verschiedenen Modes //------------------------ #define STOP 0 #define DRIVE 1 #define DRIVE_BACK 2 #define TURN_LEFT 3 #define TURN_RIGHT 4 #define DRIVE_LEFT 5 #define DRIVE_RIGHT 6 //-------------------------------------- // Globale Variablen definieren //-------------------------------------- int8_t feeler_left = 0; int8_t feeler_right = 0; uint16_t sensor_left = 0; uint16_t sensor_center = 0; uint16_t sensor_right = 0; uint8_t led_lr = 0; uint8_t led_ly = 0; uint8_t led_rr = 0; uint8_t led_ry = 0; int16_t motor_left = 0; int16_t motor_right = 0; uint8_t mode = STOP; void setup() { led_init(); // LED-Pins am Mikrocontroller konfigurieren feeler_init(); // Pins für die Fühler-Taster konfigurieren motpwm_init(); // PWM Signal für die Motoren konfigurieren line_init(); // Pins für die Liniensensoren konfigurieren enable_interrupts(); // Interrupt Routinen aktivieren } void loop() { //**************************************************************************** // INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT //**************************************************************************** // Fühler-Werte einlesen und abspeichern //-------------------------------------- feeler_left = feeler_getLeft(); feeler_right = feeler_getRight(); // Liniensensoren einlesen und abspeichern //---------------------------------------- sensor_left = line_get(LINE_L); sensor_center = line_get(LINE_C); sensor_right = line_get(LINE_R); //**************************************************************************** // VERARBEITUNG VERARBEITUNG VERARBEITUNG VERARBEITUNG VERARBEITUNG //**************************************************************************** // Wenn beide Fühler nach vorne gedrückt werden // dann aktiviere den DRIVE mode //--------------------------------------------- if (feeler_left == +1 && feeler_right == +1) { mode = DRIVE; } // Wenn der eine ODER der andere Fühler nach hinten gedrückt wird // dann aktiviere den STOP mode //--------------------------------------------------------------- if (feeler_left == -1 || feeler_right == -1) { mode = STOP; } // Wenn links nach hinten und rechts nach vorne gedrückt... //--------------------------------------------------------- if (feeler_left == -1 && feeler_right == +1) { mode = TURN_LEFT; } // Nur wenn der Roboter NICHT steht... //------------------------------------ if (mode != STOP) { // Erkennen, dass die Linie LINKS ist //----------------------------------- if (sensor_left > 700 && sensor_right < 300) { mode = DRIVE_LEFT; } // Erkennen, dass die Linie RECHTS ist //------------------------------------ if (sensor_left < 300 && sensor_right > 700) { mode = DRIVE_RIGHT; } } // Was im DRIVE mode passieren soll... //------------------------------------ if (mode == DRIVE) { motor_left = 500; motor_right = 500; led_lr = 1; led_ly = 0; led_rr = 1; led_ry = 0; } // Was im STOP mode passieren soll... //----------------------------------- if (mode == STOP) { motor_left = 0; motor_right = 0; led_lr = 0; led_ly = 0; led_rr = 0; led_ry = 0; } // Was im TURN_LEFT mode passieren soll... //---------------------------------------- if (mode == TURN_LEFT) { motor_left = -500; motor_right = +500; led_lr = 1; led_ly = 1; led_rr = 0; led_ry = 0; } // Was im DRIVE_LEFT mode passieren soll... //----------------------------------------- if (mode == DRIVE_LEFT) { motor_left = 500; motor_right = 700; led_lr = 1; led_ly = 1; led_rr = 0; led_ry = 0; } // Was im DRIVE_RIGHT mode passieren soll... //------------------------------------------ if (mode == DRIVE_RIGHT) { motor_left = 700; motor_right = 500; led_lr = 0; led_ly = 0; led_rr = 1; led_ry = 1; } //**************************************************************************** // OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT //**************************************************************************** // LEDs ein- bzw. ausschalten //--------------------------- led_set(LED_L_RD, led_lr); led_set(LED_L_YE, led_ly); led_set(LED_R_RD, led_rr); led_set(LED_R_YE, led_ry); // Motoren ansteuern //------------------ motpwm_setLeft(motor_left); motpwm_setRight(motor_right); }
Compiler results:
Werbung
Online
allieheron754282
emeliamussen29477
iola42581719181
margarettekruger0347
miquelenoch095486
selmabromby44892