Εμφάνιση ενός μόνο μηνύματος
  #122  
Παλιά 23-03-17, 11:29
Το avatar του χρήστη AgMa
AgMa Ο χρήστης AgMa δεν είναι συνδεδεμένος
Senior Member
 
Εγγραφή: 10-11-2014
Περιοχή: Κρήτη, Ηράκλειο
Μηνύματα: 423
Προεπιλογή

Να ψάξω τον κώδικα;;; Ωχ τι με βάζεις να κάνω τώρα, εκεί μέσα είναι το άδυτο .
Υπάρχει εύκολος τρόπος να τσεκάρω τα αλάρμ που λες; Μέσω σειριακής οθόνης πχ.;
Σχετικά με το ρελέ και να μην φορτωθεί το high στο digitalwrite, τι θα πάθω; Στα ρελέ θα συνδεθούν φίλτρο, κυκλοφορητής, θερμοστάτης, ανεμιστήρες, φωτισμός (αν καταφέρω να φτιάξω κώδικα ανατολής-δύσης Τ5) και ίσως η ηλεκτρομαγνητική βάνα normally closed που έχω να αδειάζω. Σε αυτή ίσως να υπάρξει θέμα, αλλά το βλέπω στην πορεία αυτό, προαιρετικό είναι.
Οι αντλίες λίπανσης δεν θα συνδεθούν με τα ρελέ.

Τα optocoupler δουλεύουν μόνιμα δηλαδή; Δεν έχω καταλάβει τον τρόπο λειτουργίας τους.

Edit: Ααα ξέχασα το σημαντικότερο!
Η λειτουργία watchdog μέχρι τώρα μου έχει δουλέψει άψογα. Όταν κάτι για κάποιο λόγο δεν έχει δουλέψει σωστά (πχ. το έχω τσεκάρει να μην φορτώνουν σωστά οι εικόνες απ' την sd και επίσης να μου δείξει περίεργα σχέδια στο μενού led graph λόγω λάθος του κώδικα) τότε κάνει επανεκκίνηση στο arduino.
Άρα υποθέτω σε λάθος φόρτωμα του κώδικα θα γίνει το ίδιο.
Ο κώδικάς του, αν μπορέσεις να καταλάβεις πως δουλεύει:

void watchdogSetup()
{
cli(); // disable all interrupts
wdt_reset(); // reset the WDT timer
MCUSR &= ~(1<<WDRF); // because the data sheet said to
/*
WDTCSR configuration:
WDIE = 1 :Interrupt Enable
WDE = 1 :Reset Enable - I won't be using this on the 2560
WDP3 = 1 :For 2000ms Time-out
WDP2 = 0 :bit pattern is
WDP1 = 0 :0111 change this for a different
WDP0 = 1 :timeout period.
*/
// Enter Watchdog Configuration mode:
WDTCSR = (1<<WDCE) | (1<<WDE);
// Set Watchdog settings: interrupte enable, 1001 for timer
WDTCSR = (1<<WDIE) | (0<<WDP3) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0);
sei();
Serial.println(F("\nFinished watchdog setup")); // just here for testing
}

ISR(WDT_vect) // Watchdog timer interrupt.
{
if(millis() - resetTime > TIMEOUTPERIOD){
resetFunc(); // This will call location zero and cause a reboot.
Απάντηση με παράθεση
 
Page generated in 0,01557 seconds with 11 queries