Hilfe total anfänger

könnte mir jemand helfen , möchte gerne das eine sketch mit den anderen kombinieren.
Die beiden sketch sind nicht von mir aber möchte neben dem sketch noch ein Micro servo steuern lassen wenn ir sensor nicht belegt ist.
haupt sketch

#include <Servo.h>
#include "Arduino.h"
#include "Trommel.h"
#include "LED.h"

//Trommel-------------------------------------------------------------------------
//Wieviele schritte der motor braucht für eine komplette umdrehung
//mit einem Schrittmotor der 200(1.8 Grad pro schritt) schritte braucht für eine umdrehung:
//200 ohne microstepping, 400 mit 1/2 microstepping, 800 mit 1/4 microstepping usw.
#define StepperStepsPR 800
//drehrichtung vom motor. 0 = gegen uhrzeigersinn, 1 = mit uhrzeigersinn
#define StepperDir 0
//Wie schnell der motor drehen soll
//kleinerer wert = schneller(min. 100), höher = langsamer
#define StepperSpeed 9000
//falls die position der Trommel nicht ganz stimmt
//Dann macht der motor soviele Schritte mehr, es sind auch negative zahlen erlaubt
//Dreht sie nicht weit genug positive zahl, dreht sie zu weit negative zahl
#define TrommelPosKorrektur 0

//Servo Laden-------------------------------------------------------------------------
//Die Servo anfangs position und end position in Grad
//min. 0, max. 180.   7-8 Grad entsprechen etwa 1mm.
#define ServoLadenAnfangPos 2
#define ServoLadenEndPos 163
//Wie schnell der Servo drehen soll
//2 = min. um so höher die zahl um so langsamer, 10 ist schon ziemlich langsam
#define ServoLadenSpeed 4

//Servo Start-------------------------------------------------------------------------
//gibt an ob ein Servo für start drücken an der PM verwendet wird oder
//der PowerMatic start knopf angeklemmt wurde
//0 = ohne servo, 1 = mit servo
#define ServoStartEnable 0
//Die Servo anfangs position und end position in Grad
//min. 0, max. 180
#define ServoStartAnfangPos 2
#define ServoStartEndPos 45
//Wie schnell der Servo drehen soll
//2 = min. um so höher die zahl um so langsamer, 10 ist schon ziemlich langsam
#define ServoStartSpeed 2

//IR TCRT5000-----------------------------------------------------------------
//0 = ohne IR sensor, 1 = mit IR sensor
#define IREnable 1


//LED-------------------------------------------------------------------------
//0 = aus(min.),  255 = Hell(max.)
#define LEDHelligkeit 20




















//..............Servo..............
Servo servoLaden;
Servo servoStart;
#define pinServoLaden 9
#define pinServoStart 10
//..............Schrittmotor..............
#define pinStepperDir 13
#define pinStepperStep 12
//..............Taster..............
#define pinTasterStop 6
#define pinTasterStart 7
//..............NeoPixel LED..............
#define pinNeoPixel 1
//..............PowerMatic..............
#define pinEndschalter 2
#define pinPMStart 5
//..............Trommel Schalter..............
#define pinTrommelEndschalter 8
//..............IR sensor..............
#define pinIRd 4



clsLED LED(pinNeoPixel, LEDHelligkeit);
clsTrommel Trommel(pinStepperDir, pinStepperStep, pinTrommelEndschalter, StepperStepsPR, 
                   StepperSpeed, StepperDir, TrommelPosKorrektur);

bool ServoLadenAnfangPosOK = false;  //hat nur true wenn der servo an der anfangs position ist
bool ServoStartAnfangPosOK = false;  //hat nur true wenn der servo an der anfangs position ist


void setup() 
{
  //Serial.begin(9600);
  pinMode(pinTasterStart, INPUT_PULLUP);
  pinMode(pinTasterStop, INPUT_PULLUP);

  pinMode(pinEndschalter, INPUT);
  if(IREnable) pinMode(pinIRd, INPUT);


  if(ServoStartEnable)
  {
    servoStart.attach(pinServoStart);
    while(!runStartServo(ServoStartAnfangPos)){} //sicher stellen das der servo in der richtigen pos. ist
  }else{
    ServoStartAnfangPosOK = true;
    pinMode(pinPMStart, OUTPUT);
  }

  servoLaden.attach(pinServoLaden);
  while(!runLadenServo(ServoLadenAnfangPos)){} //sicher stellen das der servo in der richtigen pos. ist

  Trommel.begin();
  LED.begin();

  delay(10);
}

