- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: PanoBot - Projektvorstellung und DREI Anfänger Fragen zum Code.

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Frage 01: ich wollte hier noch ne servo bewegung am Anfang aber es wiederholt sich alles
    laufend... Der Anfang sollte nur einmal beim Anschalten und sich nicht laufend Wiederholen. wie
    kann ich das machen???
    Wenn du etwas in der loop machst wird es wiederholt. Daher der Name loop = Schleife.
    Einmalige Sachen evtl. ins setup.

    Frage 02:
    Es ist gerade so das ich viele "Buttons" hätte (buttonPin 01-05), wie kann ich machen das
    ich wenige habe und z.b bei Button doppel drücken, drei mal drücken, oder 5sek gedrückt halten
    etc. meine ereignisse statfinden, die da wären: ………………im Code schauen…..
    Etwas in der Art:
    Code:
    const int buttonPin = 2;     // Pin des Buttons
    
    void setup() 
    {
      //Serial.begin(9600);        // zum Testen mit Serial Monitor Kommentarzeichen entfernen
      pinMode(buttonPin, INPUT); 
    }
    
    void loop()  
    {
      int btnPressed = buttonManager(); // gibt Wert in ms zurück
      //if(btnPressed > -1)               // zum Testen im Serial Monitor Kommentarzeichen entfernen
      //  Serial.println(btnPressed);     // wenn Button gedrückt wurde: Ausgabe im Serial Monitor
        
      if(btnPressed > -1)
      {
        // kurz gedrückt
        if (btnPressed < 500)
        {
          // etwas tun 
        }
        // etwas länger gedrückt
        else if (btnPressed < 1000)
        {
          // etwas tun 
        }
        // länger gedrückt
        else if (btnPressed < 2000)
        {
          // etwas tun 
        }
        // lange gedrückt
        else
        {
          // etwas tun 
        }
      }  
    }
    
    int buttonManager() 
    {
      static boolean pressed = false;
      static unsigned long pressedMoment = 0;      
    
      if (digitalRead(buttonPin) == LOW)        // Button gedrückt?
      {
        if(pressed == false)                    // gerade gedrückt?
        {
          pressed = true;                       // speichern, dass gedrückt wurde
          pressedMoment = millis();             // aktuellen Zeitpunkt speichern
        }
      }
      else                                      // nicht gedrückt!
      {
        if(pressed)                             // wurde bis eben gedrückt?
        {
          pressed = false;                      // speichern, dass nicht mehr gedrückt wurde
          int elapsedTime = millis()-pressedMoment;
          if(elapsedTime > 50)                  // wurde mind. 50ms gedrückt?
            return elapsedTime;                 // -> Rückgabe gedrückte Zeit in ms
        }
      }
      return -1;
    }
    Geändert von Sisor (23.03.2014 um 10:49 Uhr)

Ähnliche Themen

  1. RF12 - 433Mhz Funkmodul von Pollin. Fragen zum Code
    Von Kai.s0r im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 10.06.2010, 16:37
  2. Anfänger Einige Fragen zum Asuro
    Von kaeLum im Forum Asuro
    Antworten: 73
    Letzter Beitrag: 09.01.2008, 16:02
  3. drei Fragen zum Oszilloskop Tastkopf :-)
    Von wischwasch im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 29.03.2007, 19:37
  4. Anfänger mit vielen Allgemeinen und Fragen zum Asuro.
    Von Warlock im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 15.12.2006, 19:13
  5. Antworten: 1
    Letzter Beitrag: 23.12.2005, 07:10

Stichworte

Berechtigungen

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

12V Akku bauen