// Dokumentasi untuk perpustakaan ini dapat ditemukan di:
//
github.com/Stan-Reifel/TinyStepper_28BYJ_48//
//
// Perpustakaan ini mengharuskan motor stepper terhubung ke Arduino
// menggunakan papan driver ULN2003.
// ************************************************ ************************
#sertakan <TinyStepper_28BYJ_48.h>
#termasuk <Adafruit_NeoPixel.h>
// konfigurasi NEO Pixel
#define PIN 0
#define LEDS_COUNT 5
#define RED strip.Color (255, 0, 0)
#define GREEN strip.Color (0, 255, 0)
#define BLUE strip.Color (0, 0, 255)
#define WHITE strip.Color (255, 255, 255)
// penugasan pin, pin digital apa pun dapat digunakan
#define MOTOR_IN1_PIN 1
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4
// buat objek motor stepper
TinyStepper_28BYJ_48 stepper;
Adafruit_NeoPixel strip = Adafruit_NeoPixel (LEDS_COUNT, PIN, NEO_GRB + NEO_KHZ800);
pengaturan batal () {
// sambungkan dan konfigurasikan motor stepper ke pin IO-nya
stepper.connectToPins (MOTOR_IN1_PIN, MOTOR_IN2_PIN, MOTOR_IN3_PIN, MOTOR_IN4_PIN);
// atur kecepatan dan kecepatan akselerasi untuk motor stepper
stepper.setSpeedInStepsPerSecond (256);
stepper.setAccelerationInStepsPerSecondPerSecond (512);
strip.begin ();
strip.show (); // Inisialisasi semua piksel ke 'mati'
}
void loop () {
// Putar motor ke arah maju satu revolusi
stepper.moveRelativeInSteps (410);
untuk (byte i = 0; i <20; i ++) {
fadeInOut (0xff, 0x00, 0x00); // merah
}
// putar mundur 1 putaran, lalu tunggu 1 detik
stepper.moveRelativeInSteps (-410);
untuk (byte i = 0; i <20; i ++) {
fadeInOut (0x00, 0x00, 0xff); // biru
}
}
void fadeInOut (byte merah, byte hijau, byte biru) {
float r, g, b;
untuk (int k = 0; k <256; k = k + 1) {
r = (k / 256.0) * merah;
g = (k / 256.0) * hijau;
b = (k / 256.0) * biru;
setAll (r, g, b);
strip.show ();
keterlambatan (5);
}
untuk (int k = 255; k> = 0; k = k-2) {
r = (k / 256.0) * merah;
g = (k / 256.0) * hijau;
b = (k / 256.0) * biru;
setAll (r, g, b);
strip.show ();
keterlambatan (5);
}
}
membatalkan setAll (byte merah, byte hijau, byte biru) {
untuk (int i = 0; i <LEDS_COUNT; i ++) {
strip.setPixelColor (i, strip.Color (merah, hijau, biru));
}
strip.show ();
}