Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. // include needed librarys
  2.  
  3. #include <Adafruit_PWMServoDriver.h>
  4. #include <Wire.h>
  5. // create servo driver (defaults to addr 40)
  6. Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
  7.  
  8. // give meaningful names to each servo channel
  9. int FRleg = 0;
  10. int FLleg = 1;
  11. int BRleg = 2;
  12. int BLleg = 3;
  13.  
  14.  
  15. // simple [channel,angle] list, terminated with a -1
  16. int center[] = { FRleg, 90,
  17. FLleg, 90,
  18. BRleg, 90,
  19. BLleg, 90,
  20. -1};
  21.  
  22. void setup()
  23. {
  24.  
  25. Serial.begin(9600);
  26. Serial.println("robo dog center test");
  27.  
  28. pwm.begin();
  29. pwm.setPWMFreq(50);
  30. }
  31.  
  32. // helper function that uses angles rather than pulse ticks
  33. void setAngle( int channel, int angle )
  34. {
  35. // 4096 ticks is 20,000 us
  36. // Angle 0 is 1,000 us
  37. // angle 180 is 2,000 us
  38. long ticks = ((1000L + (1000L*angle/180L))*4096L)/20000L;
  39. // update the servo channel with the new pusle
  40. pwm.setPWM(channel, 0, ticks);
  41. }
  42.  
  43. // helper function to execute a frame list;
  44. void execute( int *cmd )
  45. {
  46. while( *cmd >= 0 )
  47. {
  48. setAngle( *cmd++, *cmd++);
  49. }
  50. }
  51.  
  52. // main loop
  53. void loop()
  54. {
  55. // set servos to frame 1 positions
  56. execute( center );
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement