- Labornetzteil AliExpress         
Ergebnis 11 bis 20 von 30

Thema: Ich brauch professionelle Hilfe bei Programmierung meines Kranes

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    18.07.2015
    Ort
    Bayern
    Beiträge
    17
    Hallo Zusammen, Hallo Valen. Ich hab mich jetzt nochmal hingesetzt und versucht deine Erklärungen zu befolgen. Hier der Code:
    Code:
    //Kran der Calypso ansteuern
    //1 Stepper und 1 DC Motor
    
    #include <Stepper.h>
    #include "TimerOne.h"
    
    #define LED 7                              //WarnLED Kran in Bewegung
    int S1 = 4;                                //Starttaster von RC-Fernbedienung
    int S2 = 6;                                //Endschalter Kran in Ruheposition
    
    boolean Kranstart = digitalRead((S1)&&(S2));   //Kran fertig zum Start
    
    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(200000);         // 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
      }
       digitalWrite(S1,HIGH);            // Taster von RC-Fernbedienung
       digitalWrite(S2,HIGH);            // Taster Kran in Ruheposition
       
       pinMode(RELAISAUF,OUTPUT);        // Relais für Seil AUF
       pinMode(RELAISAB,OUTPUT);         // Relais für Seil AB
       
       myStepper1.setSpeed(400);         // Steppermotor Kran drehen
    }
    void callback(){
      {
      // Die LED blinkt unabhängig vom Programmcode in loop()
      digitalWrite(LED, digitalRead(LED) ^ 1); // EXOR invertiert 
      }
      
    }
    void loop() {
      
    Kranstart = (digitalRead(S1)==HIGH) && (digitalRead(S2)==HIGH);  //Kran fertig zum Start, wenn S1 HIGH ist UND S2 HIGH ist.  
    
    Serial.begin(9600);
      
      Serial.print("Channell 1:");
      Serial.println (digitalRead(S1));
      
      Serial.print ("Channell 2:");
      Serial.println(digitalRead(S2));
      
      Serial.print ("Channell 3:");
      Serial.println(digitalRead(Kranstart));
      
      delay(50); 
      
    if (Kranstart == true){
      
      digitalWrite(RELAISAUF,HIGH);               // Seil auf Start            
      delay(2600);
      digitalWrite (RELAISAUF, LOW);              // Seil auf Stop
      delay(2000);
      
      myStepper1.step(-3600);                     // Kran ausdrehen (Winkel einstellen)
      delay(2000);                               
      
      digitalWrite (RELAISAB, HIGH);              // Seil ab Start
      delay(13000);                              
      digitalWrite (RELAISAB, LOW);               // Seil ab Stop
      
      delay(20000);                               // Tauchtasse im Wasser (20sec)
      
      digitalWrite (RELAISAUF, HIGH);             // Seil auf Start             
      delay(13000);
      digitalWrite (RELAISAUF, LOW);              // Seil auf Stop
      delay(2000);
      
      
      myStepper1.step(3600);                      //Kran eindrehen
      delay(3000);
      
      digitalWrite (RELAISAB, HIGH);              // Seil ab Start
      delay(2600);
      digitalWrite (RELAISAB, LOW);               // Seil ab Stop
      delay(5000);
      }
      
      else ((S2)==LOW);{                          // Kran nicht fertig zum Start
      
      digitalWrite(RELAISAUF,HIGH);               // Seil auf Start
      delay(2600);
      digitalWrite(RELAISAUF,LOW);                // Seil auf Stop
      delay(1000);
      
      myStepper1.step(100);                       // Kran drehen bis S2 HIGH
      delay(1000);
      
      digitalWrite(RELAISAB,HIGH);               // Seil ab Start
      delay(2600);
      digitalWrite(RELAISAB,LOW);                // Seil ab Stop
      delay(1000);
      
      digitalRead(S2==HIGH);
      
      if((S2)==HIGH &&(S1)==LOW);{
     while((S1)==HIGH); }                    // Warten bis zum neuen Programmstart
     }  
    }
    Ich habe für mich serial Monitor mit reingeschrieben um zu sehen was meine Taster machen.
    Jetzt funktioniert Kranstart ( wenn S1 und S2 sind HIGH), leider funktioniert das Warten auf den nächsten Programmstart nur wenn S1 und S2 High sind.
    Es wechseln ja beide S1 und S2 in low wenn der Kran sich bewegt. S1 geht weg weil das Signal von der Ferbsteuerung nur zum Starten benötigt wird. S 2 wechselt in Low wenn der Kran sich dreht und kommt am ende des Programmes wieder wenn der Kran in Ruheposition gefahren ist.
    wenn jetzt S2 high ist und S1 low fährt der Kran immer weiter zum Taster S2. wenn dann Taster S1 high gesetzt wird läuft Programm normal weiter.
    Wo liegt der Fehler? Ich komme nicht drauf.
    Danke Bodo
    Geändert von radbruch (23.07.2015 um 20:33 Uhr) Grund: Sterne entfernt

Ä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, 12:45
  2. Programmierung meines Hexapods
    Von lucaosswald im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 11.01.2012, 16:01
  3. Brauch dringend hilfe!!!!!!!!!!!
    Von julianf123 im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 05.07.2009, 16:59
  4. brauch Hilfe zum ADC
    Von molleonair im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 13.03.2006, 14:17
  5. brauch hilfe für projekt
    Von chioro im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 20.02.2006, 11:17

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress