Εμφάνιση αποτελεσμάτων : 1 έως 5 από 5

Θέμα: βοηθεια με κωδικα arduino

  1. #1
    Νέο Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2011
    Περιοχή
    Πάτρα
    Μηνύματα
    7

    Προεπιλογή βοηθεια με κωδικα arduino

    Καλησπέρα σας τώρα άρχισα κι εγώ να ασχολούμαι με το arduino , ξεκίνησα λοιπόν ένα project αλλά έχω κολλήσει σε ένα κομμάτι και θα ήθελα την βοήθειά σας .

    θέλω όταν ενεργοποιηθεί μια είσοδος και παραμείνει ενεργοποιημένη για πάνω από 20 δευτερόλεπτα τότε να μου ενεργοποιεί μια έξοδο ,
    οταν η είσοδος αυτή απενεργοποιηθεί να απενεργοποιείτε και η έξοδος .

    σας ευχαριστώ εκ τον προτέρων .

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη Ακρίτας
    Όνομα
    Γιώργος
    Εγγραφή
    Jan 2009
    Περιοχή
    Θεσσαλονίκη - Αλεξανδρούπολη
    Μηνύματα
    1.427

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από krithisg Εμφάνιση μηνυμάτων
    Καλησπέρα σας τώρα άρχισα κι εγώ να ασχολούμαι με το arduino , ξεκίνησα λοιπόν ένα project αλλά έχω κολλήσει σε ένα κομμάτι και θα ήθελα την βοήθειά σας .

    θέλω όταν ενεργοποιηθεί μια είσοδος και παραμείνει ενεργοποιημένη για πάνω από 20 δευτερόλεπτα τότε να μου ενεργοποιεί μια έξοδο ,
    οταν η είσοδος αυτή απενεργοποιηθεί να απενεργοποιείτε και η έξοδος .

    σας ευχαριστώ εκ τον προτέρων .
    Μπορείς να χρησιμοποιήσεις τη συνάρτηση millis() που μετράει το χρόνο από το τελευταίο reset. Την καταχωρείς σε μια μεταβλητή όταν ενεργοποιείται η πρώτη είσοδος και ελέγχεις συνεχως με μια δεύτερη μεταβλητή. Όταν η διαφορά τους περάσει τα 20 δευτερόλεπτα ενεργοποιείς την έξοδο. Δες για περισσότερα στη βοήθεια του arduino.

    Σκέψου τον κώδικα σαν ένα while μέσα σε ένα if.

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη Ακρίτας : 06-03-15 στις 23:24
    So much behind us! Still far to go!
    Pink Floyd

  3. #3
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    H βασική ενέργεια είναι αυτή που περιγράφει ο Γιώργος πιο πάνω. Ωστόσο, αν θες μεγάλη ακρίβεια στο χρόνο, μπορείς να χρησιμοποιήσεις έναν timer τον οποίο θα ρυθμίσεις να σου κάνει μια διακοπή στον κώδικα κάθε 1 δευτερόλεπτο. Μέσα στη ρουτίνα της διακοπής θα αυξάνεις έναν καταχωρητή (π.χ. secCounter) κατά μια μονάδα και στη συνάρτηση loop() θα βάλεις μια συνθήκη που θα ελέγχει τον καταχωρητή secCounter συνεχώς. Αν τον βρεί μεγαλύτερο απο 20, τότε θα τον μηδενίζεις και ταυτόχρονα θα ενεργοποιήσεις την δεύτερη έξοδό σου. Προϋπόθεση είναι όταν ενεργοποιείς την πρώτη έξοδο που λες, πάντα να μηδενίζεις τον καταχωρητή απαρίθμησης δευτερολέπτων (secCounter) για να μπορεί να μετρά σωστά.

    1 Not allowed! Not allowed!

  4. #4
    Νέο Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2011
    Περιοχή
    Πάτρα
    Μηνύματα
    7

    Προεπιλογή

    σας ευχαριστώ , τελικά τα κατάφερα με τον ποιο κάτω κώδικα



    }
    buttonPin1State = digitalRead(buttonPin1);
    if (buttonPin1State == LOW )
    currentState = 1;
    delay(50);
    if(currentState != previousState)
    if(currentState == 1){
    counter = counter + 1;
    Serial.println(counter);
    }
    if(counter > 400){
    digitalWrite(ledPin6, HIGH);
    }
    buttonPin1State = digitalRead(buttonPin1);
    if (buttonPin1State == HIGH )
    { currentState = 0;
    counter = 0 ;
    digitalWrite(ledPin6, LOW);
    }

    0 Not allowed! Not allowed!

  5. #5
    Νέο Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2011
    Περιοχή
    Πάτρα
    Μηνύματα
    7

    Προεπιλογή

    καλησπερα και παλι , εχω τον ποιο κατω κωδικα για μια καθηστεριση ενεργοποιησης εξοδου

    buttonPin1State = digitalRead(buttonPin1);
    if (buttonPin1State == HIGH )
    currentState = 1;
    delay(50);
    if(currentState == 1){
    counter = counter + 1;
    Serial.println(counter);
    }
    if(counter > 1000){
    digitalWrite(ledPin1, HIGH);

    }
    buttonPin1State = digitalRead(buttonPin1);
    if (buttonPin1State == LOW )
    { currentState = 0;
    counter = 0 ;
    digitalWrite(ledPin1, LOW);
    }




    και θα ηθελα να κανω το ιδιο και σε αλλη μια ή και παραπανω εισοδου - εξοδους .
    προσπαθησα να κανω το ιδιο αλλα δεν παιζει γιατι εχουν τον ιδιο counter απ οτι καταλαβαινω , εχετε καμια ιδεα πως μπορω να το φτιαξω ?

    0 Not allowed! Not allowed!

Παρόμοια Θέματα

  1. ARDUINO GSM ΒΟΗΘΕΙΑ ΜΕ ΚΩΔΙΚΑ
    By keap in forum Μικροελεγκτές
    Απαντήσεις: 46
    Τελευταίο Μήνυμα: 29-06-18, 10:16
  2. arduino bug σε κωδικα...βοηθεια
    By gourtz in forum Μικροελεγκτές
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 09-02-17, 15:11
  3. ΒΟΗΘΕΙΑ ΜΕ ΤΟΝ ΚΩΔΙΚΑ ΧΡΟΝΟΥ ARDUINO
    By keap in forum Μικροελεγκτές
    Απαντήσεις: 32
    Τελευταίο Μήνυμα: 13-11-15, 17:46

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας