Makis990 Δημοσ. 30 Σεπτεμβρίου 2018 Δημοσ. 30 Σεπτεμβρίου 2018 (επεξεργασμένο) θα ήθελα την βοήθεια σας, έχω βρει στο internet αυτό το κύκλωμα με το arduino, έχω βάλει αυτό το προγραμματισμό /* Under the bed nightlight Lights up a led strip under the bed when it detects movement while its dark. The circuit: PIR for movement. The ammout of sensors depends on the bed. LDR for light sensor Transistor to drive the LED strip */ #define ldr_pin A0 #define led_pin 3 const int numberOfPirs = 1; // Number of pir sensors const int pir_pins[numberOfPirs] = {2}; // Pins of the pir sensors Example = {pin,pin,pin} const int led_time = 120; // Time to have the leds on (no an exact timing) (in Sec) const int on_delay = 100; // Delay to turn the leds on (in mSec) const int off_delay = 50; // Delay to turn the leds off (in mSec) const int ldr_value = 5; // Value to make the differene between dark and light const int led_max = 200; // Ledstrip max pwm value const int led_min = 0; // Ledstrip min pwm value (0 recommended, else it wont turn off) boolean licht = false; // Booelan thats true when the light is on; boolean led = false; // Boolean thats true when the led strip is on; int timer = 0; // Integer for the timer; void setup() { pinMode(ldr_pin, INPUT); // Set pinmode for all pir sensors for (int i = 0; i < numberOfPirs; i++) { pinMode(pir_pins, INPUT); } pinMode(led_pin, OUTPUT); } void loop() { // Read ldr value int ldr = analogRead(ldr_pin); // Read all pir sensors boolean pir = false; for (int i = 0; i < numberOfPirs; i++) { if (digitalRead(pir_pins) == 1) { pir = true; } } // Check if the room hase enough light if (ldr > ldr_value) { licht = true; } else { licht = false; } // If the room is dark and movement is detected the leds turn on and the timer is set to 0 if (pir == true && licht == false) { ledAan(); timer = 0; } // if the leds are on and the room has enough light the leds go off if (led == true && licht == true) { ledUit(); } // if the leds are on icrement the timer if (led == true) timer++; // if the timer is equal to the set time turn the leds off. if (timer == led_time) { ledUit(); } delay(1000); } // function to turn the leds on void ledAan() { if (led == false) { for (int i = led_min; i <= led_max; i++) { analogWrite(led_pin, i); delay(on_delay); } led = true; } } // function to turn the leds off void ledUit() { if (led == true){ for (int i = led_max; i >= led_min; i--) { analogWrite(led_pin, i); delay(off_delay); } led = false; } } το πρόβλημα μου είναι το έξης... Όταν χαμηλώνει το φως και βλέπει κίνηση ο αισθητήρας τα led ανοίγουν για ένα χρονικό διάστημα και μετά σβήνουν, απλά θα ήθελα όσο βλέπει συνέχεια κίνηση ο αισθητήρας, τα led να μην σβήνουν μέχρι έως να μην υπάρχει κίνηση Επεξ/σία 30 Σεπτεμβρίου 2018 από Makis990
gon1332 Δημοσ. 1 Οκτωβρίου 2018 Δημοσ. 1 Οκτωβρίου 2018 Πρέπει να διαβάσεις το datasheet του PIR αισθητήρα σου και να δεις τι κάνει το Retrigger Setting Jumper. Ρίξε μία ματιά κι εδώ.
Makis990 Δημοσ. 1 Οκτωβρίου 2018 Μέλος Δημοσ. 1 Οκτωβρίου 2018 gon1332 ευχαριστώ πολύ για την απάντηση σου. στον αισθητήρα PIR τον βραχυκυκλωτήρα τον έχω στην θέση ''H'' αλλά αυτό συνεχίζει και αναβοσβήνει...
Aggeluska Δημοσ. 2 Οκτωβρίου 2018 Δημοσ. 2 Οκτωβρίου 2018 να ρωτησω κατι; ειναι νομιμο να φτιαξεις κατι με Arduino shield + parts και μετα να το πας commercial Κια να το πουλησεις; Σημερα αρχισα να διαβαζω για arduino.
παπι Δημοσ. 2 Οκτωβρίου 2018 Δημοσ. 2 Οκτωβρίου 2018 Ναι. Βέβαια η δουλειά του ειναι για εκπαίδευση και προτοταιπινγκ. 1
gon1332 Δημοσ. 2 Οκτωβρίου 2018 Δημοσ. 2 Οκτωβρίου 2018 (επεξεργασμένο) 21 ώρες πριν, Makis990 είπε gon1332 ευχαριστώ πολύ για την απάντηση σου. στον αισθητήρα PIR τον βραχυκυκλωτήρα τον έχω στην θέση ''H'' αλλά αυτό συνεχίζει και αναβοσβήνει... Αφήνεις τον αισθητήρα να "ζεσταθεί"; Αν θυμάμαι καλά χρειάζεται τουλάχιστον 1 λεπτό για να αρχίζει να δουλεύει κατά τ'αναμενόμενα. Επίσης, έχε υπόψιν ότι ο αισθητήρας έχει 3 δευτερόλεπτα αδράνειας από τη στιγμή που σταμάτησε να αναγνωρίζει κίνηση. Τέλος, δες την γωνία που έχει και έλεγξε αν την τηρείς. Ίσως τον έχεις βάλει σε λάθος σημείο και δεν αναγνωρίζει πάντα κίνηση και σε συνδιασμό με το από πάνω να παρατηρείς τη συμπεριφορά που έχεις. Σημείωση: Ίσως να υπάρχει κάποιο θέμα και στον κώδικά σου ή το κύκλωμα, αλλά δεν τα έχω τσεκάρει, λόγω έλλειψης χρόνου. Επεξ/σία 2 Οκτωβρίου 2018 από gon1332
Makis990 Δημοσ. 3 Οκτωβρίου 2018 Μέλος Δημοσ. 3 Οκτωβρίου 2018 Στις 2/10/2018 στις 5:28 ΜΜ, gon1332 είπε Αφήνεις τον αισθητήρα να "ζεσταθεί"; Αν θυμάμαι καλά χρειάζεται τουλάχιστον 1 λεπτό για να αρχίζει να δουλεύει κατά τ'αναμενόμενα. Επίσης, έχε υπόψιν ότι ο αισθητήρας έχει 3 δευτερόλεπτα αδράνειας από τη στιγμή που σταμάτησε να αναγνωρίζει κίνηση. Τέλος, δες την γωνία που έχει και έλεγξε αν την τηρείς. Ίσως τον έχεις βάλει σε λάθος σημείο και δεν αναγνωρίζει πάντα κίνηση και σε συνδιασμό με το από πάνω να παρατηρείς τη συμπεριφορά που έχεις. Σημείωση: Ίσως να υπάρχει κάποιο θέμα και στον κώδικά σου ή το κύκλωμα, αλλά δεν τα έχω τσεκάρει, λόγω έλλειψης χρόνου. Ο αισθητήρας σίγουρα ζεσταίνετε γιατί προσπαθώ να βρω τρόπο πάνω από μια ώρα και επίσης είναι ακριβός από μπροστά μου για το θέμα της γωνίας... για την αδράνεια το γνωρίζω αλλά το πρόβλημα είναι ότι βλέπει κίνηση συνέχεια αλλά τα led μετά από 30 δευτερόλεπτα περίπου σβήνουν και ξανά ανοίγουν απευθείας.... μετά από πολύ ψάξιμο στο internet από ότι κατάλαβα πρέπει να έχω κάποιο λάθος στον κώδικα με την εντολή σε αυτό το σημείο: // if the timer is equal to the set time turn the leds off. if (timer == led_time) { ledUit(); } delay(1000); } επειδή δεν γνωρίζω και πολλά από το προγραμματισμό ίσως να φταίει και κάποιο άλλο if που έχω μέσα.... τον κώδικα ολόκληρο το έχω βρει μέσα στο internet έτοιμο... με τα λίγα που ξέρω προσπάθησα να το φέρω στα μέτρα μου...
gon1332 Δημοσ. 4 Οκτωβρίου 2018 Δημοσ. 4 Οκτωβρίου 2018 5 ώρες πριν, Makis990 είπε Ο αισθητήρας σίγουρα ζεσταίνετε γιατί προσπαθώ να βρω τρόπο πάνω από μια ώρα και επίσης είναι ακριβός από μπροστά μου για το θέμα της γωνίας... για την αδράνεια το γνωρίζω αλλά το πρόβλημα είναι ότι βλέπει κίνηση συνέχεια αλλά τα led μετά από 30 δευτερόλεπτα περίπου σβήνουν και ξανά ανοίγουν απευθείας.... μετά από πολύ ψάξιμο στο internet από ότι κατάλαβα πρέπει να έχω κάποιο λάθος στον κώδικα με την εντολή σε αυτό το σημείο: // if the timer is equal to the set time turn the leds off. if (timer == led_time) { ledUit(); } delay(1000); } επειδή δεν γνωρίζω και πολλά από το προγραμματισμό ίσως να φταίει και κάποιο άλλο if που έχω μέσα.... τον κώδικα ολόκληρο το έχω βρει μέσα στο internet έτοιμο... με τα λίγα που ξέρω προσπάθησα να το φέρω στα μέτρα μου... Για να βοηθήσεις λίγο στην ανάγνωση του κώδικα εδώ, για ρίξ'τον σε code blocks.
παπι Δημοσ. 4 Οκτωβρίου 2018 Δημοσ. 4 Οκτωβρίου 2018 Το πρόγραμμα που έχεις βάλει, ανάβει τα λεντ για 120 δευτερόλεπτα εάν υπάρχει κίνηση και δεν υπάρχει φως. Τα λεντ κλείνουν μετά από 120 δευτερόλεπτα ή νωρίτερα αν υπάρχει φως.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα