I cant use all of my pwm pins only 8 of them

Viewed 26

Hi im new to all of this and im trying to use servo motor with PWM, so my problem is this out of 16 PWM Pins only 8 of them is working 0-7, 8-15 isnt. i read online PWM is divided to 2 groups. so do I need to do somthing extra to use the 2 groups? maybe somthing i dont know about im adding a picutre of the setup of my code

 #define Servo_0 13
    #define Servo_1 12
    #define Servo_2 14
    #define Servo_3 27
    #define Servo_4 26
    #define Servo_5 25
    #define Servo_6 33
    #define Servo_7 15
#define Servo_8 2
#define Servo_9 4


#define PWM_Channel0 0
#define PWM_Channel1 1
#define PWM_Channel2 2
#define PWM_Channel3 3
#define PWM_Channel4 4
#define PWM_Channel5 5
#define PWM_Channel6 6
#define PWM_Channel7 7
#define PWM_Channel8 8
#define PWM_Channel9 9

#define PWM_Resolution 8
#define PWM_Freq  50

String str;


void setup()
{
 ledcSetup(PWM_Channel0, PWM_Freq, PWM_Resolution);
 ledcSetup(PWM_Channel1, PWM_Freq, PWM_Resolution);
 ledcSetup(PWM_Channel2, PWM_Freq, PWM_Resolution);
 
 ledcAttachPin(Servo_0, PWM_Channel0);
 ledcAttachPin(Servo_1, PWM_Channel1);
 ledcAttachPin(Servo_2, PWM_Channel2);
 ledcAttachPin(Servo_3, PWM_Channel3);
 ledcAttachPin(Servo_4, PWM_Channel4);
 ledcAttachPin(Servo_5, PWM_Channel5);
 ledcAttachPin(Servo_6, PWM_Channel6);
 ledcAttachPin(Servo_7, PWM_Channel7);
 ledcAttachPin(Servo_8, PWM_Channel8);
 ledcAttachPin(Servo_9, PWM_Channel9);

 }

void colorRGB(byte valRed,byte valGreen,byte valBlue)
{
 ledcWrite(PWM_Channel0, valRed);
 ledcWrite(PWM_Channel1,valGreen);
 ledcWrite(PWM_Channel2, valBlue); 
}

void head_End()
{
  int vertical = map(100, 0, 180, 10, 35);
  int horizontal = map(84, 0, 180, 10, 35);
  ledcWrite(PWM_Channel0,vertical);
  ledcWrite(PWM_Channel1,horizontal);
}
void head_Move(int angle_h,int angle_v)
{
  int h = map(angle_h, 0, 180, 10, 35);
  int v = map(angle_v, 0, 180, 10, 35);
  ledcWrite(PWM_Channel0,h);
  ledcWrite(PWM_Channel1,v);
}


void boxes(int angle1,int angle2)
{
  int box1 = map(angle1, 0, 180, 10, 35);
  int box2 = map(angle2, 0, 180, 10, 35);
  ledcWrite(PWM_Channel8,box1);
  ledcWrite(PWM_Channel9,box2);
}
void loop()
{  
boxes(0,160);
delay(1000);
boxes(160,0);
delay(1000);

 

}

0 Answers
Related