Quantcast
Channel: Davide Gironi blog
Viewing all articles
Browse latest Browse all 196

A CD4017 library for AVR Atmega as PWM output expander, to run up to 36 servos or 9 servos at high accurancy

$
0
0
The CD4017 is a 5-stage divide-by-10 Johnson counter with 10 decoded outputs and a carry out bit.
This library implements a PWM output expander for AVR Atmega micro using CD4017.



With this library we can write a module to move servos using PWM.
A servo expansion module is already implemented as example, with this module you can run up to 36 servos @ 2.25degree precision per step or 9 servos @ 0.18 degrees of precision.
"High accurancy" is 1.0us of precision per step @16Mhz, normal accurancy is 12.5us precision per step @16Mhz.
The default frequency for servos is 50Hz.




If you run this sample at a different frequency you must update the countdown parameter of this library, and also you should test it to prove that the resource are enough to output the pulse to CD4017 at the desired frequency.
I've test it using some servos and scope for the remaining outputs.

This library was developed on Eclipse, built with avr-gcc on Atmega168 @ 16MHz.


Code

Notes
  • read risk disclaimer
  • excuse my bad english

Viewing all articles
Browse latest Browse all 196

Trending Articles