INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wegbegrenzung für Schrittmotor
11.01.2019, 15:33
Beitrag #41
RE: Wegbegrenzung für Schrittmotor
Zwischen Spannungseingang und Signalausgang ist ein 10kOhm Widerstand.
Wo fehlen die Klammern? Sind doch eigentlich alle da.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2019, 15:39
Beitrag #42
RE: Wegbegrenzung für Schrittmotor
Ich denke,daß es so muß:
if((duration1>1700)&&(Status1 == HIGH))
{digitalWrite(Ausgang1,HIGH);}

if((duration1>1700)&&(Status1 == HIGH));
habe ich noch nirgendwo gesehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2019, 16:58
Beitrag #43
RE: Wegbegrenzung für Schrittmotor
Ah, ok. Werde ich nachher mal ausprobieren. Wobei der Skatch weitesgehend funktioniert, wenn ich das ganze Gedöns mit den Endlagenschalter herausnehme.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2019, 23:53
Beitrag #44
RE: Wegbegrenzung für Schrittmotor
Ich hab das mit den geschweiften Klammern mal ausprobiert, und.. funktioniert noch weniger.
Also hab ich weiter probiert und schließlich bin ich bei folgendem, so weit funktionierenden, Sketch gelandet. Allerdings habe ich erstmal nur zwei Hallsensoren angeschlossen/eingebunden, mir fehlten die Ein-/Ausgänge.
Code:
/***      4 Kanal      ***
*** RC Lichtsteuerung ***
***   by Mr.Medium    ***
***  edit by Scouter  */
int Eingang1 = 2; //Empfängerkanal 1
int Eingang2 = 3; //Empfängerkanal 2
int Eingang3 = 4; //Empfängerkanal 3
int Eingang4 = 5;  //Empfängerkanal 4
int Ausgang1 = 6;  //Relais 1
int Ausgang2 = 7;  //Relais 2
int Ausgang3 = 8;  //Relais 3
int Ausgang4 = 9;  //Relais 4
int Ausgang5 = A3; //Relais 5
int Ausgang6 = A0; //Relais 6
int Ausgang7 = A1; //Relais 7
int Ausgang8 = A2; //Relais 8
int Eingang5 = 10;  //Hallsensor1
int Eingang6 = 11;  //Hallsensor2
int Status1;   //Hallsensor1 Status
int Status2;   //Hallsensor2 Status
unsigned long duration1; //Pulslänge 1
unsigned long duration2; //Pulslänge 2
unsigned long duration3; //Pulslänge 3
unsigned long duration4; //Pulslänge 4
void setup(){
pinMode(Eingang1,INPUT);
pinMode(Eingang2,INPUT);
pinMode(Eingang3,INPUT);
pinMode(Eingang4,INPUT);
pinMode(Eingang5,INPUT);
pinMode(Eingang6,INPUT);
pinMode(Ausgang1,OUTPUT);
pinMode(Ausgang2,OUTPUT);
pinMode(Ausgang3,OUTPUT);
pinMode(Ausgang4,OUTPUT);
pinMode(Ausgang5,OUTPUT);
pinMode(Ausgang6,OUTPUT);
pinMode(Ausgang7,OUTPUT);
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
}
void loop(){
    Ueberwachen_Eingang1();
}
void Ueberwachen_Eingang1()
{
  duration1 = pulseIn(Eingang1,HIGH);
  Status1 = digitalRead(Eingang5);
  if(duration1>1700)
  digitalWrite(Ausgang1,HIGH);
  if((duration1<1700)&&(duration1>1200)||(Status1 == LOW))
  digitalWrite(Ausgang1,LOW);
  if(duration1<1300)
  digitalWrite(Ausgang2,HIGH);
  if((duration1>1200)&&(duration1<1700))
  digitalWrite(Ausgang2,LOW);
    Ueberwachen_Eingang2();
  }
void Ueberwachen_Eingang2()
{
  duration2 = pulseIn(Eingang2,HIGH);
  Status2 = digitalRead(Eingang6);
  if(duration2>1700)
  digitalWrite(Ausgang3,HIGH);  
  if((duration2<1700)&&(duration1>1200)||(Status2 == LOW))
  digitalWrite(Ausgang3,LOW);
  if(duration2<1300)
  digitalWrite(Ausgang4,HIGH);
  if((duration2>1200)&&(duration1<1700))
  digitalWrite(Ausgang4,LOW);
  Ueberwachen_Eingang3();
}
void Ueberwachen_Eingang3()
{
  duration3 = pulseIn(Eingang3,HIGH);
  if(duration3>1800)
  digitalWrite(Ausgang5,HIGH);  
  if((duration3<1700)&&(duration3>1200))
  digitalWrite(Ausgang5,LOW);
  if(duration3<1200)
  digitalWrite(Ausgang6,HIGH);
  if((duration3>1200)&&(duration3<1700))
  digitalWrite(Ausgang6,LOW);
  Ueberwachen_Eingang4();
}
void Ueberwachen_Eingang4()
{
  duration4 = pulseIn(Eingang4,HIGH);
  if(duration4>1800)
  digitalWrite(Ausgang7,HIGH);  
  if((duration4<1700)&&(duration4>1200))
  digitalWrite(Ausgang7,LOW);
  if(duration4<1200)
  digitalWrite(Ausgang8,HIGH);
  if((duration4>1200)&&(duration4<1700))
  digitalWrite(Ausgang8,LOW);
}


Vielleicht könnte ein Kenner nochmal drüber schauen, ob man da das Eine oder Andere verbessern kann.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Projekt Portionierer mit Schrittmotor, Bluetooth hilfe Flieger 3 618 09.08.2018 13:02
Letzter Beitrag: Hilgi
  Endschalter für Schrittmotor clemens5555 10 1.977 18.04.2018 14:37
Letzter Beitrag: Tommy56
  Schrittmotor mit Puls/Richtung Steuern Günni 6 1.543 19.01.2018 10:30
Letzter Beitrag: Tommy56
  Schrittmotor Geschwindigkeit mit Wägezelle + HX711 Modul steuern Schrittmotor 10 2.951 30.08.2017 23:45
Letzter Beitrag: hotsystems
  Schrittmotor mit l298n Sequenz huber5093 10 2.388 26.04.2017 15:06
Letzter Beitrag: huber5093
  Haltestrom Schrittmotor reduzieren TimF 3 2.299 24.10.2016 12:33
Letzter Beitrag: Binatone
  Schrittmotor Clemens55555 9 3.417 25.08.2016 10:15
Letzter Beitrag: Binatone
  Schrittmotor soll auf Tasterdruck bis zum Endschalter fahren Wurstbemme 11 6.621 08.01.2016 11:56
Letzter Beitrag: hotsystems
  Piezosummer und Schrittmotor Gilbert Neon 0 1.119 20.12.2015 15:40
Letzter Beitrag: Gilbert Neon
  Problem mit 2 Potis und Schrittmotor Sven90 1 1.681 24.09.2015 10:19
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste