Projekte und Tutorials für Arduino › Foren › StartHardware-Forum › Servomotor und ws2812 RGB stripe › Antwort auf: Servomotor und ws2812 RGB stripe
6. April 2020 um 15:47 Uhr
#7145
Thorsten
Teilnehmer
Hi….
ich hab das jetzt erstmal so umgesetzt….und es funktioniert…..
#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define PIN 7
#define BRIGHTNESS 50
const int rfdown = 2;
const int rfup = 3;
const int servo = 9;
int pos = 0;
int i = 0;
Servo rfServo;
Adafruit_NeoPixel strip = Adafruit_NeoPixel (18, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
// put your setup code here, to run once:
strip.begin();
strip.show();
strip.setBrightness(BRIGHTNESS);
pinMode(rfdown, INPUT);
pinMode(rfup, INPUT);
for(i=0;i <strip.numPixels(); i++){
strip.setPixelColor(i,255,0,0);
}
strip.show();
delay(2);
rfServo.attach(servo);
}
void loop() {
// put your main code here, to run repeatedly:
if(digitalRead(rfdown)==HIGH){
rfServo.detach();
redfade();
delay(1);
rfServo.attach(servo);
for(pos = 95; pos >= 0; pos -= 1){
rfServo.write(pos);
delay(30);
}
for(i=0;i <strip.numPixels(); i++){
strip.setPixelColor(i,255,0,0);
}
strip.show();
delay(2);
}
if(digitalRead(rfup)==HIGH){
rfServo.detach();
redfade();
delay(1);
rfServo.attach(servo);
for(pos = 0; pos <= 95; pos +=1){
rfServo.write(pos);
delay(30);
}
for(i=0;i <strip.numPixels(); i++){
strip.setPixelColor(i,255,0,0);
}
strip.show();
delay(2);
}
}
void redfade(){
uint16_t i,j;
for (j=15;j<255;j++){
for(i=0;i <strip.numPixels(); i++){
strip.setPixelColor(i,j,0,0);
}
strip.show();
delay(2);
}
delay(50);
for(j=255;j>15;j--){
for(i=0;i<strip.numPixels(); i++){
strip.setPixelColor(i,j,0,0);
}
strip.show();
delay(2);
}
delay(50);
for (j=15;j<255;j++){
for(i=0;i <strip.numPixels(); i++){
strip.setPixelColor(i,j,0,0);
}
strip.show();
delay(2);
}
delay(50);
for(j=255;j>15;j--){
for(i=0;i<strip.numPixels(); i++){
strip.setPixelColor(i,j,0,0);
}
strip.show();
delay(2);
}
delay(50);
}
Der Kollege soll das mal testen….ob der Rangefinder für die paar sec. oben hält die das Licht fadet….da ich den Servo wieder auf attached setzte nachdem er die Position erreicht hat hält er die ja dann auch…geht nur um die Blinksequenz…