void loop()
{
  static enum {AUS, EIN, AUSRICHTEN, STEPPER, LADEN, STOPFEN, FEHLER} zustand = AUS;
  static bool OneCycle = false;
  static bool HuelseDrauf = false;
  uint8_t tmpTasterPressed = 0;

  tmpTasterPressed = checkTaster(true);

  switch(zustand)
  {
    case AUS:
      switch(tmpTasterPressed)
      {
        case pinTasterStop:  
          Trommel.trommelPosOK(true);
          zustand = AUSRICHTEN;  
          break;
        case pinTasterStart:
          if(Trommel.trommelPosOK(false) && ServoLadenAnfangPosOK && ServoStartAnfangPosOK) 
            {zustand = EIN;}
          break;
        default: 
          if(Trommel.trommelPosOK(false) && ServoLadenAnfangPosOK && ServoStartAnfangPosOK)
            {LED.setFarbe(clsLED::ROT);}
          else
            {LED.blink(250, clsLED::ROT);}
      }
      break;
    case EIN:
      zustand = STEPPER;
      break;
    case AUSRICHTEN:     
      LED.setFarbe(clsLED::BLAU);
      if(ServoStartEnable)
      { 
        if(!runStartServo(ServoStartAnfangPos)) break;
      }

      if(runLadenServo(ServoLadenAnfangPos))
      {
        if(!Trommel.trommelPosOK(false))
        {
          if(Trommel.move45Grad()) zustand = AUS;
        }else{
          zustand = AUS;
        }
      }
      break;
    case STEPPER:
      if(Trommel.move45Grad())  //Schrittmotor 45Grad drehen
      {
        if(Trommel.trommelPosOK(false))   //prüfen ob pos. erreicht wurde
        {
          zustand = LADEN;
        }else{
          zustand = FEHLER;
        }
      }
      break;
    case LADEN:
        if(!HuelseDrauf)
        {
          if(runLadenServo(ServoLadenEndPos))   //Zigihülse ganz reinstecken
          {
            HuelseDrauf = true;
            if(!IREnable) break;

            delay(20);
            if(digitalRead(pinIRd) == HIGH) 
            {
              HuelseDrauf = false;
              zustand = FEHLER;
            }
          }
        }else{
          if(runLadenServo(ServoLadenAnfangPos))   //servo in ausgangs pos. zurückdrehen
          {
            HuelseDrauf = false;
            zustand = STOPFEN;
          }
        }
      break;
    case STOPFEN:
      switch(StopfMaschine(false, tmpTasterPressed))
      {
        case 0:
          zustand = FEHLER;
          break;
        case 2:
          if(OneCycle)
            {zustand = AUS;}
          else
            {zustand = STEPPER;} // Nächste zigi machen
          break;
      }
      break;
    case FEHLER:
      LED.blink(250, clsLED::ROT);
      if(tmpTasterPressed == pinTasterStop)
      {
        StopfMaschine(true, tmpTasterPressed);
        HuelseDrauf = false;

        zustand = AUSRICHTEN;
      }
      break;
  }

  if(zustand != AUS && zustand != AUSRICHTEN && zustand != FEHLER)
  {
    switch(tmpTasterPressed)
    {
      case pinTasterStop:
        if(OneCycle && zustand != STOPFEN) 
        {
          zustand = FEHLER;
        }else{ 
          OneCycle = true;
          LED.setFarbe(clsLED::ORANGE);
        }
        break;
      case pinTasterStart:
        OneCycle = false;
        LED.setFarbe(clsLED::GRUEN);
    }
  }
}


