-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: Ich brauch professionelle Hilfe bei Programmierung meines Kranes

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.07.2015
    Ort
    Bayern
    Beiträge
    17

    Ich brauch professionelle Hilfe bei Programmierung meines Kranes

    Anzeige

    Hallo liebe Gemeinde,
    Ich bin 49 Jahre alt, baue Schiffsmodelle mit möglichst viel Funktionen und hab vor ca. einem halben Jahr damit begonnen den Arduino mit in meine Schffe einzubauen.
    Jetzt baue ich gerade die Calypso und hab den Kran funktionsfähig gemacht. Mechanisch funktioniert er und mit meinem geschriebenen Programm läuft er mit einigen Mängeln.
    Könnte von Euch mal jemand ein Auge auf meinen Sketch werfen und mir mit Ideen zur Verbesserung weiterhelfen?

    Folgende Probleme hab ich bis jetzt:
    1. Blink LED blinkt auch weiter wenn Programm durchlaufen ist!
    2. Seilposition verschiebt sich leicht ( ich denke das ist ein Problem mit den Delays)!
    An der Startfreigabe arbeite ich noch( muss ich noch mit Pullup oder Pulldown Tastern verwirklichen)

    Ich habe in dem Sketch auch alle Ideen die Ich schon probiert habe dringelassen, aber auskomplimentiert!
    Hier der Sketch
    Code:
    //Kran*der*Calypso*ansteuern
    //1*Stepper*und*1*DC*Motor
    
    
    #include*<Stepper.h>
    #include*"TimerOne.h"
    #define*LED*7
    
    int s1 = 4;                          //Starttaster von RC
    int s2 = 6;                          //Endschalter Kran in Ruheposition
    int value = LOW;
    int Kranstart = HIGH;
    //const*int*ledPin*=**7;******//*the*number*of*the*LED*pin
    
    //*Variables*will*change:
    //int*ledState*=*LOW;*************//*ledState*used*to*set*the*LED
    //long*previousMillis*=*0;********//*will*store*last*time*LED*was*updated
    
    //long*interval*=*250;***********//*interval*at*which*to*blink*(milliseconds)
    
    //int*StartKran*=*HIGH;
    
    int SPMU1 = 32;
    int RELAISAUF = 2;   // Seil aufrollen
    int RELAISAB  = 3;   // Seil abrollen
    
    Stepper myStepper1(SPMU1,10,11,12,13);  //Kran drehen          
    
    void setup() {
    {
    **pinMode(LED, OUTPUT);
    **Timer1.initialize(100000);         // initialize timer1, and set a 1/2 second period
    **Timer1.attachInterrupt(callback);  // attaches callback() as a timer overflow interrupt
    **Timer1.pwm(9, 512);                // setup pwm on pin 9, 50% duty cycle
    **}
    **// set the digital pin as output:
    **//pinMode(ledPin, OUTPUT);
    **
    **pinMode(s1,INPUT);      // Signal Kran starten
    **pinMode(s2,INPUT);      // Schalter Kran in Ruheposition
    **
    **pinMode(RELAISAUF,OUTPUT); 
    **pinMode(RELAISAB,OUTPUT); 
    **
    **myStepper1.setSpeed(400);  
    }
    void callback(){
    **{
    **// Die LED blinkt unabhängig vom Programmcode in loop()
    **digitalWrite(LED, digitalRead(LED) ^ 1); // EXOR invertiert
    *
    **}
    }
    
    void loop()
    
    
    *
    **//digitalRead((s1,HIGH)&&(s2,HIGH) = digitalWrite (StartKran,HIGH));
    *// {
    *// unsigned long currentMillis = millis();
    *
    **//if(currentMillis - previousMillis > interval) {
    ****// save the last time you blinked the LED
    ***// previousMillis = currentMillis;  
    ****// if the LED is off turn it on and vice-versa:
    ****//if(ledState ==LOW);
    **//  ledState =((ledState == LOW)? HIGH : LOW);
    ****//ledState = HIGH;
    ****//else
    ****//ledState = LOW;
    ****// set the LED with the ledState of the variable:
    ***// digitalWrite(ledPin, ledState);
    *//}
    //}
    {
    **value*=*digitalRead(s2);
    **digitalWrite(Kranstart,value);{
    **if (Kranstart,HIGH)  
    **
    **digitalWrite (RELAISAUF, HIGH);             
    **delay(2600);
    **digitalWrite (RELAISAUF, LOW);
    **delay(2000);
    **
    **myStepper1.step(-3600);  //Kran ausdrehen (Winkel einstellen)
    **delay(2000);           //Warten
    **
    **digitalWrite (RELAISAB, HIGH);
    **delay(13000);                 //Seil ab für 13 sec
    **digitalWrite (RELAISAB, LOW);
    **delay(20000);
    **
    **digitalWrite (RELAISAUF, HIGH);
    **delay(13000);
    **digitalWrite (RELAISAUF, LOW);
    **delay(2000);
    **
    **
    **myStepper1.step(3600);  //Kran eindrehen
    **delay(3000);
    **
    **digitalWrite (RELAISAB, HIGH);
    **delay(2600);
    **digitalWrite (RELAISAB, LOW);
    **delay(5000);
    **}
    **{
    *// detachInterrupt (void callback);{
    **//  {
    *// digitalWrite(LED, digitalRead(LED) ^ 0); // EXOR invertiert
    *
    **//}
    //}
    **while(s2,HIGH);
    **
    }}
    Danke schonmal für eure Bemühungen und vielleicht wird mir ja geholfen

    Gruß Bodo

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    24558
    Alter
    39
    Beiträge
    1.356
    Hallo Bodo,

    ich kenne mich mit Arduino-Boards selbst jetzt nicht so gut aus, aber der Timer1 scheint zumindest bei "Timer1.pwm(9, 512);" doch schon von "Timer1.attachinterrupt(callback);" in Benutzung zu sein?! Alternative mal prüfen ob es einen anderen Timer gibt der eine der beiden Funktionen auch ausführen kann.
    Wenn man Anfänger ist wäre meine Empfehlung nicht gleich mit einem derartige Code anzufangen der möglicherweise eine Mehrfachnutzung eines Timers benutzt, die man ggf noch nicht nachvollziehen kann.

    Wenn man rumprobiert mit der gesamt Systemlaufzeit ( currentMillis ) und irgednwann alles durcheinander ist, dann kann es helfen einen kompletten loop-Block dafür anzulegen und dann durch auskommentiren ganzer loop-Blöcke (siehe unten) zu arbeiten.
    Es sieht sehr nach zusammenkopiertenm Code aus. Zumal der Programmierstil echt unterirdisch ist und man wirklich nur schwer lesen kann. Sorry.

    Was sollen diie ganzen Sternchen da? Ist dir bewußt dass des " * "-Symbol auch ein Programierelement von C ist.
    Neben der mathematishcen Bedeutung vom " * ", wird der u.a. noch bei "Zeigern" benutzt. Dazu kommt das man damit ganze Codeblöcke (unter bestimmten Bedingungen ) auskommentieren kann. Es Ist also nicht nötig jede Zeile mit " // " rauszunehmen, hier bietet sich ein " /* bzw */ " an, womit der umschliessende Code auskommentiert wird. Also so: /* Code der auskommentiert werden soll */ .
    Dazu schaut man sich am besten einen Tutoriel wie dieses Hier bei You Tube an (klick mich). Hier habe ich grade sogar noch was gelernt
    Für Codeeinrückungen bietet sich die Tab " ->| " an - kann man auch zweimal drücken um mehr einzurücken oder man stellt die Einstellungen so um das gleich mehr eingerückt wird.

    Da die LED als Hardware-Interrupt programmiert ist, blinkt sie eben auch wenn "das Programm durchlaufen" ist. Hierzu muss man sagen dass das Programm nur im Ablauf durch Deine Eingaben abgezweigt wird. Das Programm selbst läuft immer in der loop - solange ausreichend Spannung vorhanden ist.
    Um das abzustellen ist es nötig den Interrupt mit einem Ereignis innerhalb der loop zu verbinden welches die Blink-Bedingung auslöst oder anhält.

    Das Seilwindenproblem entsteht vermutlich ganz genau wie Du schon sagst wegen den ganzen Delays. Wird der Arm jetzt per RC-Fernsteuerung auch mit Knüppel gesteuert oder nur per Taster an/aus auf der Fernsteuerung?

    Viele Grüße
    Jörg
    "Es ist schwierig, jemanden dazu zu bringen, etwas zu verstehen, wenn er sein Gehalt dafür bekommt, dass er es nicht versteht" [Upton Sinclair] gez-boykott

  3. #3
    Schiffe BodoUnregistriert
    Gast
    Danke erstmal für deine Antwort, das mit den vielen * kann ich mir nur damit erklären das es hier beim einfügen alle Leerzeichen in Sternchen umwandelt. Das mit der LED ist eigentlich so gewollt, sie soll neben dem Programm laufen. Nur weiß ich nicht wie ich sie bei Programmende auch abschalte. Du hast recht es ist viel zusammenkopiert. Der gesamte Kran wird nur mit einem Startsignal von der Fernsteuerung gestartet. Der Arm wird mit einem Schrittmotor gedreht und die Seilwinde mit einem Getriebemotor angetrieben. Für den Getriebemotor habe ich 2 Relais zu wechseln der Drehrichtung.
    Schönen Sonntag

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Du muss den Interrupt wieder abschalten und die Led anschließend ausschalten. Wenn du nur den Interrupt abschaltest könnte es sein das die Led eingeschaltet bleibt.

    Ansonsten würde ich empfehlen nicht einfach zusammen kopieren sondern Programme versuchen zu verstehen und im eigenen Programmierstil umzusetzten.

    Ich weiß zwar nichts über arduino (bzw programmiersoftware), aber im AVR Studio kann man einstellen wieviel ein Tabulatorsprung ist und ob diese in leerzeichen umgewandelt werden sollen. Vielleicht gibt es auch bei arduino so eine Einstellung.

    MfG Hannes

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    24558
    Alter
    39
    Beiträge
    1.356
    Da es sich anscheinend um eine Demofunktion handelt würde versuchen an der Seilrolle eine Odometriescheibe oder ahnliches Verfahren anzubringen und direkt an der Rolle per Interrupt messen wie viele cm Seil abgerollt/aufgerollt wurden.
    Bei ereichen eines vorher definiertem Wert hört die Seilwinde dann auf. Beachtem muss mann das man je nach Drehrichtung addiert oder subtrahiert. Aber da du ja eh Relais ansteuerts sollte es kein Problem darstellen das im programm mit zu erfassen.
    Die LED soll/braucht vermutlich nicht so ganz genau im Sekundentakt blinken, dann reicht es hier die millis-Funktion zu nutzen.

    Der nachfolgende Code ist für ein openCM9-Board welches auch mit Sketch/Arduino-IDE programmiert werden kann, und muss ggf angepasst werden:
    Code:
    millis()
     : Returns the number of milliseconds since the Arduino board began running the current program. 
     This number will overflow (go back to zero), after approximately 50 days.
     */
    
    // Variables:
    long previousMillis = 0; // will store the last time the LED was updated
    int interval = 1000;  // interval at which to blink (in milliseconds)
    
    void setup() {
      // Set up the built-in LED pin as output:
      pinMode(BOARD_LED_PIN, OUTPUT);
    }
    
    void loop() {
      // Check to see if it's time to blink the LED; that is, if the
      // difference between the current time and last time we blinked
      // the LED is bigger than the interval at which we want to blink
    
      if ((int)millis() - previousMillis > interval) {
        // Save the last time you blinked the LED
        previousMillis = millis();
    
        // If the LED is off, turn it on, and vice-versa:
        toggleLED();
      }
    }
    Es gibt auch noch andrere Lösungen die wo ein Interrupt alles 50ms ausgelöst wird und dann zwei Werte hochzählt (LED und Winde) und dann jenachdem das Programm abzweigt. Allerdings wird bei einem zeitlichen Ablauf der Seilwinde vermutlich immer wieder das Problem entsehen das die position nicht passt.

    Einfache Endanschläge ( auch optische) könnten praktisch auch funktionieren. Allerdings kommt es darauf an wie gut man die hinzugefügt bekommt. Besonders beim Haken senken könnte es problematisch werden.
    "Es ist schwierig, jemanden dazu zu bringen, etwas zu verstehen, wenn er sein Gehalt dafür bekommt, dass er es nicht versteht" [Upton Sinclair] gez-boykott

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Kannst du auch diesen "TimerOne.h" Datei hochladen? sonnst können wir das nicht Kompilieren.

    Oder ist das diesen Library?
    https://github.com/PaulStoffregen/TimerOne

    - - - Aktualisiert - - -

    Oder einer von diese 2:
    http://code.google.com/p/arduino-tim...downloads/list

    - - - Aktualisiert - - -

    Wo sind s1 und s2 definiert in deine Code? Mein Arduino IDE meckert darüber beim Kompilieren.

    - - - Aktualisiert - - -

    Mechanisch funktioniert er und mit meinem geschriebenen Programm läuft er mit einigen Mängeln.
    Könnte von Euch mal jemand ein Auge auf meinen Sketch werfen und mir mit Ideen zur Verbesserung weiterhelfen?
    Dann verwundere ich mich wie du diesen Mängeln behebst. Ich verstehe nicht wie du diesen Code auf dein Arduino hochgeladen hast. Ich sehe auf verschiedene stellen Code das nicht funktionieren/kompilieren kann.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    18.07.2015
    Ort
    Bayern
    Beiträge
    17
    Hallo und danke erstmal für eure Zeit die ihr mir spendet
    Ich habe den ersten Timer aus der Libary (https://github.com/PaulStoffregen/TimerOne)

    s1 Ist an Pin 4 und ist das Schaltsignal von der Fernsteuerung
    s2 Ist an Pin 6 und ist ein Endschalter welcher am Zahnrad des Kran befestigt ist (zum Krandrehen), damit kann ich feststellen ob der Kran in der Drehbewegung in Grundstellung ist, Seil wird nicht abgefragt

    Das musste ich machen da der Kran sonst in jeder beliebigen Position das Programm beginnen kann. Der Steppermotor hat keine Stellungsabfrage integriert.

    Das Seilabrollen ist nicht sehr problematisch. Die Tauchtasse wird nur auf dem Deck abgestellt und an der anderen Position ins Wasser abgelassen. Da kommt es also auf ein paar millimeter nicht an. wichtig ist aber das Aufrollen, da der Haken den Arm berühren soll und diesen dann leicht mit anheben.

    Die LED soll ab Startsignal blinken und wenn der Durchlauf beendet ist auch aufhören.

    Noch zur Info ich benutze einen Arduino Uno.

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Das mit dem Seil wirst du mit Zeitsteuerung _nie_ in Griff bekommen. Motoren drehen sich ohne Regelung praktisch niemals reproduzierbar. Und für ne Regelung brauchst du ein Feedback.
    Sinnvoll wäre hier sowas wie ein Mikrotaster, der dann gedrückt (oder losgelassen) wird, wenn der Haken den Kranarm bis Anschlag hochgezogen hat. Alternativ auch hier ein Schrittmotor, bei dem du die Umdrehungen mitzählen kannst-aber auch das geht daneben, wenn das Seil mal _etwas_ anders aufgewickelt wird.
    Besser ist es in jedem Fall, die Endposition des Armes auszuwerden. Statt nem Taster kannst du hier zum Beispiel auch ne Lichtschranke benutzen, die in der Endposition unterbrochen wird, je nachdem, was sich besser nachrüsten lässt.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    18.07.2015
    Ort
    Bayern
    Beiträge
    17
    Danke Sly, ich hab mir das schon gedacht und mir schon einige Gedanken gemacht. es müsste mit einem Reedkontakt funktionieren, der am Kranausleger befestigt ist und vom am Haken befestigten Magneten ausgelöst wird. Ich dacht mir Haken oben( Kontakt geschlossen) Grundstellung Haken. aber bei einem Kran im Maßstab 1:45 ist das auch nicht ganz so einfach zu lösen ohne das Aussehen des Kranes zu sehr zu verändern. Eventuell geht auch ein kleiner Microschalter, muss ich mal schauen was es so gibt.
    ich bin erstmal dabei mein Programm aufzuräumen und so zu laufen zu bringen wie ich es mir vorstelle.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Ok,

    Ich habe S1 und S2 definiert wie du angegeben hat. Aber mit Großbuchstaben S, weil klein nicht erlaubt ist. (Verstehe ich auch nicht warum.) Jedenfals nicht ein einziges Kleinbuchstabe s (mit oder ohne weitere Nummer):

    Und naturlich jeder stelle von s1 und s2 in den Code geändert zu S1, S2.
    Code:
    #define S1 4
    #define S2 6
    Und dann Kompiliert den IDE den Code ziemlich ohne Problemen. Ja, den Kompiler hat es Prima gefunden. Leider nicht für den Code-Polizei.

    Weil du auf verschiedene stellen ein if-Befehl macht wie das hier:

    Code:
    if (Kranstart,HIGH)  digitalWrite (RELAISAUF, HIGH);
    Den Komma ist ein gültige Operator, aber es wird nicht ausgewertet wie du wahrscheinlich möchtest. (ausführen wenn Kranstart pin HIGH ist, oder nicht wann es LOW ist) Bei einer derartige if-Befehl wirdt den Komma-operator die erste Gesetzen vor den (letzte) Komma jedenfalls ausführen (den Variabel Kranstart macht nichts alleine). Aber nur das letzte Gesetz hinter der Komma wird für den Entscheidung sorgen. (HIGH=1, und alles was nicht gleich 0 ist wird immer als Wahr gekennzeichnet) Alles da vorne macht nichts dazu. Also was hier oben steht ist:

    Code:
    if ( 1!=0 )  digitalWrite (RELAISAUF, HIGH);  //      '1 ist nicht gleich an 0'
    Deshalb wird das digitalWrite jedenfalls ausgeführt. Nur nicht wenn den Variabele Kranstart die wert 0 bekommen hat.

    Die richtige Verwendung von ein if Befehl ist:
    Code:
    if ( digitalRead(Kranstart)==HIGH ) digitalWrite (RELAISAUF, HIGH);
    Das gleiche passiert bei den while- loop am ende. Das hat nähmlich auch ein Quasi-if-Befehl in sich.
    Code:
    while(S2,HIGH);
    Das ist ein Endloss-schleife, und dein Programm wird da niemals rauskommen. Arduino loop() wirdt nicht weiter loop-en.

    Ok, dann haben wir nun die Logik Befehlen korrigiert. Dann stimmt es doch? Nein leider noch nicht.

    Zurück zum anfang von den loop() Funktion:
    void loop()
    { //Anfang der loop-Funktion

    value = digitalRead(S2); // Endschalter wird eingelesen

    digitalWrite(Kranstart,value); // Warte mall!! Kranstart ist als int definiert, und hat den wert HIGH (1) bekommen. Das ist doch kein Pin-bezeichnung!!!
    // das ist gleich: digitalWrite(1, value); Wird kommisches verhalten geben mit den Seriele port (TX) Keine ahnung was Kranstart hier bedeuten soll.


    { // Wieso alles hiernach in ein {} scope einfassen? Sollte den { nicht gerade nach den ) kommen?

    if ( digitalRead(Kranstart)==HIGH ) digitalWrite (RELAISAUF, HIGH);

    // Hier ist das if-Befehl schon am ende, wegen der ; am ende des if-Befehls, und den fehlende { dazwischen. Alles hiernach wird jedenfalls ausgeführt.


    delay(2600);
    digitalWrite (RELAISAUF, LOW);
    delay(2000);

    myStepper1.step(-3600); //Kran ausdrehen (Winkel einstellen)
    delay(2000); //Warten
    digitalWrite (RELAISAB, HIGH);
    delay(13000); //Seil ab für 13 sec
    digitalWrite (RELAISAB, LOW);
    delay(20000);

    digitalWrite (RELAISAUF, HIGH);
    delay(13000);
    digitalWrite (RELAISAUF, LOW);
    delay(2000);


    myStepper1.step(3600); //Kran eindrehen
    delay(3000);

    digitalWrite (RELAISAB, HIGH);
    delay(2600);
    digitalWrite (RELAISAB, LOW);
    delay(5000);
    } // Ende von if-Befehl Wahr-code

    {
    while(S2,HIGH); //Aber nür eines mall! Hängt hier ab. Gleich wie bei if Korrigieren.
    }
    } //Ende von loop()
    - - - Aktualisiert - - -

    Ok,

    Ich habe S1 und S2 definiert wie du angegeben hat. Aber mit Großbuchstaben S, weil klein nicht erlaubt ist. Jedenfals nicht ein einzige Kleinbuchstabe s (mit oder ohne weiteres Nummer):

    Und naturlich jeder stelle von s1 und s2 in den Code geändert zu S1, S2.
    Code:
    #define S1 4
    #define S2 6
    Und dann Kompiliert den IDE den Code ziemlich ohne Problemen. Ja, den Kompiler hat es Prima gefunden. Leider nicht für den Code-Polizei.

    Weil du auf verschiedene stellen ein if-Befehl macht wie das hier:

    Code:
    if (Kranstart,HIGH)  digitalWrite (RELAISAUF, HIGH);
    Den Komma ist ein gültige Operator, aber es wird nicht ausgewertet wie du wahrscheinlich möchtest. (ausführen wenn Kranstart pin HIGH ist, oder nicht wann es LOW ist) Bei einer derartige if-Befehl wirdt den Komma-operator die erste Gesetzen vor den (letzte) Komma jedenfalls ausführen (den Variabel Kranstart macht nichts alleine), aber nur das letzte Gesetz hinter der Komma wird für den Entscheidung sorgen. (HIGH=1, und alles was nicht gleich 0 ist wird immer als Wahr gekennzeichnet) Alles da vorne macht nichts dazu. Also was hier oben steht ist:

    Code:
    if ( HIGH==1 )  digitalWrite (RELAISAUF, HIGH);
    Deshalb wird das digitalWrite jedenfalls ausgeführt. Eben wenn Kranstart möglicherweise LOW oder 0 ist.

    Die richtige Verwendung von ein if Befehl ist:
    Code:
    if ( digitalRead(Kranstart)==HIGH ) digitalWrite (RELAISAUF, HIGH);
    Das gleiche passiert bei den while- loop am ende. Das hat nähmlich auch ein Quasi-if-Befehl in sich.
    Code:
    while(S2,HIGH);
    Das ist ein Endloss-schleife, und dein Programm wird da niemals rauskommen. Arduino loop() wirdt nicht weiter loop-en.

    Ok, dann haben wir nun die Logik Befehlen korrigiert. Dann stimmt es doch? Nein leider noch nicht.

    Zurück zum anfang von den loop() Funktion:
    void loop()
    { //Anfang der loop-Funktion

    value = digitalRead(S2); // Endschalter wird eingelesen

    digitalWrite(Kranstart,value); // Warte mall!! Kranstart ist als int definiert, und hat den wert HIGH (1) bekommen. Das ist doch kein Pin-bezeichnung!!!
    // das ist gleich: digitalWrite(1, value); Wird kommisches verhalten geben mit den Seriele port (TX) Keine ahnung was Kranstart hier bedeuten soll.


    { // Wieso alles hiernach in ein {} scope einfassen? Sollte den { nicht gerade nach den ) kommen?

    if ( digitalRead(Kranstart)==HIGH ) digitalWrite (RELAISAUF, HIGH);

    // Hier ist das if-Befehl schon am ende, wegen der ; am ende des if-Befehls, und den fehlende { dazwischen. Alles hiernach wird jedenfalls ausgeführt.


    delay(2600);
    digitalWrite (RELAISAUF, LOW);
    delay(2000);

    myStepper1.step(-3600); //Kran ausdrehen (Winkel einstellen)
    delay(2000); //Warten
    digitalWrite (RELAISAB, HIGH);
    delay(13000); //Seil ab für 13 sec
    digitalWrite (RELAISAB, LOW);
    delay(20000);

    digitalWrite (RELAISAUF, HIGH);
    delay(13000);
    digitalWrite (RELAISAUF, LOW);
    delay(2000);


    myStepper1.step(3600); //Kran eindrehen
    delay(3000);

    digitalWrite (RELAISAB, HIGH);
    delay(2600);
    digitalWrite (RELAISAB, LOW);
    delay(5000);
    } // Ende von if-Befehl Wahr-code

    {
    while(S2,HIGH); //Aber nür eines mall! Hängt hier ab. Gleich wie bei if Korrigieren.
    }
    } //Ende von loop()
    Geändert von Valen (21.07.2015 um 21:56 Uhr)

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Hilfe beim umsetzen der Elektronik meines Robi´s
    Von Benny1989 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 15
    Letzter Beitrag: 26.05.2012, 13:45
  2. Programmierung meines Hexapods
    Von lucaosswald im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 11.01.2012, 17:01
  3. Brauch dringend hilfe!!!!!!!!!!!
    Von julianf123 im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 05.07.2009, 17:59
  4. brauch Hilfe zum ADC
    Von molleonair im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 13.03.2006, 15:17
  5. brauch hilfe für projekt
    Von chioro im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 20.02.2006, 12:17

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •