Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: wifi-ism43362
Dependents: DigitalOut DigitalOut
Servo.h
00001 /* mbed simple Servo controller 00002 * Copyright (c) 2019, marcel.bernet@ch-open.ch 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining a copy 00005 * of this software and associated documentation files (the "Software"), to deal 00006 * in the Software without restriction, including without limitation the rights 00007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00008 * copies of the Software, and to permit persons to whom the Software is 00009 * furnished to do so, subject to the following conditions: 00010 * 00011 * The above copyright notice and this permission notice shall be included in 00012 * all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00020 * THE SOFTWARE. 00021 */ 00022 00023 #ifndef ACTORS_SERVOS_LIB_SERVO_H_ 00024 #define ACTORS_SERVOS_LIB_SERVO_H_ 00025 00026 #define SERVO_MIN 750 00027 #define SERVO_MAX 2500 00028 00029 /** Servo control class, based on a PwmOut 00030 * 00031 * Example: 00032 * @code 00033 * // Continuously sweep the servo through it's full range 00034 * #include "mbed.h" 00035 * #include "Servo.h" 00036 * 00037 * Servo myservo(D6); 00038 * 00039 * int main() { 00040 * while(1) { 00041 * for(int i=0; i<100; i++) { 00042 * myservo = i/100.0; 00043 * wait(0.01); 00044 * } 00045 * for(int i=100; i>0; i--) { 00046 * myservo = i/100.0; 00047 * wait(0.01); 00048 * } 00049 * } 00050 * } 00051 * @endcode 00052 */ 00053 class Servo 00054 { 00055 public: 00056 /** Create a servo object connected to the specified PwmOut pin 00057 * 00058 * @param pin PwmOut pin to connect to 00059 */ 00060 Servo(PinName pin); 00061 00062 /** Set the servo position, normalised to it's full range 00063 * 00064 * @param percent A normalised number 0.0-1.0 to represent the full range. 00065 */ 00066 void write(float percent); 00067 00068 /** Read the servo motors current position 00069 * 00070 * @param returns A normalised number 0.0-1.0 representing the full range. 00071 */ 00072 float read(); 00073 00074 /** Shorthand for the write and read functions */ 00075 Servo& operator= (float percent); 00076 Servo& operator= (Servo& rhs); 00077 operator float(); 00078 00079 protected: 00080 PwmOut _pwm; 00081 float _p; 00082 }; 00083 00084 #endif /* ACTORS_SERVOS_LIB_SERVO_H_ */
Generated on Thu Jul 14 2022 01:22:20 by