//rückgabe wert: 0 = fehler,  1 = noch nicht fertig, 2 = fertig
uint8_t StopfMaschine(bool resetZustand, uint8_t &tmpTasterPressed) 
{
  static enum { AUS, EIN, START, STOPFEN, FEHLER } zustand = AUS;
  static bool ServoEndPosOk = false;

  if(resetZustand)
  {
    zustand = AUS;
    ServoEndPosOk = false;
    return 2;
  }

  if(!ServoStartEnable)
  {
    if(zustand == START || zustand == STOPFEN)
    {
      //falls die PM die HOPPER meldung hat oder die PM pausieren will
      if(tmpTasterPressed == pinTasterStart)  
      {
        digitalWrite(pinPMStart, HIGH);   //Signal an die PM senden
        delay(20);
        digitalWrite(pinPMStart, LOW);

        tmpTasterPressed = 0; //Löschen damit in der loop nix passiert
      }
    } 
  }

  switch (zustand) 
  {
  case AUS:
    if (checkEndschalter()) 
      {zustand = EIN;}
    else 
      {zustand = FEHLER;}
    break;
  case EIN:
    if(ServoStartEnable)
    {
      if(!ServoEndPosOk)
      {
        if(runStartServo(ServoStartEndPos)) ServoEndPosOk = true;
      }else{
        if(runStartServo(ServoStartAnfangPos)) 
        {
          ServoEndPosOk = false;
          zustand = START;
        }
      }
    }else{
      digitalWrite(pinPMStart, HIGH);   //Signal an die PM senden zum Starten
      delay(20);
      digitalWrite(pinPMStart, LOW);
      zustand = START;
    }
    break;
  case START:
    if (!checkEndschalter()) zustand = STOPFEN;
    break;
  case STOPFEN:
    if (checkEndschalter()) 
    {
      zustand = AUS;
      return 2;
    }
    break;
  case FEHLER:
    zustand = AUS;
    return 0;
  }
  return 1;
}




bool runLadenServo(uint8_t endWinkel)
{
  static unsigned long prevMillis = 0;
  static uint8_t istWinkel = 0;
 
  if(millis() - prevMillis >= ServoLadenSpeed)
  {
    prevMillis = millis();
    if(istWinkel == endWinkel) 
    {
      if(istWinkel == ServoLadenAnfangPos)
        {ServoLadenAnfangPosOK = true;}
      else
        {ServoLadenAnfangPosOK = false;}

      return true;
    }else{
      if(istWinkel < endWinkel)
        {istWinkel += 1;}
      else
        {istWinkel -= 1;}
      
      ServoLadenAnfangPosOK = false;
      servoLaden.write(istWinkel);
    }
  }
  return false;
}

bool runStartServo(uint8_t endWinkel)
{
  static unsigned long prevMillis = 0;
  static uint8_t istWinkel = 0;
 
  if(millis() - prevMillis >= ServoStartSpeed)
  {
    prevMillis = millis();
    if(istWinkel == endWinkel) 
    {
      if(istWinkel == ServoStartAnfangPos)
        {ServoStartAnfangPosOK = true;}
      else
        {ServoStartAnfangPosOK = false;}

      return true;
    }else{
      if(istWinkel < endWinkel)
        {istWinkel += 1;}
      else
        {istWinkel -= 1;}
      
      ServoStartAnfangPosOK = false;
      servoStart.write(istWinkel);
    }
  }
  return false;
}


uint8_t checkTaster(bool delayEin)
{ 
  static unsigned long prevMillis = 0;
  static bool isTasterPressed = false;

  //Tasten überprüfung alle 50 millisek.  20x die sek.
  if(millis() - prevMillis >= 50 || !delayEin)
  {
    prevMillis = millis();

    if(digitalRead(pinTasterStart) == LOW)
    {
      if(isTasterPressed && delayEin) return 0;
      isTasterPressed = true; 
      return pinTasterStart;
    }else if(digitalRead(pinTasterStop) == LOW)
    {
      if(isTasterPressed && delayEin) return 0; 
      isTasterPressed = true; 
      return pinTasterStop;
    }else{
      isTasterPressed = false;
      prevMillis += 50;
    }
  }
  return 0;
}


bool checkEndschalter()
{
  static unsigned long prevMillis = 0;
  static bool lastState = false; 
  
  if(millis() - prevMillis >= 50)
  {
    prevMillis = millis();
    if(digitalRead(pinEndschalter) == HIGH)
      {lastState = true;}
    else
      {lastState = false;}
  }
  return lastState;
}







