hey hi
ich hab mir eine Schiebetür gebaut nun habe ich das Problem das der Sensor immer nach 3 sek aus geht und die tür sich schließt hier hätte ich gerne ein timer der erst wen 7 sekunden der status auf 0 ist die Tür schließt und jedes mal wen status 1 ist der timer wieder auf 0 geht
geht um diesen abschnit
Sammy = digitalRead(10); //anfang
Serial.println(Sammy,DEC);
if (Sammy == 0) // hier muss ein teimer hin 7 sekunden reset wen sammy auf 1 ist
{if(Status == 2) {
hier der ganze code
#define EN 8
#define X_DIR 5
#define X_STP 2
int Sammy;
int Status;
void step(boolean dir, byte dirPin, byte stepperPin, int steps)
{digitalWrite(dirPin, dir);
delay(0);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(130 -i/110);
digitalWrite(stepperPin, LOW);
delayMicroseconds(130-i/110); }}
void step2(boolean dir, byte dirPin, byte stepperPin, int steps)
{digitalWrite(dirPin, dir);
delay(0);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(35+i/120);
digitalWrite(stepperPin, LOW);
delayMicroseconds(35+i/120); }}
void step3(boolean dir, byte dirPin, byte stepperPin, int steps)
{digitalWrite(dirPin, dir);
delay(0);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(31);
digitalWrite(stepperPin, LOW);
delayMicroseconds(31); }}
void step6(boolean dir, byte dirPin, byte stepperPin, int steps)
{digitalWrite(dirPin, dir);
delay(0);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(150-i/100);
digitalWrite(stepperPin, LOW);
delayMicroseconds(150-i/100); }}
void step5(boolean dir, byte dirPin, byte stepperPin, int steps)
{digitalWrite(dirPin, dir);
delay(0);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(44);
digitalWrite(stepperPin, LOW);
delayMicroseconds(44); }}
void step1(boolean dir, byte dirPin, byte stepperPin, int steps)
{digitalWrite(dirPin, dir);
delay(0);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(20+i/100);
digitalWrite(stepperPin, LOW);
delayMicroseconds(20+i/100); }}
void setup(){
Serial.begin(9600);
pinMode(12,INPUT); //taster innen
pinMode(13,OUTPUT); // led
pinMode(10,INPUT); // bewegungsmelder
pinMode(11,INPUT); //taster außen
pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);
pinMode(EN, OUTPUT);
digitalWrite(EN, HIGH);
digitalWrite(13, LOW );
}
//öffnen per taster außen
void loop(){
Sammy = digitalRead(11);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 0){
digitalWrite(13, HIGH );
delay(50);
digitalWrite(EN, LOW);
delay(50);
step(false, X_DIR, X_STP, 12000);
step3(false, X_DIR, X_STP, 21000);
step1(false, X_DIR, X_STP, 12000);
delay(1000);
digitalWrite(EN, HIGH);
digitalWrite(13, HIGH );
Status = 1;}}
Sammy = digitalRead(11);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 1){
digitalWrite(13, LOW );delay(220);digitalWrite(13, HIGH );delay(210); digitalWrite(13, LOW );delay(200);digitalWrite(13, HIGH );delay(190);
digitalWrite(13, LOW );delay(180);digitalWrite(13, HIGH ); delay(170);digitalWrite(13, LOW );delay(160); digitalWrite(13, HIGH );delay(150);digitalWrite(13, LOW );
delay(140);digitalWrite(13, HIGH );delay(130);digitalWrite(13, LOW );delay(120);digitalWrite(13, HIGH );delay(110);digitalWrite(13, LOW );
delay(100);digitalWrite(13, HIGH );delay(90);digitalWrite(13, LOW );delay(80);digitalWrite(13, HIGH );delay(70);digitalWrite(13, LOW );
delay(60);digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(30);digitalWrite(13, LOW );
delay(20);digitalWrite(13, HIGH );delay(10);digitalWrite(13, LOW );delay(9);digitalWrite(13, HIGH );delay(8); digitalWrite(13, LOW );
delay(7);digitalWrite(13, HIGH );delay(6);digitalWrite(13, LOW );delay(5);digitalWrite(13, HIGH );delay(4);digitalWrite(13, LOW );
delay(3);digitalWrite(13, HIGH );delay(2);digitalWrite(13, LOW );delay(1);digitalWrite(13, HIGH );delay(1);digitalWrite(13, LOW );
digitalWrite(EN, LOW);
delay(50);
step6(true, X_DIR, X_STP, 12000);
step5(true, X_DIR, X_STP, 21000);
step2(true, X_DIR, X_STP, 12000);
delay(1000);
digitalWrite(EN, HIGH);
Status = 4 ;}}
Sammy = digitalRead(11);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 2){
digitalWrite(13, LOW );delay(50);digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );
delay(1000);
Status = 1;}}
Sammy = digitalRead(11);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 4){
digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(30);digitalWrite(13, LOW );
delay(1000);
Status = 0;}}
//ab hier der sensor
Sammy = digitalRead(10);
Serial.println(Sammy,DEC);
if (Sammy == 1){
if(Status == 0){
digitalWrite(13, HIGH );
delay(50);
digitalWrite(EN, LOW);
delay(50);
step(false, X_DIR, X_STP, 12000);
step3(false, X_DIR, X_STP, 21000);
step1(false, X_DIR, X_STP, 12000);
delay(1000);
digitalWrite(EN, HIGH);
Status = 2 ; }}
Sammy = digitalRead(10); //anfang
Serial.println(Sammy,DEC);
if (Sammy == 0) // hier muss ein teimer hin 7 sekunden reset wen sammy auf 1 ist
{if(Status == 2)
{digitalWrite(13, LOW );delay(220);digitalWrite(13, HIGH );delay(210); digitalWrite(13, LOW );delay(200);digitalWrite(13, HIGH );delay(190);
digitalWrite(13, LOW );delay(180);digitalWrite(13, HIGH ); delay(170);digitalWrite(13, LOW );delay(160); digitalWrite(13, HIGH );delay(150);digitalWrite(13, LOW );
delay(140);digitalWrite(13, HIGH );delay(130);digitalWrite(13, LOW );delay(120);digitalWrite(13, HIGH );delay(110);digitalWrite(13, LOW );
delay(100);digitalWrite(13, HIGH );delay(90);digitalWrite(13, LOW );delay(80);digitalWrite(13, HIGH );delay(70);digitalWrite(13, LOW );
delay(60);digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(30);digitalWrite(13, LOW );
delay(20);digitalWrite(13, HIGH );delay(10);digitalWrite(13, LOW );delay(9);digitalWrite(13, HIGH );delay(8); digitalWrite(13, LOW );
delay(7);digitalWrite(13, HIGH );delay(6);digitalWrite(13, LOW );delay(5);digitalWrite(13, HIGH );delay(4);digitalWrite(13, LOW );
delay(3);digitalWrite(13, HIGH );delay(2);digitalWrite(13, LOW );delay(1);digitalWrite(13, HIGH );delay(1);digitalWrite(13, LOW );
digitalWrite(EN, LOW);
delay(50);
step6(true, X_DIR, X_STP, 12000);
step5(true, X_DIR, X_STP, 21000);
step2(true, X_DIR, X_STP, 12000);
delay(1000);
digitalWrite(EN, HIGH);
digitalWrite(13, LOW );
Status = 0 ;}}
Sammy = digitalRead(10);
Serial.println(Sammy,DEC);
if (Sammy == 1)
{if(Status == 1)
{ if (millis() % 1000 > 200)
{
digitalWrite(13, LOW );
} else {
digitalWrite(13, HIGH );
}
}
}
//ab hier ist alles taster innen
Sammy = digitalRead(12);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 2){
digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );
delay(1000);
Status = 1;}}
Sammy = digitalRead(12);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 3){
digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(30);digitalWrite(13, LOW );
delay(1000);
Status = 0;}}
Sammy = digitalRead(12);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 0){
digitalWrite(13, HIGH );
delay(50);
digitalWrite(EN, LOW);
delay(50);
step(false, X_DIR, X_STP, 12000);
step3(false, X_DIR, X_STP, 21000);
step1(false, X_DIR, X_STP, 12000);
delay(1000);
digitalWrite(EN, HIGH);
digitalWrite(13, HIGH );
Status = 1;}}
Sammy = digitalRead(12);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 1){
digitalWrite(13, LOW );delay(220);digitalWrite(13, HIGH );delay(210); digitalWrite(13, LOW );delay(200);digitalWrite(13, HIGH );delay(190);
digitalWrite(13, LOW );delay(180);digitalWrite(13, HIGH ); delay(170);digitalWrite(13, LOW );delay(160); digitalWrite(13, HIGH );delay(150);digitalWrite(13, LOW );
delay(140);digitalWrite(13, HIGH );delay(130);digitalWrite(13, LOW );delay(120);digitalWrite(13, HIGH );delay(110);digitalWrite(13, LOW );
delay(100);digitalWrite(13, HIGH );delay(90);digitalWrite(13, LOW );delay(80);digitalWrite(13, HIGH );delay(70);digitalWrite(13, LOW );
delay(60);digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(30);digitalWrite(13, LOW );
delay(20);digitalWrite(13, HIGH );delay(10);digitalWrite(13, LOW );delay(9);digitalWrite(13, HIGH );delay(8); digitalWrite(13, LOW );
delay(7);digitalWrite(13, HIGH );delay(6);digitalWrite(13, LOW );delay(5);digitalWrite(13, HIGH );delay(4);digitalWrite(13, LOW );
delay(3);digitalWrite(13, HIGH );delay(2);digitalWrite(13, LOW );delay(1);digitalWrite(13, HIGH );delay(1);digitalWrite(13, LOW );
digitalWrite(EN, LOW);
delay(50);
step6(true, X_DIR, X_STP, 12000);
step5(true, X_DIR, X_STP, 21000);
step2(true, X_DIR, X_STP, 12000);
delay(1000);
digitalWrite(EN, HIGH);
Status = 3 ;}}
Sammy = digitalRead(12);
Serial.println(Sammy,DEC);
if (Sammy == 0){
if(Status == 4){
digitalWrite(13, HIGH );delay(50);digitalWrite(13, LOW );delay(40);digitalWrite(13, HIGH );delay(30);digitalWrite(13, LOW );
delay(1000);
Status = 0;}}
}