// La documentation de cette bibliothèque se trouve à l'adresse suivante:
//
github.com/Stan-Reifel/TinyStepper_28BYJ_48//
//
// Cette bibliothèque nécessite que le moteur pas à pas soit connecté à l'Arduino
// en utilisant la carte de pilote ULN2003.
// ************************************************** ************************
#include <TinyStepper_28BYJ_48.h>
#include <Adafruit_NeoPixel.h>
// Configuration NEO Pixel
#define PIN 0
#define LEDS_COUNT 5
# définir la bande ROUGE Couleur (255, 0, 0)
#define GREEN strip.Color (0, 255, 0)
#define BLUE strip.Color (0, 0, 255)
#define WHITE strip.Color (255, 255, 255)
// affectation des broches, toutes les broches numériques peuvent être utilisées
#define MOTOR_IN1_PIN 1
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4
// crée l'objet moteur pas à pas
TinyStepper_28BYJ_48 stepper;
Bande Adafruit_NeoPixel = Adafruit_NeoPixel (LEDS_COUNT, PIN, NEO_GRB + NEO_KHZ800);
void setup () {
// connecter et configurer le moteur pas à pas sur ses broches IO
stepper.connectToPins (MOTOR_IN1_PIN, MOTOR_IN2_PIN, MOTOR_IN3_PIN, MOTOR_IN4_PIN);
// définir la vitesse et les taux d'accélération pour le moteur pas à pas
stepper.setSpeedInStepsPerSecond (256);
stepper.setAccelerationInStepsPerSecondPerSecond (512);
strip.begin ();
strip.show (); // Initialise tous les pixels sur 'off'
}
boucle vide () {
// Faire tourner le moteur vers l'avant d'une révolution
stepper.moveRelativeInSteps (410);
pour (octet i = 0; i <20; i ++) {
fadeInOut (0xff, 0x00, 0x00); // rouge
}
// tourner en arrière 1 rotation, puis attendre 1 seconde
stepper.moveRelativeInSteps (-410);
pour (octet i = 0; i <20; i ++) {
fadeInOut (0x00, 0x00, 0xff); // bleu
}
}
void fadeInOut (octet rouge, octet vert, octet bleu) {
flotteur r, g, b;
pour (int k = 0; k <256; k = k + 1) {
r = (k / 256,0) * rouge;
g = (k / 256,0) * vert;
b = (k / 256,0) * bleu;
setAll (r, g, b);
strip.show ();
retard (5);
}
pour (int k = 255; k> = 0; k = k-2) {
r = (k / 256,0) * rouge;
g = (k / 256,0) * vert;
b = (k / 256,0) * bleu;
setAll (r, g, b);
strip.show ();
retard (5);
}
}
void setAll (octet rouge, octet vert, octet bleu) {
pour (int i = 0; i <LEDS_COUNT; i ++) {
strip.setPixelColor (i, strip.Color (rouge, vert, bleu));
}
strip.show ();
}