was dazu kommen soll

#include <Servo.h>

#include <Servo.h>

Servo tap_servo;

int sensor_pin = 4;
int tap_servo_pin =5;
int val;

void setup(){
  pinMode(sensor_pin,INPUT);
  tap_servo.attach(tap_servo_pin);
  
}

void loop(){
  val = digitalRead(sensor_pin);

  if (val==0)
  {tap_servo.write(0);
  }
  if (val==1)
  {tap_servo.write(180);
    }
}

Was für einen Arduino verwendest Du?
Falls Uno/Nano: Im ersten Sketch wird mit #define pinNeoPixel 1 einer der Pins der seriellen Schnittstelle (USB, serieller Monitor) verwendet. Das sollte vermieden werden.

An Pin 4 hast Du einen Konflikt zwischen erstem (#define pinIRd 4) und zweitem Sketch (int sensor_pin = 4;).

Also:
Schaltplan malen (geht auch mit Bleistift auf Papier), die Pin-Zuordnung klären und dann zitiere ich mich mal aus einem anderen Thread:

void loop(){
  tap_servo.write(digitalRead(sensor_pin)*180);
}

Danke für eure schnelle Antworten, benutze nano , wegen den Pins muss ich mir noch was überlegen, von d1-d13 sind alle belegt bis auf d10 , ich bräuchte eigentlich noch um den servo und ein 2. tcrt 5000 anzuschließen noch ein Pin, könnte ich ein Anologen dafür nehmen oder doch lieber auf ein anderen Board umsteigen?
Sollte es gehen mit den Anologen wie muss ich die Befehle schreiben bzw. Ansprechen

Du kannst die analogen genau so wie die digitalen als digitale benutzen.

Gruß Tommy

Edit: Außer A6 und A7

Ausnahme A6 und A7.
Können nur als Eingang verwendet werden und brauch analogRead. digitalRead funktioniert bei diesen nicht.

Richtig, ich hatte den Nano übersehen und war gedanklich beim Uno.

Gruß Tommy

habe diesen code versucht wird zwar compeliert aber funktioniert nicht also der servo reagiert nicht

#include <Servo.h>
#include "Arduino.h"
#include "Trommel.h"
#include "LED.h"


//Trommel-------------------------------------------------------------------------
//Wieviele schritte der motor braucht für eine komplette umdrehung
//mit einem Schrittmotor der 200(1.8 Grad pro schritt) schritte braucht für eine umdrehung:
//200 ohne microstepping, 400 mit 1/2 microstepping, 800 mit 1/4 microstepping usw.
#define StepperStepsPR 800
//drehrichtung vom motor. 0 = gegen uhrzeigersinn, 1 = mit uhrzeigersinn
#define StepperDir 0
//Wie schnell der motor drehen soll
//kleinerer wert = schneller(min. 100), höher = langsamer
#define StepperSpeed 9000
//falls die position der Trommel nicht ganz stimmt
//Dann macht der motor soviele Schritte mehr, es sind auch negative zahlen erlaubt
//Dreht sie nicht weit genug positive zahl, dreht sie zu weit negative zahl
#define TrommelPosKorrektur 0

//Servo Laden-------------------------------------------------------------------------
//Die Servo anfangs position und end position in Grad
//min. 0, max. 180.   7-8 Grad entsprechen etwa 1mm.
#define ServoLadenAnfangPos 2
#define ServoLadenEndPos 163
//Wie schnell der Servo drehen soll
//2 = min. um so höher die zahl um so langsamer, 10 ist schon ziemlich langsam
#define ServoLadenSpeed 7

//Servo Start-------------------------------------------------------------------------
//gibt an ob ein Servo für start drücken an der PM verwendet wird oder
//der PowerMatic start knopf angeklemmt wurde
//0 = ohne servo, 1 = mit servo
#define ServoStartEnable 0
//Die Servo anfangs position und end position in Grad
//min. 0, max. 180
#define ServoStartAnfangPos 2
#define ServoStartEndPos 45
//Wie schnell der Servo drehen soll
//2 = min. um so höher die zahl um so langsamer, 10 ist schon ziemlich langsam
#define ServoStartSpeed 2

//IR TCRT5000-----------------------------------------------------------------
//0 = ohne IR sensor, 1 = mit IR sensor
#define IREnable 1


//LED-------------------------------------------------------------------------
//0 = aus(min.),  255 = Hell(max.)
#define LEDHelligkeit 20












// hinzugefügt von mir
Servo tap_servo;

#define sensor_pin A2
#define tap_servo_pin A3
int val;






//..............Servo..............
Servo servoLaden;
Servo servoStart;
#define pinServoLaden 9
#define pinServoStart 10
//..............Schrittmotor..............
#define pinStepperDir 13
#define pinStepperStep 12
//..............Taster..............
#define pinTasterStop 6
#define pinTasterStart 7
//..............NeoPixel LED..............
#define pinNeoPixel 1
//..............PowerMatic..............
#define pinEndschalter 2
#define pinPMStart 5
//..............Trommel Schalter..............
#define pinTrommelEndschalter 8
//..............IR sensor..............
#define pinIRd 4



clsLED LED(pinNeoPixel, LEDHelligkeit);
clsTrommel Trommel(pinStepperDir, pinStepperStep, pinTrommelEndschalter, StepperStepsPR, 
                   StepperSpeed, StepperDir, TrommelPosKorrektur);

bool ServoLadenAnfangPosOK = false;  //hat nur true wenn der servo an der anfangs position ist
bool ServoStartAnfangPosOK = false;  //hat nur true wenn der servo an der anfangs position ist


void setup() 
{
  //Serial.begin(9600);
  pinMode(pinTasterStart, INPUT_PULLUP);
  pinMode(pinTasterStop, INPUT_PULLUP);

  pinMode(pinEndschalter, INPUT);
  if(IREnable) pinMode(pinIRd, INPUT);


  if(ServoStartEnable)
  {
    servoStart.attach(pinServoStart);
    while(!runStartServo(ServoStartAnfangPos)){} //sicher stellen das der servo in der richtigen pos. ist
  }else{
    ServoStartAnfangPosOK = true;
    pinMode(pinPMStart, OUTPUT);
  }

  servoLaden.attach(pinServoLaden);
  while(!runLadenServo(ServoLadenAnfangPos)){} //sicher stellen das der servo in der richtigen pos. ist

  Trommel.begin();
  LED.begin();

  delay(10);
}

void loop()
{
  static enum {AUS, EIN, AUSRICHTEN, STEPPER, LADEN, STOPFEN, FEHLER} zustand = AUS;
  static bool OneCycle = false;
  static bool HuelseDrauf = false;
  uint8_t tmpTasterPressed = 0;

  tmpTasterPressed = checkTaster(true);

  switch(zustand)
  {
    case AUS:
      switch(tmpTasterPressed)
      {
        case pinTasterStop:  
          Trommel.trommelPosOK(true);
          zustand = AUSRICHTEN;  
          break;
        case pinTasterStart:
          if(Trommel.trommelPosOK(false) && ServoLadenAnfangPosOK && ServoStartAnfangPosOK) 
            {zustand = EIN;}
          break;
        default: 
          if(Trommel.trommelPosOK(false) && ServoLadenAnfangPosOK && ServoStartAnfangPosOK)
            {LED.setFarbe(clsLED::ROT);}
          else
            {LED.blink(250, clsLED::ROT);}
      }
      break;
    case EIN:
      zustand = STEPPER;
      break;
    case AUSRICHTEN:     
      LED.setFarbe(clsLED::BLAU);
      if(ServoStartEnable)
      { 
        if(!runStartServo(ServoStartAnfangPos)) break;
      }

      if(runLadenServo(ServoLadenAnfangPos))
      {
        if(!Trommel.trommelPosOK(false))
        {
          if(Trommel.move45Grad()) zustand = AUS;
        }else{
          zustand = AUS;
        }
      }
      break;
    case STEPPER:
      if(Trommel.move45Grad())  //Schrittmotor 45Grad drehen
      {
        if(Trommel.trommelPosOK(false))   //prüfen ob pos. erreicht wurde
        {
          zustand = LADEN;
        }else{
          zustand = FEHLER;
        }
      }
      break;
    case LADEN:
        if(!HuelseDrauf)
        {
          if(runLadenServo(ServoLadenEndPos))   //Zigihülse ganz reinstecken
          {
            HuelseDrauf = true;
            if(!IREnable) break;

            delay(20);
            if(digitalRead(pinIRd) == HIGH) 
            {
              HuelseDrauf = false;
              zustand = FEHLER;
            }
          }
        }else{
          if(runLadenServo(ServoLadenAnfangPos))   //servo in ausgangs pos. zurückdrehen
          {
            HuelseDrauf = false;
            zustand = STOPFEN;
          }
        }
      break;
    case STOPFEN:
      switch(StopfMaschine(false, tmpTasterPressed))
      {
        case 0:
          zustand = FEHLER;
          break;
        case 2:
          if(OneCycle)
            {zustand = AUS;}
          else
            {zustand = STEPPER;} // Nächste zigi machen
          break;
      }
      break;
    case FEHLER:
      LED.blink(250, clsLED::ROT);
      if(tmpTasterPressed == pinTasterStop)
      {
        StopfMaschine(true, tmpTasterPressed);
        HuelseDrauf = false;

        zustand = AUSRICHTEN;
      }
      break;
  }

  if(zustand != AUS && zustand != AUSRICHTEN && zustand != FEHLER)
  {
    switch(tmpTasterPressed)
    {
      case pinTasterStop:
        if(OneCycle && zustand != STOPFEN) 
        {
          zustand = FEHLER;
        }else{ 
          OneCycle = true;
          LED.setFarbe(clsLED::ORANGE);
        }
        break;
      case pinTasterStart:
        OneCycle = false;
        LED.setFarbe(clsLED::GRUEN);
    }
  }
}


//rückgabe wert: 0 = fehler,  1 = noch nicht fertig, 2 = fertig
uint8_t StopfMaschine(bool resetZustand, uint8_t &tmpTasterPressed) 
{
  static enum { AUS, EIN, START, STOPFEN, FEHLER } zustand = AUS;
  static bool ServoEndPosOk = false;

  if(resetZustand)
  {
    zustand = AUS;
    ServoEndPosOk = false;
    return 2;
  }

  if(!ServoStartEnable)
  {
    if(zustand == START || zustand == STOPFEN)
    {
      //falls die PM die HOPPER meldung hat oder die PM pausieren will
      if(tmpTasterPressed == pinTasterStart)  
      {
        digitalWrite(pinPMStart, HIGH);   //Signal an die PM senden
        delay(20);
        digitalWrite(pinPMStart, LOW);

        tmpTasterPressed = 0; //Löschen damit in der loop nix passiert
      }
    } 
  }

  switch (zustand) 
  {
  case AUS:
    if (checkEndschalter()) 
      {zustand = EIN;}
    else 
      {zustand = FEHLER;}
    break;
  case EIN:
    if(ServoStartEnable)
    {
      if(!ServoEndPosOk)
      {
        if(runStartServo(ServoStartEndPos)) ServoEndPosOk = true;
      }else{
        if(runStartServo(ServoStartAnfangPos)) 
        {
          ServoEndPosOk = false;
          zustand = START;
        }
      }
    }else{
      digitalWrite(pinPMStart, HIGH);   //Signal an die PM senden zum Starten
      delay(20);
      digitalWrite(pinPMStart, LOW);
      zustand = START;
    }
    break;
  case START:
    if (!checkEndschalter()) zustand = STOPFEN;
    break;
  case STOPFEN:
    if (checkEndschalter()) 
    {
      zustand = AUS;
      return 2;
    }
    break;
  case FEHLER:
    zustand = AUS;
    return 0;
  }
  return 1;
}




bool runLadenServo(uint8_t endWinkel)
{
  static unsigned long prevMillis = 0;
  static uint8_t istWinkel = 0;
 
  if(millis() - prevMillis >= ServoLadenSpeed)
  {
    prevMillis = millis();
    if(istWinkel == endWinkel) 
    {
      if(istWinkel == ServoLadenAnfangPos)
        {ServoLadenAnfangPosOK = true;}
      else
        {ServoLadenAnfangPosOK = false;}

      return true;
    }else{
      if(istWinkel < endWinkel)
        {istWinkel += 1;}
      else
        {istWinkel -= 1;}
      
      ServoLadenAnfangPosOK = false;
      servoLaden.write(istWinkel);
    }
  }
  return false;
}

bool runStartServo(uint8_t endWinkel)
{
  static unsigned long prevMillis = 0;
  static uint8_t istWinkel = 0;
 
  if(millis() - prevMillis >= ServoStartSpeed)
  {
    prevMillis = millis();
    if(istWinkel == endWinkel) 
    {
      if(istWinkel == ServoStartAnfangPos)
        {ServoStartAnfangPosOK = true;}
      else
        {ServoStartAnfangPosOK = false;}

      return true;
    }else{
      if(istWinkel < endWinkel)
        {istWinkel += 1;}
      else
        {istWinkel -= 1;}
      
      ServoStartAnfangPosOK = false;
      servoStart.write(istWinkel);
    }
  }
  return false;
}


uint8_t checkTaster(bool delayEin)
{ 
  static unsigned long prevMillis = 0;
  static bool isTasterPressed = false;

  //Tasten überprüfung alle 50 millisek.  20x die sek.
  if(millis() - prevMillis >= 50 || !delayEin)
  {
    prevMillis = millis();

    if(digitalRead(pinTasterStart) == LOW)
    {
      if(isTasterPressed && delayEin) return 0;
      isTasterPressed = true; 
      return pinTasterStart;
    }else if(digitalRead(pinTasterStop) == LOW)
    {
      if(isTasterPressed && delayEin) return 0; 
      isTasterPressed = true; 
      return pinTasterStop;
    }else{
      isTasterPressed = false;
      prevMillis += 50;
    }
  }
  return 0;
}


bool checkEndschalter()
{
  static unsigned long prevMillis = 0;
  static bool lastState = false; 
  
  if(millis() - prevMillis >= 50)
  {
    prevMillis = millis();
    if(digitalRead(pinEndschalter) == HIGH)
      {lastState = true;}
    else
      {lastState = false;}
  }
  return lastState;
  {
//hinzugefügt von mir
  tap_servo.write(digitalRead(sensor_pin)*180);
}
}







funktioniert nicht irgendwas mache ich falsch

könnte man den sketch in tab ausführen lassen zb. servo2.h und dann im ino include

Das ändert nichts. Das wäre nur eine Aufteilung auf zwei Tabs um als Mensch mehr Ordnung zu haben. Die Programmfunktion bleibt genau die gleiche.

Wenn du eine Gitarre und eine Geige so aneinander schrauben willst das die beide so klingen wie vorher.
Was meinste geht das ohne Wissen wie Gitarren und Geigen gebaut sind?
Ne geht nicht. Und beim Programmieren ist das genauso.

Also einfach nur zusammeklatschen ist bei dem Code höchstwahrscheinlich nicht.
Wenn du es deinen potentiellen Helfern leichter machen willst dann beendet du mal das Escape-Room-Rätsel "Code analysieren"

und

beschreibst in normalen Worten was die ganzen Funktionen sind.
Wird da ne Lostrommel im Musik-Takt gerührt ? oder was macht deine Maschine?

vgs

schwer zu erklären das sketch ist ja nicht von mir es stopf zigaretten , mit hilfe Powermatic.
wollte es um eine funktion erweitern noch zusätzlich ein Trct5000 und ein Servo betriben.
ich könnte ein youtube link teilen, ich weiss nict ob es erlaubt ist?
Es ist ein nema17 mit Halsensor angeschlossen, die hülsen werden auf das gerät geschoben und verstopft.Beide sketch laufen einzeln aber wenn ich sie kombinieren möchte nicht bzw. der zusätliche servo läuft nicht.

wo hast du es hinzugefügt? is es etwa nicht offensichtlich dass man nicht zufällig vorgehen muss?

jungs ich danke euch ohne eure ilfe hätte ich es nicht geschaft es lag an den klammern hatte immer ein zuviel , jetzt geht es ich muss nur noch alles zusammen testen, soweit wie es aussieht läuft es .
Nochmals vielen Dank

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.