12 Bit PWM

In dem Beispiel soll zusätzlich zum NeoPixel- Ring und dem Poti ein 12Bit A/D- Wandler angesteuert werden.Die Position des Servos ändert sich, wenn man an dem Poti dreht.
#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6 // NeoPixel Input Pin
#define NUMPIXELS 16 // Piexelanzahl des Ringes
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int sensorPin = A0; // pin potentiometer
int sensorValue = 0; // variable to store the value coming from the sensor
int lamps =0;
uint16_t servoFreq=200;
void setup() {
pixels.begin(); // startet NeoPixel library
pwm.begin();
pwm.setPWMFreq(60); // Analog servos run at ~60 Hz updates
delay(10);
}
void loop() {
sensorValue = analogRead(sensorPin); // liest den Analog Wert ein
lamps = map(sensorValue, 0, 1023, 0, 16);
servoFreq = map(sensorValue, 0, 1023, 150, 500);
for (int i=0;i<lamps;i++){
pixels.setPixelColor(i, pixels.Color(0,0,150));
pixels.show();
}
for (int i=lamps;i<16;i++){ //löscht die anzeige
pixels.setPixelColor(i, pixels.Color(0,0,0));
pixels.show();
}
pwm.setPWM(0, 0, servoFreq);
delay(50);
}