Hallo,
ich habe hier einen Code mit integrierter Fernsteuerung. Die Verkabelung von Motoren und Sensoren ist richtig, denn eine Aktion wird immer ausgeführt, egal welche Taste man drückt, wenn man die andere Aktion ausführen will muss man aber den Resetkonpf drücken.
Wäre nett, wenn mir jemand helfen könnte
LG
#include "IRremote.h"
#include "Servo.h"
#include "Stepper.h"
#define SERVOPIN 10
#define SCHRITTEPROUMDREHUNG 2048
int RECV_PIN = 2;
Servo Servomotor;
IRrecv Empfaenger(RECV_PIN);
decode_results Daten;
int directionPin_A = 12; // Definiere die Pins
int pwmPin_A = 3;
int brakePin_A = 9;
int directionPin_B = 13;
int pwmPin_B = 11;
int brakePin_B = 8;
bool directionState_A;
Stepper Schrittmotor(SCHRITTEPROUMDREHUNG, 4, 6, 5, 7);
void setup()
{
Serial.begin(9600);
Empfaenger.enableIRIn();
Servomotor.attach(SERVOPIN);
Servomotor.write(90);
}
void loop() {
if (Empfaenger.decode(&Daten)) {
if(Daten.value == 0xFF30CF){
Serial.println("Taste 1 erkannt");
Servomotor.write(0);
Schrittmotor.setSpeed(4);
Schrittmotor.step(-SCHRITTEPROUMDREHUNG/4*3);
delay(500);
digitalWrite(directionPin_B, HIGH);
digitalWrite(brakePin_B, LOW);
analogWrite(pwmPin_B, 180);
delay(2000);
digitalWrite(directionPin_B, LOW);
analogWrite(pwmPin_B, 0);
delay(2000);
digitalWrite(brakePin_B, LOW);
analogWrite(pwmPin_B, 180);
delay(200);
analogWrite(pwmPin_B, 0);
Schrittmotor.setSpeed(4);
Schrittmotor.step(SCHRITTEPROUMDREHUNG/4*3);
delay(500);
digitalWrite(directionPin_A, HIGH);
digitalWrite(brakePin_A, LOW);
analogWrite(pwmPin_A, 255);
delay(1000);
analogWrite(pwmPin_A, 0);
delay(1000);
digitalWrite(directionPin_A, LOW);
analogWrite(pwmPin_A, 255);
delay(1000);
analogWrite(pwmPin_A, 0);
Empfaenger.resume();
}
else if(Daten.value == 0xFF18E7){
Serial.println("taste 2 erkannt");
Servomotor.write(180);
Schrittmotor.setSpeed(4);
Schrittmotor.step(-SCHRITTEPROUMDREHUNG/4*3);
delay(500);
digitalWrite(directionPin_B, HIGH);
digitalWrite(brakePin_B, LOW);
analogWrite(pwmPin_B, 180);
delay(2000);
digitalWrite(directionPin_B, LOW);
analogWrite(pwmPin_B, 0);
delay(2000);
digitalWrite(brakePin_B, LOW);
analogWrite(pwmPin_B, 180);
delay(200);
analogWrite(pwmPin_B, 0);
Schrittmotor.setSpeed(4);
Schrittmotor.step(SCHRITTEPROUMDREHUNG/4*3);
delay(500);
digitalWrite(directionPin_A, HIGH);
digitalWrite(brakePin_A, LOW);
analogWrite(pwmPin_A, 255);
delay(1000);
analogWrite(pwmPin_A, 0);
delay(1000);
digitalWrite(directionPin_A, LOW);
analogWrite(pwmPin_A, 255);
delay(1000);
analogWrite(pwmPin_A, 0);
Empfaenger.resume();
}
Empfaenger.resume();
}
}