Hallo liebe Leute,
Zur zeit erarbeite ich ein einfaches Testprogramm für die PID-Motorsteuerung des NIBObees und habe ein paar fragen dazu.
Hier das Programm:
/* NIBObee C project */
#include <nibobee/iodefs.h>
#include <nibobee/motpid.h>
#include <nibobee/sens.h>
int main() {
enable_interrupts();
motpid_init();
sens_init();
while(1==1){
switch (sens_getRight() || sens_getLeft()) {
case 1: motpid_setSpeed (50,50); break;
case 0: motpid_stop(1); break;
case -1: motpid_setSpeed (-50,-50); break;
}
}
return 0;
}
Das Programm funktioniert soweit so gut bis auf folgende punkte:
- Sobald "motpid_stop(0);" gewählt ist hört der Motor nicht mehr auf zu drehen. Es sollte jedoch langsam abgebremst werden.
- Die anweisung "motpid_setSpeed (-50,-50);" scheint wirkungslos. Unabhängig der Taster des NIBObees wird immer der "case 1: motpid_setSpeed (50,50); break;" angenommen, solange ein Taster betätigt wird.
Hattet Ihr bei euren Experimenten ähnliche Probleme und wie habt Ihr sie gelöst?
Kennst sich jemand genauer mit der PID-Regelung des NIBObees aus und könnte Evtl. eine korrekte Ansteuerung erläutern
Anscheinend bin ich für C++ zu blöd