AmebaServo Class
AmebaServo Class
DescriptionDefines a class of manipulating servo motors connected to Arduino pins.
Syntax
class AmebaServo
Members
Public Constructors | |
AmebaServo::AmebaServo | Constructs an AmebaServo object. |
Public Methods | |
AmebaServo::attach | Attach the given pin to the next free channel. |
AmebaServo::detach | Detach the servo. |
AmebaServo::write | Write value, if the value is < 200 it's treated as an angle, otherwise as pulse-width in microseconds. |
AmebaServo::writeMicroseconds | Write pulse width in microseconds. |
AmebaServo::read | Output current pulse width as an angle between 0 and 180 degrees. |
AmebaServo::readMicroseconds | Output current pulse width in microseconds for this servo. |
AmebaServo::attached | Check if the servo is attached. |
AmebaServo::attach
DescriptionAttach the given pin to the next free channel, sets pinMode (including minimum and maximum values for writes), returns channel number, or 0 if failure.
Syntax
uint8_t attach(int pin);
uint8_t attach(int pin, int min, int max);
Parameters
pin: ThThe Arduino/Ameba1 PIN to be attachede Arduino pin number to be attached.
min: Minimum values for writes.
max: Maximum values for writes.
Returns
The function returns channel number or 0
Example Code
Example: ServoSweep
The code demos servo motor sweeping from 0 degrees to 180 degrees then sweep back to 0 degrees in the step of 1 degree.
/* Sweep by BARRAGAN < http://barraganstudio.com > This example code is in the public domain. modified 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Sweep refined 2016/03/18 by Realtek */ #include "AmebaServo.h" // create servo object to control a servo // 4 servo objects can be created correspond to PWM pins AmebaServo myservo; // variable to store the servo position int pos = 0; void setup() { #if defined(BOARD_RTL8195A) // attaches the servo on pin 9 to the servo object myservo.attach(9); #elif defined(BOARD_RTL8710) // attaches the servo on pin 13 to the servo object myservo.attach(13); #elif defined(BOARD_RTL8721D) // attaches the servo on pin 8 to the servo object myservo.attach(8); #else // attaches the servo on pin 9 to the servo object myservo.attach(9); #endif } void loop() { // goes from 0 degrees to 180 degrees in steps of 1 degree for (pos = 0; pos <= 180; pos += 1) { // tell servo to go to position in variable 'pos' myservo.write(pos); // waits 15ms for the servo to reach the position delay(15); } // goes from 180 degrees to 0 degrees for (pos = 180; pos >= 0; pos -= 1) { // tell servo to go to position in variable 'pos' myservo.write(pos); // waits 15ms for the servo to reach the position delay(15); } }Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
AmebaServo::detach
DescriptionDetach the servo.
Syntax
void AmebaServo::detach(void);
Parameters
The function requires no input parameter.
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
AmebaServo::write
DescriptionWrite an integer value to the function, if the value is < 200, it’s being treated as an angle, otherwise as pulse-width in microseconds.
Syntax
void AmebaServo::write(int value);
Parameters
value: The value < 200 its treated as an angle; otherwise as pulse width in microseconds.
Returns
The function returns nothing.
Example Code
Example: ServoSweep
The code demos servo motor sweeping from 0 degrees to 180 degrees then sweep back to 0 degrees in the step of 1 degree. Please refer to code in “AmebaServo:: attach” section.
Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
AmebaServo::writeMicroseconds
DescriptionWrite pulse width to the servo in microseconds.
Syntax
void AmebaServo::writeMicroseconds(int value);
Parameters
value: Write value the pulse width in microseconds.
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
AmebaServo::read
DescriptionThe function reads current pulse width and returns as an angle between 0 and 180 degrees.
Syntax
int AmebaServo::read(void);
Parameters
The function requires no input parameter.
Returns
The pulse width as an angle between 0 ~ 180 degrees.
Example Code
NA
Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
AmebaServo::readMicroseconds
DescriptionThe function returns a Boolean value “true” if this servo is attached, otherwise returns “false”.
Syntax
int AmebaServo::readMicroseconds(void);
Parameters
The function requires no input parameter.
Returns
The function returns current servo pulse width in microseconds.
Example Code
NA
Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
AmebaServo::attached
DescriptionIt returns true if this servo is attached, otherwise false.
Syntax
bool AmebaServo::attached(void);
Parameters
The function requires no input parameter.
Returns
The function returns a Boolean value as true or false.
Example Code
Example: ServoSweep
The code demos servo motor sweeping from 0 degrees to 180 degrees then sweep back to 0 degrees in the step of 1 degree. Please refer to code in “AmebaServo:: attach” section.
Notes and Warnings
Every time must include the header file “AmebaServo.h” in front of the project to use the class function.
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. 使用條款