Modules | Functions

Functions which handle the servo. More...

Modules

 Advanced informations
 

Functions

void servo_on (void)
 Turns the servo on. More...
 
void servo_off (void)
 Turns the servo off. More...
 
void servo_set (int8_t pos)
 Sets the servo to the given position in degrees. More...
 
int8_t servo_get (void)
 Returns the approximated servo position in degrees. More...
 

Detailed Description

Functions which handle the servo.

example

/*******************************************************************************
* examples/servo.c *
* ================ *
* *
* Version: 1.0.4 *
* Date : 01.11.17 *
* Author : Peter Weissig *
* *
* If you are changing this file, you may also consider to update *
* demos/diagnosticTool/diagnosticTool.c *
*******************************************************************************/
//*********************************<Included files>*****************************
#include <tucbot/tucbot.h>
//*********************************<Methods>************************************
void testServo(void);
int main(void);
//*********************************[testServo]**********************************
void testServo(void) {
int8_t pos = 0;
lcdclr();
lcdstr_p(PSTR("Servo" ));
lcdxy(0,1);
lcdstr_p(PSTR("###" "\xDF" " <+> <-> "));
while (1) {
mdelay(100);
if (pos < 70) {
pos++;
lcdxy(0,1);
}
servo_set(pos);
} else if (buttons_get(kButtonRight)) {
mdelay(100);
if (pos > -70) {
pos--;
lcdxy(0,1);
}
servo_set(pos);
}
}
}
//*********************************[main]***************************************
int main (void) {
init_tucbot(0xFF);
testServo();
return (0);
}

Function Documentation

◆ servo_get()

int8_t servo_get ( void  )

Returns the approximated servo position in degrees.

The real position can not be measured. This is just a simple approximation.

Returns
approximated servo position in degrees
See also
servo_set()

◆ servo_off()

void servo_off ( void  )

Turns the servo off.

See also
servo_on(), servo_set()

◆ servo_on()

void servo_on ( void  )

Turns the servo on.

See also
servo_off(), servo_set()

◆ servo_set()

void servo_set ( int8_t  pos)

Sets the servo to the given position in degrees.

This function converts the position into the related pwm value and passes it to tucbot_servo_set(). It also turns the servo on for 2 seconds.

Parameters
pos8-bit integer (-70..70)
Servo position in degrees. For mechanical protection the position must be between -70 and 70 degrees.
See also
servo_on(), servo_off()
Examples
servo.c.
leds_set
void leds_set(eLedMask bitmask, uint8_t bool)
Sets the selected leds on or off.
buttons_get
eButtonMask buttons_get(eButtonMask bitmask)
Returns the last stored value of the selected buttons.
kButtonMiddle
@ kButtonMiddle
bit mask (0x08): middle button
Definition: buttons.h:35
kLedOn
@ kLedOn
constant (0xFF): turn leds on
Definition: leds.h:63
kLedRight
@ kLedRight
bit mask (0x04): right led
Definition: leds.h:46
kButtonRight
@ kButtonRight
bit mask (0x10): right button
Definition: buttons.h:37
servo_set
void servo_set(int8_t pos)
Sets the servo to the given position in degrees.
buttons_request
void buttons_request(eRequestType request)
Requests new data from the buttons.
int16tostr
void int16tostr(void *out, int16_t number, uint8_t digits)
Converts an integer to a string and passes it to an output function.
kRequestContinuous
@ kRequestContinuous
constant (3): request continuous updates
Definition: update.h:37
kLedMiddle
@ kLedMiddle
bit mask (0x08): middle led
Definition: leds.h:44
kLedOff
@ kLedOff
constant (0x00): turn leds off
Definition: leds.h:61
lcdclr
void lcdclr(void)
Clears the display.
lcdxy
void lcdxy(uint8_t x, uint8_t y)
Moves the cursor to a postion on the display.
lcdstr_p
void lcdstr_p(const char *send_data)
Writes a string located in the flash to the display.
lcdout
void lcdout(uint8_t data)
Writes one byte to the display.
init_tucbot
void init_tucbot(uint8_t enable_interrupts)
Initiates the TUC-Bot.
mdelay
void mdelay(uint16_t mseconds)
Waits for the given time in milliseconds.