|
DIY . Φτιάχτο μόνος σου Ο τίτλος τα λέει όλα. |
![]() |
|
Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
|
||||
|
||||
![]() Παράθεση:
Σχετικά με τα ρελέ: Όλα τα ρελέ 2 επαφών όπως αυτά που έχει η πλακέτα έχουν 2 καταστάσεις των επαφών, NC και NO. Όταν το ρελέ δεν έχει ρεύμα στο πηνίο του τότε η επαφή που είναι ενεργή είναι η NC. Αντίστοιχα όταν δώσουμε ρεύμα τότε η NC είναι ανενεργή και ενεργοποιείται η NO. Στα board που έχουν optocoupler (τα μαύρα ολοκληρωμένα με τα 4 ποδαράκια) στην είσοδο του ρελέ, απομονώνουν ουσιαστικά τα ρεύματα ώστε να μην έχουμε παρεμβολές από το πηνίο του ρελέ ή να μην γίνει ζημιά σε όλη την πλακέτα σε περίπτωση βλάβης, βραχυκυκλώματος κλπ. Στην εν λόγω πλακέτα λοιπόν τα optocoupler έχουν μόνιμα (+) από την τροφοδοσία και ενεργοποιούνται όταν πάρουν και (-) (από τα pin του Arduino). Τότε οπλίζει το ρελέ. Στην πράξη αυτό σημαίνει πως όταν στο Arduion ένα pin δηλωθεί ως OUTPUT και είναι σε low με το digitalwrite τότε δίνει το (-) στο optocoupler και οπλίζει το ρελέ. Γιαυτό το λόγο τα κάνουμε high αμέσως μετά τη δήλωσή του pin ως OUTPUT ώστε να μην δώσουν το (-) στο optocoupler και οπλίσει το ρελέ. Σε περίπτωση βλάβης λοιπόν του Arduino υπάρχει πάντα η πιθανότητα τα pin αυτά να "γειώσουν" (να έχουν δηλαδή το (-)) και συνεπώς να ενεργοποιήσουν τα ρελέ. Σπάνιο άλλα όχι απίθανο. Γιαυτό πιστεύω πως η καλύτερη λύση είναι με μη isolated relay board ώστε να μην έχουμε αυτό το θέμα. Όσο για τα alarm που ρώτησες, στο serial monitor θα δεις κάτι μόνο αν έχει το alarm κάποιο serial.print ή serial.println Σε αντίθετη περίπτωση πρέπει να βρεις τα alarm που αντιστοιχούν στα ρελέ και να επαληθεύσεις πως όλα τα digitalwrite είναι σωστά δηλωμένα και όχι ανάποδα για το relay board που έχεις. Συνοψίζουμε λοιπόν: 1. Αμέσως μετά τη δήλωση του ΚΑΘΕ pin για τα ρελέ, πχ pinMode(pwrLight1Pin, OUTPUT); πρέπει να βάλεις το αντίστοιχο digitalWrite(pwrLight1Pin, HIGH); για κάθε pin με τα σωστά ονόματα που έχουν δηλωθεί. Πιθανό αυτό να σου λύσει τα προβλήματα που κάποια ρελέ είναι ανοιχτά στην εκκίνηση χωρίς λόγο. 2. Στο αρχείο alarms.ino θα κοιτάξεις κάθε alarm του ρελέ ώστε να δεις αν υπάρχει το σωστό digitalwrite, πχ void AlarmPwrCO2_On() { if((feedingActive==true)&&(feedSetting.pwrCO2==tru e)) { preFeedPower.pwrCO2 = 1; }else { digitalWrite(pwrCO2Pin, HIGH); globalPower.pwrCO2=1; } //if (dispScreen==1) myFiles.load(206, 177, 24, 24, pwrCO2IconS[globalPower.pwrCO2]); if (dispScreen==1) myFiles.load(178, 177, 24, 24, pwrCO2IconS[globalPower.pwrCO2]);//co2/heat swapped } Αντίστοιχες εγγραφές υπάρχουν για όλα τα pin των ρελέ και για την κατάσταση off, πχ void AlarmPwrCO2_Off() Θα πρέπει να ψάξεις όλο τον κώδικα και να τον μάθεις όλο και ειδικά με τις θέσεις στην EEPROM που αποθηκεύονται οι τιμές, ώρες κλπ Αν δεν μάθεις τι κάνει και πως η κάθε γραμμή του κώδικα δεν θα μπορέσεις να λύσεις το οποιοδήποτε θέμα σου προκύψει. Και εγώ δεν είχα ιδέα από Arduino και αυτό το project με "έκανε" να μάθω. |
#2
|
||||
|
||||
![]()
Ξεκινάμε:
Ήδη είναι διορθωμένα το βασικό .ino και το alarms.ino με ανεστραμμένα τα high και low όπου χρειάζεται και έχει γίνει προσθήκη όλων των pins στο βασικό .ino με τη σωστή ονομασία και χαρακτηρισμό όλων ως high αμέσως μετά το void setup (γι' αυτό εξάλλου σου είπα ότι μόλις συνδέσω το arduino σε ρεύμα, ανάβουν και σβήνουν αστραπιαία όλα τα ρελέ). Εκτός και αν εννοείς κάτι άλλο και δεν έχω καταλάβει σωστά. Σχετικά με τα ρελέ, τα δικά μου είναι ssr, που σημαίνει ότι δεν είναι opto-isolated. Αυτά υπάρχουν στα κλασσικά ηλεκτρομαγνητικά. Με την EEPROM δεν έχω ασχοληθεί καθόλου να σου πω την αλήθεια, γιατί είχα την εντύπωση ότι είναι κάτι προσωρινό και προσπελάσιμο (κάτι σαν την ραμ του υπολογιστή να φανταστείς). Δεν ξέρω αν τα έχω καταλάβει σωστά όλα αυτά που μου λες, προσπαθώ όπως βλέπεις να μάθω. Αν κάτι απ' αυτά που σου απαντάω δεν βγάζει νόημα, πες μου γιατί ίσως δεν το έχω καταλάβει. |
#3
|
||||
|
||||
![]() Παράθεση:
Σωστά τα έχεις κάνει απλά με παραξενεύει το γεγονός ότι είναι αντιληπτό το "φλασαρισμα" των ρελέ. Ίσως ο κώδικας να είναι πιο "βαρύς" δεδομένου ότι εγώ έχω αφαιρέσει πολλά κομμάτια όπως πχ τα κανάλια με τα χρώματα για led φωτισμό, κυκλοφορητες κλπ Εφόσον μιλάμε για δευτερόλεπτο η και κλάσμα του δευτερολέπτου όλα οκ. Στις διευθύνσεις της EEPROM από αποθηκεύονται μόνιμα δεδομένα όπως πχ η ώρα εκκίνησης ενός alarm, η θερμοκρασία για τον θερμοστάτη η τον ανεμιστήρα κλπ Εάν ασχοληθείς και διαβάσεις τον κώδικα τότε θα δεις πως λειτουργούν. Για εμένα ήταν το πιο δύσκολο κομμάτι καθώς άλλαξα ακόμα και τον τύπο των δεδομένων που υπάρχουν εκεί όπως πχ τα ml για τα λιπάσματα από ακέραιες τιμές σε δεκαδικες κλπ. Sent from my Lenovo P1ma40 using Tapatalk ------------------------- Παράθεση:
Ειδικά, ακόμα το ψάχνω... Sent from my Lenovo P1ma40 using Tapatalk Τελευταία επεξεργασία από το χρήστη dkatsariotis : 23-03-17 στις 21:26 Αιτία: Automerged Doublepost |
#4
|
||||
|
||||
![]()
Μπορώ να ρωτήσω, πόσο καιρό σου πήρε να το μάθεις γενικά το Arduino?
|
#5
|
||||
|
||||
![]() Παράθεση:
![]() Τελευταία επεξεργασία από το χρήστη stanisalus18 : 15-09-18 στις 13:25 Αιτία: Επαναφορά φωτογραφιών |
#6
|
||||
|
||||
![]() Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk ------------------------- Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk Τελευταία επεξεργασία από το χρήστη dkatsariotis : 25-03-17 στις 16:33 Αιτία: Automerged Doublepost |
#7
|
||||
|
||||
![]() Παράθεση:
¶ρα στο ρελέ μου δεν μπορώ να κάνω αυτό που λες, να χρησιμοποιηθεί η άλλη επαφή των ρελέ και τα pin να είναι σε digitalwrite low όπως ήταν αρχικά στον κώδικα. |
#8
|
||||
|
||||
![]() Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk |
#9
|
||||
|
||||
![]()
Όχι ρε παιδιά τα μπερδεύετε. Το ρελέ που έχει βάλει ο sxetikos, είναι το ίδιο με το δικό μου.
(0-2.5V low state relays ON) (3.3-5V state high relay OFF) Στο δικό μου ρελέ έχει σημασία σε ποιά έξοδο του ρελέ θα συνδέσω τη φάση; Λογικά όχι έτσι; |
#10
|
||||
|
||||
![]() Παράθεση:
![]() Σε αυτή τη φώτο που έχει αυτό το board είναι το σωστό σύμφωνα με τη περιγραφή. Στο board σου θα βάλεις στο A την φάση σε κάθε ρελέ και από το B θα πάρεις την εξοδο σου. Και ανάποδα να γίνει δεν έχεις θέμα. Απλά ακολουθείς μία σειρά κοινή για όλα. Sent from my Lenovo P1ma40 using Tapatalk |
![]() |
Tags |
aquarium controller, arduino, iaqua |
Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες) | |
|
|
![]() |
||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
arduino απορια | gregkn73 | DIY . Φτιάχτο μόνος σου | 4 | 20-11-14 03:20 |
arduino controller | ikaria_jim | DIY . Φτιάχτο μόνος σου | 5 | 09-02-14 16:21 |
Arduino aquarium controller | chris the trik | DIY . Φτιάχτο μόνος σου | 33 | 06-04-10 20:23 |
Προγραμματισμός σεμιναρίων | ΠΣΦΕ | Πανελλήνιος Σύλλογος Φίλων του Ενυδρείου | 33 | 03-12-07 09:58 |
Σκέψεις - προγραμματισμός - απόψεις | KwstasV | DIY . Φτιάχτο μόνος σου | 10 | 12-02-07 14:58 |