Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 13

Θέμα: αισθητήρας dht22 arduino

  1. #1
    Μέλος
    Όνομα
    ανδρεας
    Εγγραφή
    May 2012
    Περιοχή
    αθηνα
    Μηνύματα
    140

    Προεπιλογή αισθητήρας dht22 arduino

    Καλησπέρα στην ομάδα. προσπαθώ να κν μια εκκολαπτικη με αισθητήρα dht22. ενώ το πρόγραμματισα και διαβάζει θερμοκρασία και υγρασια κπ στιγμή κολλάει και μου βγάζει ένδειξη στην οθόνη του arduino nan με αποτέλεσμα να σταματάει να ανοιγοκλεινει το ρελέ που είναι προγραμματισμενο. ξέρει κπ τι μπορεί να φταίει? ???

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Καλαρακης Μιχαλης
    Εγγραφή
    Jan 2011
    Περιοχή
    Ηρακλειο
    Μηνύματα
    2.043

    Προεπιλογή

    Ανδε βαλεις το κωδικα μονο υποθεσεις μπορει να γινουν
    Για αρχη ενεργοποιησε το watchdog που οταν κολλησει να κανει επανεκινηση.
    Αν και νομιζω οτι το προβλημα ειναι στο τροφοδοτικο.

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη her
    Όνομα
    Ηρακλής
    Εγγραφή
    Jun 2007
    Περιοχή
    Αργυρούπολη
    Μηνύματα
    1.121

    Προεπιλογή

    Για να βγάζει nan μάλλον κανει κάποια λάθος πράξη π.χ 5/0
    Δες και πώς έχεις ορίσει τις μεταβλητές int, float
    Δεν νομίζω οτι ειναι θέμα hardware αλλά software

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από info@kalarakis.com Εμφάνιση μηνυμάτων
    Ανδε βαλεις το κωδικα μονο υποθεσεις μπορει να γινουν
    Για αρχη ενεργοποιησε το watchdog που οταν κολλησει να κανει επανεκινηση.
    Αν και νομιζω οτι το προβλημα ειναι στο τροφοδοτικο.
    Αυτό με το watchdog δεν το κατάλαβα φίλε εγώ... Για δώσε περισσότερες πληροφορίες... Αυτό δεν είναι και καλά για να μπαίνει σε sleep mode;

    0 Not allowed! Not allowed!

  5. #5
    Μέλος Το avatar του χρήστη SProg
    Όνομα
    Σάββας
    Εγγραφή
    Mar 2014
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.612

    Προεπιλογή

    Εβαλες Pull-Up στο 1-Wire;

    Παραξενο να βγαζει σφαλμα. Εμεις τον χρησιμοποιουμε εδω και χρονια στη βιομηχανια και ποτε δεν ειχαμε προβλημα.

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Καλαρακης Μιχαλης
    Εγγραφή
    Jan 2011
    Περιοχή
    Ηρακλειο
    Μηνύματα
    2.043

    Προεπιλογή

    Το watchdog ειναι ενας εσωτερικος μετρητης που εχει ο atmel. (Σχελον ολα τα mpu) Οταν το ενεργοποιησεις αρχιζει την ελλατωση κατα 1 σε συγκεκριμενο χρονο. Οταν φτασει στο μηδεν κανει reset το mpu. Για να μη φτασει στο μηδεν πρεπει μεσα στο προγραμμα σου να το "ενημερωνεις"
    Αν το προγραμμα κολλησει δεν ενημερωνεται με αποτελεσμα να γινει επαναφορα. Οταν ξεκινα το mpu μπορεις να ρωτησεις το καταχωρητη του watchdog το λογο που εγινε η επαναφορα (αναλογα πιο μπιτ ειναι στο 1 εχει διαφορετικο λογο).

    1 Not allowed! Not allowed!

  7. #7
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από info@kalarakis.com Εμφάνιση μηνυμάτων
    Το watchdog ειναι ενας εσωτερικος μετρητης που εχει ο atmel. (Σχελον ολα τα mpu) Οταν το ενεργοποιησεις αρχιζει την ελλατωση κατα 1 σε συγκεκριμενο χρονο. Οταν φτασει στο μηδεν κανει reset το mpu. Για να μη φτασει στο μηδεν πρεπει μεσα στο προγραμμα σου να το "ενημερωνεις"
    Αν το προγραμμα κολλησει δεν ενημερωνεται με αποτελεσμα να γινει επαναφορα. Οταν ξεκινα το mpu μπορεις να ρωτησεις το καταχωρητη του watchdog το λογο που εγινε η επαναφορα (αναλογα πιο μπιτ ειναι στο 1 εχει διαφορετικο λογο).
    Ωραίος φίλε ευχαριστώ για την ενημέρωση θα το ψάξω ...

    0 Not allowed! Not allowed!

  8. #8
    Μέλος
    Όνομα
    ανδρεας
    Εγγραφή
    May 2012
    Περιοχή
    αθηνα
    Μηνύματα
    140

    Προεπιλογή

    μερος του κωδικα:
    (ΙΝ1 ΑΝΤISTASΗ ΘΕΡΜΟΤΗΤΑΣ ΚΑΙ ΙΝ3 ΕΦΕΔΡΙΚΗ ΑΝΤΙΣΤΑΣΗ)



    void loop() {
    unsigned long currentMillis = millis();
    float t = dht.readTemperature();

    float h = dht.readHumidity();
    {
    if (t< 37.7 && buttonState == HIGH){
    digitalWrite(IN1, LOW); }
    else if(t>= 37.7 && buttonState == HIGH) {
    digitalWrite(IN1, HIGH);
    }
    {
    if (h< 55.0 && buttonState == HIGH) {
    digitalWrite(IN2, HIGH);
    }
    else if (h>= 55.0 && buttonState == HIGH) {
    digitalWrite(IN2, LOW);
    }
    }
    {
    if (t<= 37.2 && buttonState == HIGH) {
    digitalWrite(IN3, LOW);
    }
    else if (t>= 37.7 && buttonState == HIGH) {
    digitalWrite(IN3, HIGH); //Απενεργοποίηση Θερμοστατικής Αντίστασης +1 37,7
    }

    else if (t> 37.2 && t< 37.7 && buttonState == HIGH) {
    display.setCursor(56, 3);
    display.print("+...");
    }
    }

    0 Not allowed! Not allowed!

  9. #9
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    610

    Προεπιλογή

    δεν μας δείχνεις όμως τι είναι το button state.
    Καταρχήν διαβάζεις τον αισθητήρα πολύ γρήγορα. Βάλε ένα delay για να μην ετελείτε το loop τόσο γρήγορα. Διάβασε το datasheet του dht... εγώ θα τον διάβαζα 1 φορά το δευτερόλεπτο, νομίζω αρκει.

    Επίσης βγάλε τις μεταβλητές εκτός του loop. Οπως το έχεις τώρα, κάνει allocate μνήμη για τις μεταβλητές σε κάθε εκτέλεση του loop. Βγάλε τις δηλώσεις των μεταβλητών εκτός, βάλε τις στην αρχή του προγράμματος, πριν το setup(). Μεσα στο loop θα κάνεις απλά την ανάθεση τιμής πχ t = dht.readTemperature(); (χωρίς την δήλωση float).

    Μια αλλαγή που θα έκανα ήταν να βάλω όοοολο αυτό που έχεις γράψει κάτω απο ένα if (buttonState)... Εφόσον δεν χρειάζετε να γίνει κανένας έλεγχος αν το buttonstate δεν είναι HIGH, τότε δεν χρειάζετε να το επαναλαμβάνεις κάθε τόσο...

    Πιθανά το κόλημά σου είναι είτε απο κατακερματισμό της μνήμης (δεν προλαβαίνει να γίνει το garbage collection οπότε και γεμίζει εφόσον ζητάς συνέχεια μνήμη για μεταβλητές) είτε απο πολύ γρήγορο διάβασμα του αισθητήρα. Τουλάχοστον όσον αφορά το software κομμάτι μιας και δεν έχουμε δει το HW ακόμα...




    1 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  10. #10
    Μέλος
    Όνομα
    ανδρεας
    Εγγραφή
    May 2012
    Περιοχή
    αθηνα
    Μηνύματα
    140

    Προεπιλογή

    ΤΟ μπουτον το εχω βαλει για να αλλαζω τα δεδομενα θερμοκρασιεασ και υγρασιας τις τελευταιες ημερες με το πατημα του. ο κωδικας παραμενει ιδιος απλα επαναλλαμβανεται με αλλα δεσομενα.

    0 Not allowed! Not allowed!

Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία

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

  1. arduino + αισθητήρας θερμοκρασίας νερού
    By headhynter02 in forum Μικροελεγκτές
    Απαντήσεις: 14
    Τελευταίο Μήνυμα: 09-06-21, 23:58
  2. Αισθητήρας Υγρασίας.
    By haf in forum Συστήματα Ασφαλείας
    Απαντήσεις: 40
    Τελευταίο Μήνυμα: 15-03-15, 13:58
  3. DHT22 ή AM2302
    By kopla in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 12
    Τελευταίο Μήνυμα: 03-06-13, 18:33
  4. Αισθητήρας πίεσης
    By ds electronics in forum Ηλεκτρονικά
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 08-04-11, 21:10
  5. Aισθητήρας φωτός
    By JimKarvo in forum Ηλεκτρονικά
    Απαντήσεις: 44
    Τελευταίο Μήνυμα: 23-02-10, 16:13

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

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