Projekte
Orientierung
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
Orientierung
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
7433 private projects
378 public projects
16180353 lines compiled
58212 builds
NIBO
@
Fehler
JUser::_load: Unable to load user with id: 7973
Orientierung/main.cpp [read only]
#include <nibobee/robomain.h> #include <stdint.h> #include "nibobee/motpwm.h" #include "nibobee/analog.h" #include "nibobee/line.h" #include "nibobee/feeler.h" #include <util/delay.h> int motor = 0; bool feeler = true; bool line = true; int lastAvoid = 0; void setup() { motpwm_init(); analog_init(); line_init(); feeler_init(); } void lineLost() { motpwm_setRight(500); motpwm_setLeft(500); delay(500); while (line_get(LINE_C) > 600) { if (lastAvoid == 0) { motpwm_setRight(500); motpwm_setLeft(-500); } else { motpwm_setRight(500); motpwm_setLeft(-500); } delay(200); } } void wendeRechts(); void wendeLinks() { lastAvoid = 0; motpwm_stop(); motpwm_setRight(-500); motpwm_setLeft(-500); delay(1000); motpwm_setLeft(-500); motpwm_setRight(500); delay(500); while (feeler_getRight() == 0 & feeler_getLeft() == 0 & line_get(LINE_L) > 600 & line_get(LINE_C) > 600 & line_get(LINE_R) > 600) { motpwm_setLeft(400); motpwm_setRight(600); delay(200); } motpwm_stop(); if (feeler_getLeft()==1){wendeRechts();} else if (feeler_getRight()==1){wendeLinks();} } void wendeRechts() { lastAvoid = 1; motpwm_stop(); motpwm_setRight(-500); motpwm_setLeft(-500); delay(1000); motpwm_setLeft(500); motpwm_setRight(-500); delay(500); while (feeler_getRight() == 0 & feeler_getLeft() == 0 & line_get(LINE_L) > 600 & line_get(LINE_C) > 600 & line_get(LINE_R) > 600) { motpwm_setLeft(600); motpwm_setRight(400); delay(200); } motpwm_stop(); if (feeler_getLeft()==1){wendeRechts();} else if (feeler_getRight()==1){wendeLinks();} } void loop() { //Feeler if (feeler == true){ if (feeler_getLeft()==1){wendeRechts();} else if (feeler_getRight()==1){wendeLinks();} else if ((feeler_getRight()==1) & (feeler_getRight()==1)) {motor = 0;} else {motor = 1;} } //Line if (line == true){ if (line_get(LINE_L) < line_get(LINE_C)) {motor = 2;} else if (line_get(LINE_R) < line_get(LINE_C)) {motor = 3;} else if ((line_get(LINE_L) < line_get(LINE_C)) & (line_get(LINE_R) < line_get(LINE_C))) {motor = 1;} else if ((line_get(LINE_L) > line_get(LINE_C)) & (line_get(LINE_R) > line_get(LINE_C))) {motor = 0;} else if ((line_get(LINE_L) == line_get(LINE_C)) & (line_get(LINE_R) == line_get(LINE_C))) {lineLost();} } //Motor switch(motor) { case 1: motpwm_setRight(500); motpwm_setLeft(500); break; case 2: motpwm_setRight(600); motpwm_setLeft(400); break; case 3: motpwm_setRight(400); motpwm_setLeft(600); break; case 0: motpwm_stop(); break; } delay(10); }
Compiler results:
Werbung
Online
Andreaspcb
qoaelena52692907
refugiajude043850652
warrenhinder6456
yoylavonne8337121977