Hallo!
Danke! Ich glaube ich habe jetzt schon einen gangbaren Weg. Ich habe es jetzt so gelöst:
MyServo.cpp
#include "MyServo.h"
#include "../libraries/Servo/src/Servo.h"
#include <string.h>
MyServo::MyServo(int _port, int _ref, int _PosMin, int _PosMax)
{
port = _port;
ref = _ref ;
PosMin = _PosMin;
PosMax = _PosMax;
}
void MyServo::goToRef()
{
Serial.println("goToRef Port:");
Serial.println(port);
servo.attach(port);
servo.write(ref);
}
void MyServo::myServoInit(boolean _GoToRef)
{
if (_GoToRef){
goToRef();
}
}
MyServo.h
// MyServo.h
#ifndef _MYSERVO_h
#define _MYSERVO_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "../libraries/Servo/src/Servo.h"
class MyServo
{
public:
MyServo(int _port, int _ref, int _PosMin, int _PosMax);
Servo servo;
int port;
int ref;
int PosMin;
int PosMax;
void myServoInit(boolean _goToRef);
void goToRef();
private:
};
#endif
ServoTest.ino
#include <MyServo.h>
#include <Servo.h>
MyServo Servo1(9,90, 0, 180);
void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
delay(300);
Serial.println("Starte ServoTest");
Servo1.myServoInit(true);
}
void loop()
{
}
Ich denke es lag tatsächlich am default Konstruktor.
Das myServoInit musste ich aber trotzdem im setup() machen, da sonst der Servo schon beim Aufruf von servo.attach(port) einfach auf Anschlag gefahren ist. Das Programm schien dann auch stehen geblieben zu sein. Eine Serielle Ausgabe habe ich nicht mehr bekommen.
Vielen Dank für die vielen Tipps und Hilfen!
Gruß
Bismosa