Zum Inhalt springen

Antwort auf: Steppermotor um eine bestimmte Gradzahl drehen

Projekte und Tutorials für Arduino Foren StartHardware-Forum Steppermotor um eine bestimmte Gradzahl drehen Antwort auf: Steppermotor um eine bestimmte Gradzahl drehen

#7120
Thorsten
Teilnehmer

Hi….

so hier mal der Sketch den ich bis jetzt habe…..
damit fadet der LED Stripe einmal auf und runter…..danach fährt der Motor die Steps und dann leuchten die LEDs konstant…..
und das soll nun gleichzeitig laufen und so ca. 5 bis 6 sek. dauern….

Ich habe hier jetzt auch nur einen Taster erstmal zum testen zum runterfahren des Rangefinders, beim betätigen eines zweiten Tasters soll dann der Rangefinder wieder nach oben fahren und die LEDs wieder faden…..

und da hab ich nun das Problem mit den millis()…..

#include <Stepper.h>
#include <Adafruit_NeoPixel.h>

#define PIN 6

#define BRIGHTNESS 50

int button = 5;
const int steps = 500;

Stepper stepper(steps, 8,9,10,11);
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);
  stepper.setSpeed(30);
  pinMode(button, INPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(button)==HIGH){
      redfade();
      motor(); 
        for(int i = 0; i<strip.numPixels();i++){
         strip.setPixelColor(i,strip.Color(255,0,0));
         strip.show();  
      } 
}else{
}
}

void motor(){
  stepper.step(-steps);
}
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(10);
  }
  delay(500);
  
    for(j=255;j>15;j--){
    for(i=0;i<strip.numPixels(); i++){
      strip.setPixelColor(i,j,0,0);
    }
    strip.show();
    delay(10);
  }
  delay(500);
}