Serial Wombat Arduino Library
SerialWombatServo.h
Go to the documentation of this file.
1 #pragma once
2 /*
3 Copyright 2020-2021 Broadwell Consulting Inc.
4 
5 "Serial Wombat" is a registered trademark of Broadwell Consulting Inc. in
6 the United States. See SerialWombat.com for usage guidance.
7 
8 Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14 
15 The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17 
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24  * OTHER DEALINGS IN THE SOFTWARE.
25 */
26 
27 #include "SerialWombat.h"
28 
29 
69 {
70 public:
76 
77 
78 
88  void attach(uint8_t pin, bool reverse);
89 
99  void attach(uint8_t pin, uint16_t min = 544, uint16_t max = 2400, bool reverse = false);
100 
107  void write(uint8_t angle);
108 
114  void write16bit(uint16_t position);
115 
119  uint8_t read(void);
120 
121 protected:
122 
123  uint16_t _position = 0;
124  uint16_t _min = 544; // Default for Arduino Servo library
125  uint16_t _max = 2400; // Default for Arduino Servo Library
126  bool _reverse = false;
127  void initializeServo();
128 };
129 
155 {
156 public:
158  uint8_t pin();
159  uint8_t swPinModeNumber();
160 
161 };
162 
199 {
200 
201 public:
207  void attach(uint8_t pin, bool reverse);
208 
219  void attach(uint8_t pin, uint16_t min , uint16_t max , bool reverse = false);
220 
221 
222  int16_t writeFrequency_Hz(uint16_t frequency_hZ);
223  int16_t writePeriod_uS(uint16_t period_uS);
224 };
225 
SerialWombatServo
A class to control Servos attached to the Serial Wombat chip.
Definition: SerialWombatServo.h:68
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:272
SerialWombatHighFrequencyServo
A class for the Serial Wombat 18AB Chip that adds support for high frequency hobby Servos(200 Hz,...
Definition: SerialWombatServo.h:198
SerialWombatServo::read
uint8_t read(void)
returns the last position of the servo scaled to a number from 0 to 180.
Definition: SerialWombatServo.cpp:51
SerialWombatServo::initializeServo
void initializeServo()
Definition: SerialWombatServo.cpp:20
SerialWombatServo_18AB::swPinModeNumber
uint8_t swPinModeNumber()
Facilitates inheritance.
Definition: SerialWombatServo.cpp:78
SerialWombatServo::_min
uint16_t _min
Definition: SerialWombatServo.h:124
SerialWombatHighFrequencyServo::SerialWombatHighFrequencyServo
SerialWombatHighFrequencyServo(SerialWombatChip &serialWombat)
Definition: SerialWombatServo.cpp:83
SerialWombatAbstractScaledOutput
SerialWombatServo, SerialWombatPWM and other proportional ouptut classes inherit from this class....
Definition: SerialWombatAbstractScaledOutput.h:61
SerialWombatServo::_position
uint16_t _position
Definition: SerialWombatServo.h:123
SerialWombatServo::attach
void attach(uint8_t pin, bool reverse)
Initialize a servo on the specified pin.
Definition: SerialWombatServo.cpp:12
SerialWombatHighFrequencyServo::writeFrequency_Hz
int16_t writeFrequency_Hz(uint16_t frequency_hZ)
Definition: SerialWombatServo.cpp:97
SerialWombat.h
SerialWombatServo_18AB::pin
uint8_t pin()
Facilitates inheritance.
Definition: SerialWombatServo.cpp:72
SerialWombatServo::SerialWombatServo
SerialWombatServo(SerialWombatChip &sw)
Constructor for the SerialWombatServo Class.
Definition: SerialWombatServo.cpp:5
SerialWombatServo_18AB::SerialWombatServo_18AB
SerialWombatServo_18AB(SerialWombatChip &serialWombat)
Definition: SerialWombatServo.cpp:68
SerialWombatHighFrequencyServo::attach
void attach(uint8_t pin, bool reverse)
Do not use this interface for High Frequency Servos.
SerialWombatPin
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombat.h:799
SerialWombatServo::_max
uint16_t _max
Definition: SerialWombatServo.h:125
SerialWombatServo::write
void write(uint8_t angle)
Writes a value to the servo.
Definition: SerialWombatServo.cpp:39
SerialWombatServo::_reverse
bool _reverse
Definition: SerialWombatServo.h:126
SerialWombatPin::pin
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition: SerialWombat.h:861
SerialWombatServo_18AB
A derived class that adds additional Servo Functionality for the Serial Wombat 18AB Chip.
Definition: SerialWombatServo.h:154
SerialWombatServo::write16bit
void write16bit(uint16_t position)
Writes a 16 bit value to the servo.
Definition: SerialWombatServo.cpp:59
SerialWombatHighFrequencyServo::writePeriod_uS
int16_t writePeriod_uS(uint16_t period_uS)
Definition: SerialWombatServo.cpp:102
SerialWombatServo::~SerialWombatServo
~SerialWombatServo()
Definition: SerialWombatServo.cpp:64