safwan092

Untitled

Jan 1st, 2026
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <Adafruit_PWMServoDriver.h>
  3. Adafruit_PWMServoDriver board1 = Adafruit_PWMServoDriver(0x40);
  4.  
  5. #define SERVOMIN 125 // this is the 'minimum' pulse length count (out of 4096)
  6. #define SERVOMAX 575 // this is the 'maximum' pulse length count (out of 4096)
  7. int servoNumber = 0;
  8.  
  9.  
  10. void setup() {
  11. // put your setup code here, to run once:
  12. Serial.begin(9600);
  13. Serial.println("32 channel Servo test!");
  14. Wire.begin();
  15. board1.begin();
  16. board1.setPWMFreq(60);
  17. board1.setPWM(1, 0, angleToPulse(90) );
  18. board1.setPWM(2, 0, angleToPulse(120) );
  19. board1.setPWM(3, 0, angleToPulse(90) );
  20. board1.setPWM(4, 0, angleToPulse(90) );
  21. //board1.setPWM(5, 0, angleToPulse(90) );
  22. //board1.setPWM(6, 0, angleToPulse(90) );
  23.  
  24. }
  25.  
  26. void loop() {
  27. moveUp();
  28. moveDown();
  29. moveRight();
  30. moveLeft();
  31. //board1.setPWM(1, 0, angleToPulse(10) );//10-170
  32. //board1.setPWM(2, 0, angleToPulse(120));//120-170
  33. //board1.setPWM(3, 0, angleToPulse(90) );//90-170
  34. //board1.setPWM(4, 0, angleToPulse(90) );//90-170
  35. //board1.setPWM(5, 0, angleToPulse(90) );
  36. //board1.setPWM(6, 0, angleToPulse(90) );
  37. //delay(10000);
  38. //board1.setPWM(1, 0, angleToPulse(170) );
  39. //board1.setPWM(2, 0, angleToPulse(170) );
  40. //board1.setPWM(3, 0, angleToPulse(170) );
  41. //board1.setPWM(4, 0, angleToPulse(170) );
  42. //board1.setPWM(5, 0, angleToPulse(120) );
  43. //board1.setPWM(6, 0, angleToPulse(80) );
  44. //delay(10000);
  45. }
  46.  
  47. void moveUp() {
  48. //board1.setPWM(1, 0, angleToPulse(10) );//10-170
  49. board1.setPWM(2, 0, angleToPulse(140));//120-170
  50. //board1.setPWM(3, 0, angleToPulse(90) );//90-170
  51. //board1.setPWM(4, 0, angleToPulse(90) );//90-170
  52. //board1.setPWM(5, 0, angleToPulse(90) );
  53. //board1.setPWM(6, 0, angleToPulse(90) );
  54. delay(5000);
  55. }
  56.  
  57. void moveDown() {
  58. //board1.setPWM(1, 0, angleToPulse(10) );//10-170
  59. board1.setPWM(2, 0, angleToPulse(100));//120-170
  60. //board1.setPWM(3, 0, angleToPulse(90) );//90-170
  61. //board1.setPWM(4, 0, angleToPulse(90) );//90-170
  62. //board1.setPWM(5, 0, angleToPulse(90) );
  63. //board1.setPWM(6, 0, angleToPulse(90) );
  64. delay(5000);
  65. }
  66.  
  67. void moveRight() {
  68. board1.setPWM(1, 0, angleToPulse(10) );//10-170
  69. //board1.setPWM(2, 0, angleToPulse(100));//120-170
  70. //board1.setPWM(3, 0, angleToPulse(90) );//90-170
  71. //board1.setPWM(4, 0, angleToPulse(90) );//90-170
  72. //board1.setPWM(5, 0, angleToPulse(90) );
  73. //board1.setPWM(6, 0, angleToPulse(90) );
  74. delay(5000);
  75. }
  76.  
  77. void moveLeft() {
  78. board1.setPWM(1, 0, angleToPulse(170) );//10-170
  79. //board1.setPWM(2, 0, angleToPulse(100));//120-170
  80. //board1.setPWM(3, 0, angleToPulse(90) );//90-170
  81. //board1.setPWM(4, 0, angleToPulse(90) );//90-170
  82. //board1.setPWM(5, 0, angleToPulse(90) );
  83. //board1.setPWM(6, 0, angleToPulse(90) );
  84. delay(5000);
  85. }
  86.  
  87. int angleToPulse(int ang) {
  88. int pulse = map(ang, 0, 180, SERVOMIN, SERVOMAX); // map angle of 0 to 180 to Servo min and Servo max
  89. //Serial.print("Angle: "); Serial.print(ang);
  90. // Serial.print(" pulse: "); Serial.println(pulse);
  91. return pulse;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment