#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#define PCA9685_ADDRESS_0 0x40
#define SERVOMIN 150 // This is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX 600 // This is the 'maximum' pulse length count (out of 4096)
#define USMIN 600 // This is the rounded 'minimum' microsecond length based on the minimum pulse of 150
#define USMAX 2400 // This is the rounded 'maximum' microsecond length based on the maximum pulse of 600
#define SERVO_FREQ 50 // Analog servos run at ~50 Hz updates
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(PCA9685_ADDRESS_0, Wire);
const int number_of_PWMS = 1;
#define VERT_PIN A0
#define HORZ_PIN A1
void setup()
{
Serial.begin(9600);
pinMode(VERT_PIN, INPUT);
pinMode(HORZ_PIN, INPUT);
pwm.begin();
pwm.setOscillatorFrequency(27000000);
pwm.setPWMFreq(50);
}
void loop()
{
int vert = analogRead(VERT_PIN);
int horz = analogRead(HORZ_PIN);
Serial.print(vert);
Serial.print(" / ");
Serial.println(horz);
// pwm.setPWM(1, 0, 300);
if(horz == 0){
pwm.setPWM(1, 0, 325);
pwm.setPWM(2, 0, 325+2);
pwm.setPWM(3, 0, 325+4);
pwm.setPWM(4, 0, 325+6);
pwm.setPWM(5, 0, 325+8);
pwm.setPWM(6, 0, 325+10);
pwm.setPWM(7, 0, 325+12);
pwm.setPWM(8, 0, 325+14);
pwm.setPWM(9, 0, 325+16);
pwm.setPWM(10, 0, 325+18);
pwm.setPWM(11, 0, 325+20);
pwm.setPWM(12, 0, 325+22);
}
if(horz == 512){
pwm.setPWM(1, 0, 300);
pwm.setPWM(2, 0, 300);
pwm.setPWM(3, 0, 300);
pwm.setPWM(4, 0, 300);
pwm.setPWM(5, 0, 300);
pwm.setPWM(6, 0, 300);
pwm.setPWM(7, 0, 300);
pwm.setPWM(8, 0, 300);
pwm.setPWM(9, 0, 300);
pwm.setPWM(10, 0, 300);
pwm.setPWM(11, 0, 300);
pwm.setPWM(12, 0, 300);
}
if(horz == 1023){
pwm.setPWM(1, 0, 275);
pwm.setPWM(2, 0, 275-2);
pwm.setPWM(3, 0, 275-4);
pwm.setPWM(4, 0, 275-6);
pwm.setPWM(5, 0, 275-8);
pwm.setPWM(6, 0, 275-10);
pwm.setPWM(7, 0, 275-12);
pwm.setPWM(8, 0, 275-14);
pwm.setPWM(9, 0, 275-16);
pwm.setPWM(10, 0, 275-18);
pwm.setPWM(11, 0, 275-20);
pwm.setPWM(12, 0, 275-22);
}
}