-         
Ergebnis 1 bis 4 von 4

Thema: Arduino Werte speichern

  1. #1
    Alexhpg
    Gast

    Arduino Werte speichern

    Anzeige

    Ich will ein Sketch schreiben der Daten lesen, speichern und ausgeben kann .Z.B. wenn ich einen Button drücke der eine Lampe zum leuchten bringt soll das die Arduino merken die Dauer usw. Speichern und beim drücken eines zweiten Button die Lampe genau in der selben Zeitspanne leuchten lassen. Kann mir da jemand helfen?

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.01.2014
    Beiträge
    398
    Blog-Einträge
    3
    Der folgende Code erfüllt die oben genannten Anforderungen in der einfachsten Variante:
    Code:
    #define button1Pin  2
    #define button2Pin  3
    #define ledPin     13
    #define PRESSED  HIGH
    
    void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(button1Pin, INPUT);
      pinMode(button2Pin, INPUT);
    }
    
    void loop() {
      static unsigned long pressed_ms = 500;
      if( digitalRead(button1Pin) == PRESSED) {
        pressed_ms = 0;
        do {
          delay(20);
          pressed_ms += 20;
        } while(digitalRead(button1Pin) == PRESSED);
      }
      if( digitalRead(button2Pin) == PRESSED ) {
        digitalWrite(ledPin, HIGH);
        delay(pressed_ms);
        digitalWrite(ledPin, LOW);
      }
    }

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    50
    Beiträge
    2.816
    Soll die Lampe brennen solange Taster 1 gedrückt is?
    Oder soll mit einmal drücken von Taster 1 die Lampe angehen und solange anbleiben bis Taster 1 nochmal gedrückt wird?
    Das erste ist Ok für ein paar Sekunden.
    Wenn es aber darum geht, das es auch länger dauern soll, dann tut einem irgendwann der Finger weh und Variante zwei ist besser.

    Wissen muß man, das Sisors Sketch die 20ms Delay nimmt damit ein Taster Prellen nicht sofort das wieder loslasen des Tasters vortäuscht.
    Man kann also den Wert nicht einfach verkleiner falls einem 20ms Schritte zu lang wären.
    http://www.scynd.de/tutorials/arduin...entprellt.html
    In dem Fall müsste man anders entprellen (ggf. in Hardware).
    http://www.elektronik-kompendium.de/...ig/0210223.htm

    Was man auch beachten muß, ist, das man Sisors Code nicht einfach in ein größeres Scetch einfügen kann.
    Da hier die Tasterabfrage per Polling erfolgt und dies von der Laufzeit der Hauptschleife abhängt.
    Fügt man in die Hauptschleife einfach ein "Delay(500)" ein um eine längere Laufzeit zu simulieren, muß man im ungünstigsten Fall 521ms lang den Taster drücken bis das Programm dies erkennt.
    In so einem Fall wäre ein Interrupt Eingang die bessere Wahl.
    Auch würde dann die Inkrementierung von "pressed_ms" nicht mehr zur tatsächlich vergangenen Zeit passen und man müsste anders vorgehen.

    Bleibt der Code unverändert, so ist er einfach, kurz und gut.
    Geändert von i_make_it (17.11.2016 um 06:51 Uhr)

  4. #4
    Unregistriert
    Gast
    Danke, hat mir sehr geholfen.

Ähnliche Themen

  1. Diagramm auf Grafik display anzeigen. Wie Werte speichern?
    Von mirco99 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 29.10.2008, 07:41
  2. Werte Speichern bevor Strom weg ist?
    Von darxon69 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 17.08.2007, 06:15
  3. Werte regelmäßig im EEPROM speichern...Codebeschau
    Von masabuana im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 10.07.2007, 20:07
  4. Werte speichern und später über RS232 auslesen?
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 11.06.2007, 19:31
  5. Werte in einer Tabelle speichern
    Von bobo im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 15
    Letzter Beitrag: 04.01.2005, 07:19

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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