Ο κώδικας που είναι; Αν και ερασιτέχνης στον προγραμματισμό ας τον ρίξουμε μια ματιά μπας και δούμε τίποτα.
|
http://www.megafileupload.com/26dhc/MrAqua_v2_5_1.ino
Μήπως πρέπει να αλλάξω κάτι στην συνδεσμολογία; Το ρελέ είναι αυτό: http://www.ebay.com/itm/400904103768...%3AMEBIDX%3AIT Όλες οι συνδέσεις έχουν γίνει στα μπλε kf301, αλλά αν δεις αριστερά τους έχει και κάτι άλλες υποδοχές, σαν αυτές που μπαίνουν τα jumper. |
Τα πινσ δίπλα από τις κλέμες είναι παράλληλα συνδεμένα με τις κλέμες. Είτε στην κλέμα συνδέσεις είτε στο πινς είναι το ίδιο πράγμα.
Στα ρελε τι συνδέετε ? |
Προς το παρόν τίποτα. Έχω δώσει μόνο 5v, gnd και τα analog pins του arduino.
Στον κώδικα δεν βρήκες κάτι; |
όχι, ακόμα τίποτα, προσπαθώ να καταλάβω πως λειτουργεί.
Τα ρελέ με χαμηλή λογική τα προτείνει ο κατασκευαστής του προτζεκτ ή τα πήρες έτσι κατά λάθος? |
Όχι, στο project χρησιμοποιεί τα κλασσικά ρελέ που τα ορίζεις εσύ να ενεργοποιούνται είτε με high trigger είτε με low, μέσω των jumper που έχουν.
|
Οπότε, το προτζεκτ μάλλον έχει υψηλή λογική.
Αν δεν βρούμε πως γίνεται στο πρόγραμμα τότε μπορείς να το λύσεις το πρόβλημα με ένα ολοκληρωμένο κύκλωμα αναστροφέα (not gate). Αυτό παίρνει την μία λογική και την μετατρέπει στην άλλη. Κάνει αναστροφή την είσοδο του. Είναι απλό στην σύνδεση. Ένα τέτοιο ολοκληρωμένο είναι το 7404. |
Παράθεση:
Το ίδιο θέμα είχα με τους δικούς μου ρελέ. Δουλεύουν ουσιαστικά με αντίστροφη πολικότητα. Η λύση απλή. Αφού δηλώσεις τα pin σου πριν το void setup() πχ: int pwrFanPin = A6; //Cooling fan relay μετά μέσα στο void setup() βάζεις: pinMode(pwrFanPin, OUTPUT); digitalWrite(pwrFanPin, HIGH); Με αυτό το τρόπο θα αντιστρέψεις τον τρόπο λειτουργίας τους. Πλέον σε κατάσταση high το ρελέ είναι κλειστό και σε low είναι σε λειτουργία. Αυτό το κάνεις για κάθε pin που πάει στην πλακέτα με τα ρελέ. Δεν έχεις θέμα κατανάλωσης η θερμοκρασίας κλπ γιατί στο δικό μου board τουλάχιστον η λειτουργία των ρελέ καθορίζεται από optocoupler που έχει στην είσοδο τους. Λόγω της ταχύτητας του Arduino η αλλαγή σε high είναι ακαριαία και δεν αντιλαμβάνεσαι τίποτα. Απλά πρόσεξε να μπουν οι εντολές πρώτες πρώτες στο void setup() Κατόπιν στον κώδικα όπου είχες digitalWrite(pwrFanPin, HIGH); για να λειτουργήσει ο ρελέ, το κάνεις digitalWrite(pwrFanPin, LOW); Ασφαλώς όπου pwrFanPin είναι τα αντίστοιχα δικά σου pin Sent from my Lenovo P1ma40 using Tapatalk |
Σίγουρα είναι ο τελευταίος κώδικας που έβαλες στο λινκ? Σαν να λείπει όλο το τμήμα που έχει σχέση με τον χειρισμό τον ρελε. Βρίσκω αναφορά στα ρελε αλλά δεν βρίσκω που γίνεται ο χειρισμός.
Κατέβασα μια άλλη έκδοση το προγράμματος και εκεί υπάρχει και το τμήμα χειρισμού. Εσύ μπορείς και χειρίζεσαι τα ρελε με το touch screen αλλά απλός έχουν ανάποδη λειτουργία ? |
Καλημέρα,
Ναι η τελευταία έκδοση είναι αλλά του MrMan. Ο δημιουργός του project το άφησε μέχρι την έκδοση 1.0.4 και το συνέχισε ο MrMan. Ναι και εγώ απ' τα λίγα που ξέρω από κώδικα, δεν βρήκα κάπου τον χειρισμό του. Περίμενα να βρω κάτι σε στιλ analogwrite pinX, high ή low... Ναι αν μπω στο μενού power όπου ενεργοποιείς και απενεργοποιείς κυκλοφορητή, φίλτρο κτλ. αν τα ενεργοποιήσω, σβήνει το αντίστοιχο λαμπάκι στα ρελέ. Αν πατήσω το κουμπί που τα απενεργοποιεί όλα, ανάβουν όλα τα λαμπάκια στα ρελέ. @ dkatsariotis δεν πατάνε σε digital αλλά σε analog, άρα θα πρέπει να γράψω analogwrite, σωστά; |
Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk |
Ωραία κάτι άλλο τώρα,
Όπως σωστά αναρρωτιέται και ο φίλος παραπάνω, σε ποιό σημείο του κώδικα αναφέρεται ο χειρισμός του ρελέ; Πως δηλαδή καταλαβαίνει ότι μόλις εγώ πατήσω να κλείσει το φίλτρο αυτό δίνει εντολή; Επίσης γιατί έθεσες τη θερμοκρασία στον κώδικα που μου είπες; Επειδή θα παίρνει συνέχεια 5v; |
Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk |
Ο κώδικας είναι στο δεύτερο ποστ αυτής της σελίδας.
Τα ρελέ μου είναι solid state που απ' ότι έχω διαβάσει έχουν ένα θεματάκι με τις θερμοκρασίες (ανάλογα βέβαια και με τα αμπέρ των συσκευών που θα συνδέσεις) και κάποιοι τους βάζουν και heatsink. Ελπίζω να μην έχω θέμα... |
Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk ------------------------- Παράθεση:
// set all pin modes for output and inputs pinMode(pwrLight1Pin, OUTPUT); pinMode(pwrLight2Pin, OUTPUT); pinMode(pwrFilterPin, OUTPUT); pinMode(pwrCircPin, OUTPUT); pinMode(pwrHeatPin, OUTPUT); pinMode(pwrCO2Pin, OUTPUT); pinMode(pwrAux2Pin, OUTPUT); pinMode(pwrAux1Pin, OUTPUT); Και μετά τα δηλώνεις με το analogwrite όπως ανέφερα ήδη. Οι χειρισμοί των ρελέ γίνονται με alarms πχ: AlarmPwrCO2_On(); AlarmPwrCO2_Off(); Τα οποία όμως δεν είναι δηλωμένα μέσα στο ino αρχείο που έχεις παραπάνω. Προφανώς υπάρχει άλλο αρχείο ή σου λείπει ολόκληρο κομμάτι κώδικα με όλα τα alarms Sent from my Lenovo P1ma40 using Tapatalk |
void setup()
{ Serial.begin(9600); Serial2.begin(9600); Wire.begin(); delay(100); watchdogSetup(); pinMode(48,OUTPUT); digitalWrite(48,HIGH); pinMode(pwrLight1Pin, OUTPUT); analogWrite(pwrLight1Pin, 255); Αν είναι σωστό, δεν δουλεύει... |
Παράθεση:
void AlarmPwrCO2_On() { digitalWrite(pwrCO2Pin, LOW); } Με analogwrite στην δική σου περίπτωση Σε αυτό που έστειλες λείπει το int pwrLight1Pin = αναλογικό pin πριν δηλώσεις όλα τα άλλα, πριν το void setup() Sent from my Lenovo P1ma40 using Tapatalk |
Ναι έχετε δίκιο, δεν ανέβασα όλο τον κώδικα. Ορίστε ολοκληρωμένος:
http://www.megafileupload.com/3s8ky/alarms.ino http://www.megafileupload.com/3s8kA/arial_bold.c http://www.megafileupload.com/3s8kC/MrAqua_v2_5_1.ino http://www.megafileupload.com/Kivm/Screens.ino http://www.megafileupload.com/26dq2/Sinclair_S.c http://www.megafileupload.com/26dq4/startups.ino http://www.megafileupload.com/26dq6/Touch.ino |
Παράθεση:
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 } void AlarmPwrCO2_Off() { Από ότι βλέπω όμως χρησιμοποιεί digital και όχι analog που μου ανέφερες Sent from my Lenovo P1ma40 using Tapatalk |
Έχεις το fritzing; Δες το σχέδιο εγκατάστασης:
http://www.megafileupload.com/26dqi/iAqua.fzz Edit: https://s3.postimg.cc/no6mpq5bn/bitmap.jpg |
Παράθεση:
Η διαφορά του analogwrite είναι ότι παίρνει τιμές από 0-255 και έτσι πχ μπορείς να κάνεις dim σε ένα led. Στο digitalwrite έχεις μόνο low-high σαν πχ να έχεις έναν διακόπτη. Αυτό θες στη περίπτωση των ρελε Sent from my Lenovo P1ma40 using Tapatalk |
Ναι, δούλεψε!
void AlarmPwrLight1_On() { digitalWrite(pwrLight1Pin, HIGH); globalPower.pwrLight1=1; if (dispScreen==1) myFiles.load(178, 121, 24, 24, pwrLightIconS[globalPower.pwrLight1]); } void AlarmPwrLight1_Off() { digitalWrite(pwrLight1Pin, LOW); globalPower.pwrLight1 = 0; Αν αντιστρέψω τις τιμές αυτές, οπλίζει σωστά το ρελέ. Ευχαριστώ! |
Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk |
Όταν λες στο setup υποθέτω αναφέρεσαι στο alarms.ino σωστά;
|
Παράθεση:
Εκεί μέσα πρέπει να κάνεις τα pin αυτά high με το digitalwrite αλλιώς όλα τα ρελέ θα είναι ενεργοποιημένα σε κάθε εκκίνηση μέχρι να κληθεί το αντίστοιχο alarm Sent from my Lenovo P1ma40 using Tapatalk |
Στο βασικό setup, δεν υπάρχει επιλογή που να τα ορίζει σαν low ή high, παρά μόνο σαν input ή output.
Πρέπει να τις γράψω εγώ τις εντολές όπως είπες νωρίτερα; |
Παράθεση:
Sent from my Lenovo P1ma40 using Tapatalk |
Ααα οκ. Πρέπει να μπει ακριβώς κάτω απ' το void setup(), πριν από αυτό ή να αφήσω το serial begin να τρέξει με το θαλαμόσκυλο; (watchdog) :D και μετά;
Έχω την εντύπωση ότι το serialbegin πρέπει να είναι το πρώτο πράγμα που πρέπει να τρέξει μετά το voidsetup. |
Το serial.begin χρειάζεται ώστε να βλέπεις τα μηνύματα που εμφανίζονται με το serial.println οπότε και μετά να ακολουθήσει δεν υπάρχει θέμα. Καλό είναι τα digitalwrite να είναι όσο το δυνατόν πιο πρώτα γίνεται ώστε μη προλάβουν τα ρελέ να μείνουν πολύ ώρα ενεργοποιημένα χωρίς λόγο
Sent from my Lenovo P1ma40 using Tapatalk |
Οκ έτοιμο. Όταν το βγάλω από το ρεύμα και το ξανασυνδέσω, βλέπω βέβαια ένα αστραπιαίο άναμμα όλων των ρελέ και μετά σβήνουν.
Το περίεργο όμως είναι ότι όταν το ξανασυνδέσω, δεν παραμένουν αναμμένα τα ρελέ που ήταν και όταν το έβγαλα, αλλά συνέχεια ενεργοποιούνται κάποια συγκεκριμένα. |
Όλες οι ώρες είναι GMT +2. Η ώρα τώρα είναι 04:07. |
Forum engine powered by : vBulletin Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright 2000-2016 Greek Aquarists Board