//此库的文档可以在以下位置找到:
//
github.com/Stan-Reifel/TinyStepper_28BYJ_48//
//
//此库要求将步进电机连接到Arduino
//使用ULN2003驱动板。
// ********************************** .... ************************
#include <TinyStepper_28BYJ_48.h>
#include <Adafruit_NeoPixel.h>
// NEO Pixel配置
#定义PIN码0
#定义LEDS_COUNT 5
#定义红色条带颜色(255,0,0)
#定义绿色条带颜色(0,255,0)
#定义蓝色条带颜色(0,0,255)
#定义白色条带颜色(255,255,255)
//引脚分配,可以使用任何数字引脚
#define MOTOR_IN1_PIN 1
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4
//创建步进电机对象
TinyStepper_28BYJ_48步进器;
Adafruit_NeoPixel带= Adafruit_NeoPixel(LEDS_COUNT,PIN,NEO_GRB + NEO_KHZ800);
无效设置(){
//将步进电机连接并配置到其IO引脚
stepper.connectToPins(MOTOR_IN1_PIN,MOTOR_IN2_PIN,MOTOR_IN3_PIN,MOTOR_IN4_PIN);
//设置步进电机的速度和加速度
stepper.setSpeedInStepsPerSecond(256);
stepper.setAccelerationInStepsPerSecondPerSecond(512);
strip.begin();
strip.show(); //将所有像素初始化为“关闭”
}
无效循环(){
//向前旋转电机一圈
stepper.moveRelativeInSteps(410);
for(字节i = 0; i <20; i ++){
fadeInOut(0xff,0x00、0x00); //红色
}
//向后旋转1圈,然后等待1秒钟
stepper.moveRelativeInSteps(-410);
for(字节i = 0; i <20; i ++){
fadeInOut(0x00、0x00、0xff); //蓝色
}
}
void fadeInOut(红色字节,绿色字节,蓝色字节){
浮动r,g,b;
对于(int k = 0; k <256; k = k + 1){
r =(k / 256.0)*红色;
g =(k / 256.0)*绿色;
b =(k / 256.0)*蓝色;
setAll(r,g,b);
strip.show();
延迟(5);
}
对于(int k = 255; k> = 0; k = k-2){
r =(k / 256.0)*红色;
g =(k / 256.0)*绿色;
b =(k / 256.0)*蓝色;
setAll(r,g,b);
strip.show();
延迟(5);
}
}
void setAll(红色字节,绿色字节,蓝色字节){
对于(int i = 0; i <LEDS_COUNT; i ++){
strip.setPixelColor(i,strip.Color(红色,绿色,蓝色));
}
strip.show();
}