ne réutilisez pas hourval pour calculer la position des pixels dans la strip si ensuite vous en avez besoin comme une heure.. soit vous imprimez avant la modification, soit vous utilisez une autre variable pour le calcul du pixel
#include <Wire.h>
#include <RTClib.h>
#include <Adafruit_NeoPixel.h>
#define PIN 13
#define PIXEL 60
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL, PIN, NEO_GRB + NEO_KHZ800);
RTC_DS1307 RTC; // Establish clock object
DateTime Clock; // Holds current clock time
byte hourval, minuteval, secondval;
void setup() {
Serial.begin(9600);
Wire.begin(); // Begin I2C
RTC.begin(); // begin clock
if (! RTC.isrunning()) {
// Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
}
RTC.adjust(DateTime(__DATE__, __TIME__));
strip.begin();
strip.show(); // Initialize all pixels to 'off'
strip.setBrightness(10);
}
void loop() {
Clock = RTC.now(); // get the RTC time
secondval = Clock.second(); // get seconds
minuteval = Clock.minute(); // get minutes
hourval = Clock.hour(); // get hours
if (hourval > 11) hourval -= 12; // This clock is 12 hour, if 13-23, convert to 0-11
uint16_t pixelPos = (hourval * 60 + minuteval) / 12;
strip.setPixelColor(pixelPos, 0x008080); strip.setPixelColor(pixelPos - 1, 0x004040); strip.setPixelColor(pixelPos + 1, 0x004040);
strip.setPixelColor(pixelPos - 2, 0x001010); strip.setPixelColor(pixelPos + 2, 0x001010);
strip.setPixelColor(minuteval, 0x800080);
strip.setPixelColor(minuteval - 1, 0x200020); strip.setPixelColor(minuteval + 1, 0x200020);
strip.setPixelColor(secondval, 0x808000); strip.setPixelColor(secondval - 1, 0x002F00); strip.setPixelColor(secondval + 1, 0x002F00);
strip.show();
strip.setPixelColor(pixelPos, 0x000000); strip.setPixelColor(pixelPos - 1, 0x000000); strip.setPixelColor(pixelPos + 1, 0x000000);
strip.setPixelColor(pixelPos - 2, 0x000000); strip.setPixelColor(pixelPos + 2, 0x000000);
strip.setPixelColor(minuteval, 0x000000); strip.setPixelColor(minuteval - 1, 0x000000); strip.setPixelColor(minuteval + 1, 0x000000);
strip.setPixelColor(secondval, 0x000000); strip.setPixelColor(secondval - 1, 0x000000); strip.setPixelColor(secondval + 1, 0x000000);
delay(25);
Serial.print(hourval, DEC);
Serial.print(':');
Serial.print(minuteval, DEC);
Serial.print(':');
Serial.println(secondval, DEC);
}