#ifndef Locomotive_h #define Locomotive_h #include "Arduino.h" #include "Imotor.h" class Locomotive { public: Locomotive(int accelerate, int decelerate, byte minSpeed, byte maxSpeed, IMotor& motor); Locomotive(int accelerate, byte speed, int decelerate, byte minSpeed, byte maxSpeed, IMotor& motor); void Accelerate(); void Accelerate(byte Speed); void Accelerate(byte Speed, float bremsweg); void Break(); void setSpeed(byte Speed); void loop(); byte currentSpeed(); void setDirection(MotorDirection dir); byte getDefaultSpeed(); private: int _accelerate; int _decelerate; int _currentAcc; byte _minSpeed; byte _maxSpeed; byte _targetSpeed; const unsigned int _delay=300; unsigned long _millisStart; byte _currentSpeed; IMotor& _motor; }; #endif