Σελίδα 2 από 6 ΠρώτηΠρώτη 1 2 3 4 ... ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 11 έως 20 από 54

Θέμα: Atmel ή PIC

  1. #11
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από SV1JRT Εμφάνιση μηνυμάτων
    void loop() {
    gotoXY(21,1);
    LcdString("L");


    gotoXY(63,1);
    LcdString("W");

    LscinSignal = analogRead(analogInPin2);
    delay(LscinSignal);

    if(LscinSignal == 3 || LscinSignal == 4 )
    {
    gotoXY(9,3);
    LcdString(itoa (LscinSignal, bufferL, 10));
    delay(LscinSignal);
    }

    WscinSignal = analogRead(analogInPin1);
    delay(WscinSignal);

    if(WscinSignal == 3 || WscinSignal == 4 )
    {
    gotoXY(9,3);
    LcdString(itoa (WscinSignal, bufferL, 10));
    delay(WscinSignal);


    digitalWrite(buzzer, HIGH); // turn the LED on (HIGH is the voltage level)
    delay(10); // wait for a 10 msecond
    digitalWrite(buzzer, LOW); // turn the LED off by making the voltage LOW
    }

    Γιάννη,
    Ξεκινάς να "διαβάσεις" την LscinSignal και ΑΜΕΣΩΣ μετά βάζεις μια ΜΕΤΑΒΛΗΤΗ ΚΑΘΥΣΤΕΡΗΣΗ ίση με την τιμή που διάβασες, δηλαδή 0 μέχρι 1024 mS.
    Μετά κάνεις μια σύγκριση της τιμής της LscinSignalκαι αν η τιμή της είναι 3 ή 4 γράφεις στην LCD το νούμερο και ξανακάνεις μία καθυστέρηση 3 ή 4 mS.
    Μετά ΞΑΝΑΔΙΑΒΑΖΕΙΣ την αναλογική είσοδο στην μεταβλητή WscinSignal και ΞΑΝΑΚΑΝΕΙΣ ΜΕΤΑΒΛΗΤΗ καθυστέρηση απο 0 μέχρι 1024 mS.
    Είσαι σίγουρος οτι αυτό είναι που θέλεις να κάνεις ??

    .
    Σωτηρη,


    η καθυστερηση ειναι τυπικη, δεν εχει συγκεκριμενο χρονο απλα οσο το δυνατον μικρη η οποία να αφεινει χρονο ετσι ωστε να μπει η τιμη στον buffer, παρατηρηησα οτι χρειαζΕΤΑΙ.

    απλα το προγραμμα κανει το διαβασμα καιμετατροπη για να μπορεσει να παει στην οθονη

    0 Not allowed! Not allowed!

  2. #12
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από nio-4- Εμφάνιση μηνυμάτων
    Σωτηρη,


    η καθυστερηση ειναι τυπικη, δεν εχει συγκεκριμενο χρονο απλα οσο το δυνατον μικρη η οποία να αφεινει χρονο ετσι ωστε να μπει η τιμη στον buffer, παρατηρηησα οτι χρειαζΕΤΑΙ.

    απλα το προγραμμα κανει το διαβασμα καιμετατροπη για να μπορεσει να παει στην οθονη
    Δεν υπάρχει ούτε 0.000001% πιθανότητα να χρειάζεται για να μπει κάτι κάπου.
    Ο μΕ λειτουργεί σειριακά, δηλαδή 1 εντολή την φορά, απ' την στιγμή που η itoa έκανε return τότε όλα είναι στην θέση τους.
    Απ την στιγμή που η Lcdstring έκανε return όλα έχουν μεταφερθεί.

    Μου έχει τύχει ο compiler του arduino να τα κάνει σκατά και μια μικρή αλλαγή στον κώδικα να τον ξεμπλοκάρει, πχ μια delay, η ακόμα και η προσθήκη μιας βιβλιοθήκης που δεν χρησιμοποιείτε πουθενά.

    Αυτό που λες δεν στέκει, ίσως υπάρχει πρόβλημα στην μεταφορά δεδομένων, δηλαδή ο controller της οθόνης να χρειάζεται κάποιο χρόνο μεταξύ δεδομένων, ίσως δεν ολοκληρώνεις σωστά την μεταφορά.

    1 Not allowed! Not allowed!

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

    Προεπιλογή

    Κώδικας:
    if(LscinSignal == 3 || LscinSignal == 4 )
    {
    .
    .
    .
    }
    
    Αυτο σημαινει οτι θα εκτελεσει τα παρακατω...οταν η ταση στο εκαστοτε AnalogPin είναι ~19mVolt..

    Ελπιζω με το 3 και 4 να μης εννοεις Volt...

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη SProg : 08-03-17 στις 21:11

  4. #14
    Μέλος
    Όνομα
    ΑΛΕΞΑΝΔΡΟΣ
    Εγγραφή
    Jan 2012
    Περιοχή
    Άνω Αχαρναί
    Μηνύματα
    717

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    Μου έχει τύχει ο compiler του arduino να τα κάνει σκατά και μια μικρή αλλαγή στον κώδικα να τον ξεμπλοκάρει, πχ μια delay, η ακόμα και η προσθήκη μιας βιβλιοθήκης που δεν χρησιμοποιείτε πουθενά.
    Δεν είναι απαραίτητο να κάνεις αλλαγή στον κώδικα για να ξεμπλοκάρει ο compiler. Μου έχει τύχει να περάσω με επιτυχία τον κώδικα σε έναν ATMEGA2560 (τουλάχιστον έτσι έβγαλε το τελικό μήνυμα ότι ο κώδικας ανέβηκε επιτυχώς), να φάω μπόλικες ώρες στο να βρώ γιατί κολλάει ο κώδικας στο ξεκίνημα αφού όλα είναι σωστά και τελικά αφού είχα απελπιστεί και δεν είχα να κάνω κάτι άλλο, ξαναπέρασα τον ίδιο κώδικα και συνέβη το μη αναμενόμενο. Να δουλεύουν όλα σωστά!

    Αυτό το συμβάν μου έχει τύχει δύο φορές. Την δεύτερη, σ'έναν ATMEGA328.

    0 Not allowed! Not allowed!

  5. #15
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από SavKok Εμφάνιση μηνυμάτων
    Κώδικας:
    if(LscinSignal == 3 || LscinSignal == 4 )
    {
    .
    .
    .
    }
    
    Αυτο σημαινει οτι θα εκτελεσει τα παρακατω...οταν η ταση στο εκαστοτε AnalogPin είναι ~19-25mVolt..

    Ελπιζω με το 3 και 4 να μης εννοεις Volt...
    γιατι 19-25??? απο 0-5v η αναλογικη εισοδοςδινει δεδομενα αρα τετοιες τιμες δινει .Μηπως λες το κατωτατο όριο τασης?

    θα βαλω παλμογραφο να δω την είσοδο των αισθητηρων...βασικα τον LM αν στελενει σηματα
    οχι φυσικα!!! ξερω τι ζηταω

    0 Not allowed! Not allowed!

  6. #16
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    Δεν υπάρχει ούτε 0.000001% πιθανότητα να χρειάζεται για να μπει κάτι κάπου.
    Ο μΕ λειτουργεί σειριακά, δηλαδή 1 εντολή την φορά, απ' την στιγμή που η itoa έκανε return τότε όλα είναι στην θέση τους.
    Απ την στιγμή που η Lcdstring έκανε return όλα έχουν μεταφερθεί.

    Μου έχει τύχει ο compiler του arduino να τα κάνει σκατά και μια μικρή αλλαγή στον κώδικα να τον ξεμπλοκάρει, πχ μια delay, η ακόμα και η προσθήκη μιας βιβλιοθήκης που δεν χρησιμοποιείτε πουθενά.

    Αυτό που λες δεν στέκει, ίσως υπάρχει πρόβλημα στην μεταφορά δεδομένων, δηλαδή ο controller της οθόνης να χρειάζεται κάποιο χρόνο μεταξύ δεδομένων, ίσως δεν ολοκληρώνεις σωστά την μεταφορά.
    τι προτινεις να κανω για να ξεμπλοκαρει? το προβλημα παρουσιαζεται και οταν δινω δεδομενα στην οθόνη του υπολογιστηη τα στελνω στην σειριακη δηλαδη... print(); ....

    0 Not allowed! Not allowed!

  7. #17
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από alefgr Εμφάνιση μηνυμάτων
    Δεν είναι απαραίτητο να κάνεις αλλαγή στον κώδικα για να ξεμπλοκάρει ο compiler. Μου έχει τύχει να περάσω με επιτυχία τον κώδικα σε έναν ATMEGA2560 (τουλάχιστον έτσι έβγαλε το τελικό μήνυμα ότι ο κώδικας ανέβηκε επιτυχώς), να φάω μπόλικες ώρες στο να βρώ γιατί κολλάει ο κώδικας στο ξεκίνημα αφού όλα είναι σωστά και τελικά αφού είχα απελπιστεί και δεν είχα να κάνω κάτι άλλο, ξαναπέρασα τον ίδιο κώδικα και συνέβη το μη αναμενόμενο. Να δουλεύουν όλα σωστά!

    Αυτό το συμβάν μου έχει τύχει δύο φορές. Την δεύτερη, σ'έναν ATMEGA328.
    φορτωνω πολλες φορες τον κωδικα. Εχω και ένα κομματιτ κοδικα για ελεγχο οτι στελνει δεδομενα σκετο διβασμα αναλογικης εισοδου δηλαδη analogRead();

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Η μεγιστη ταση που μπορει να δωσεις σε μια αναλογικη είσοδο του Arduino είναι 5V.


    Εαν δινεις τασεις απο 0V έως 5V (με ταση αναφορας 5V, ετσι ερχονται οι Arduino με λιγα λογια) και διαβαζεις τον ΑDC, τότε ο ADC μετατρέπει αυτη την ταση 0-1023.

    - Για 0V θα παρεις τιμη 0
    - Για 2.5V θα παρεις τιμη 511


    Για να παρεις τιμη 4 θα πρεπει να 'βλεπει' τάση

    Ταση_Εισόδου = 4 * (5 / 1023 ) = 19.5 MilliVolt

    1 Not allowed! Not allowed!

  9. #19
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Έχεις περιορίσει το πρόβλημα στο ότι η εμφάνιση έχει θέμα.
    Αντιθέτως έχουμε ένα παλμό αγνώστων στοιχείων, δεν υπάρχει κυμματομορφή εισόδου για να δούμε τι καταλήγει στον μΕ και έχεις delay εξαρτώμενα από αναλογική είσοδο τα οποία σου κάνουν την περίοδο δειγματοληψίας αχταρμά.

    Έχεις ένα L και W το οποίο εκτυπώνεις συνέχεια χωρίς λόγο.

    Και έχεις και μια if που αν είναι 3 ή 4 μετατρέπει το 3 ή 4 σε χαρακτήρα και το εμφανίζει.
    Άρα στην θέση 9,3 αν το L είναι 3 ή 4 θα γράψει "3" ή "4"
    και μετά στην θέση 9,3 αν το W είναι 3 ή 4 θα γράψει "3" ή "4"

    Άρα στην θέση 9,3 θα βλέπεις "3" ή "4" που θα είναι και του L και του W.
    Λογικό είναι αν δεν έχεις delay του L που τυπώνετε πρώτο να μην το βλέπεις ποτέ και να βλέπεις μόνο του W γιατί ακολουθεί το 10ms delay του buzzer.
    Σε τι μπορεί να σε ωφελήσει αυτό δεν ξέρω. Φαντάζομαι λάθος είναι από copy paste.

    Εγώ θα έβαζα έναν Timer με interrupt σε σταθερή δειγματοληψία τουλάχιστον χ2 της συχνότητας του σήματος, χ10 καλύτερα (Shannon-Nyquist) (σε κανονική εφαρμογή μόνο την εκκίνηση του ADC και το finish σε interrupt αλλά ψηλά γράμματα). Έλεγχο αν η τιμή είναι 3 ή 4, αν ναι τότε ανέβασμα μιας σημαίας

    Και στην loop αν η σημαία έχει σηκωθεί θα ενημερώνω την οθόνη ΜΟΝΟ εάν χρειάζεται ενημέρωση και θα κατέβαζα την σημαία.

    Αυτό μας δίνει το αποτέλεσμα να έχεις 2 θέσεις στην οθόνη που θα γράφουν 3 ή 4, σύμφωνα και με τον κώδικά σου.

    1 Not allowed! Not allowed!

  10. #20
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    Έχεις περιορίσει το πρόβλημα στο ότι η εμφάνιση έχει θέμα.
    Αντιθέτως έχουμε ένα παλμό αγνώστων στοιχείων, δεν υπάρχει κυμματομορφή εισόδου για να δούμε τι καταλήγει στον μΕ και έχεις delay εξαρτώμενα από αναλογική είσοδο τα οποία σου κάνουν την περίοδο δειγματοληψίας αχταρμά.

    Έχεις ένα L και W το οποίο εκτυπώνεις συνέχεια χωρίς λόγο.

    Και έχεις και μια if που αν είναι 3 ή 4 μετατρέπει το 3 ή 4 σε χαρακτήρα και το εμφανίζει.
    Άρα στην θέση 9,3 αν το L είναι 3 ή 4 θα γράψει "3" ή "4"
    και μετά στην θέση 9,3 αν το W είναι 3 ή 4 θα γράψει "3" ή "4"

    Άρα στην θέση 9,3 θα βλέπεις "3" ή "4" που θα είναι και του L και του W.
    Λογικό είναι αν δεν έχεις delay του L που τυπώνετε πρώτο να μην το βλέπεις ποτέ και να βλέπεις μόνο του W γιατί ακολουθεί το 10ms delay του buzzer.
    Σε τι μπορεί να σε ωφελήσει αυτό δεν ξέρω. Φαντάζομαι λάθος είναι από copy paste.

    Εγώ θα έβαζα έναν Timer με interrupt σε σταθερή δειγματοληψία τουλάχιστον χ2 της συχνότητας του σήματος, χ10 καλύτερα (Shannon-Nyquist) (σε κανονική εφαρμογή μόνο την εκκίνηση του ADC και το finish σε interrupt αλλά ψηλά γράμματα). Έλεγχο αν η τιμή είναι 3 ή 4, αν ναι τότε ανέβασμα μιας σημαίας

    Και στην loop αν η σημαία έχει σηκωθεί θα ενημερώνω την οθόνη ΜΟΝΟ εάν χρειάζεται ενημέρωση και θα κατέβαζα την σημαία.

    Αυτό μας δίνει το αποτέλεσμα να έχεις 2 θέσεις στην οθόνη που θα γράφουν 3 ή 4, σύμφωνα και με τον κώδικά σου.

    ωραιο αυτο!!! ναι συμφωνω με το interrupt μηπως θα μπορουσαμε να εχουμε ενα μικρο κωδικα??? παραλληλα τωρα ψαχνω και εγω κατι ετοιμο να το προσαρμοσω

    Το πλατος των παλμών είναι κατω απο 100us μεξαξυ 60us-90us

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη nio-4- : 08-03-17 στις 22:40

Σελίδα 2 από 6 ΠρώτηΠρώτη 1 2 3 4 ... ΤελευταίαΤελευταία

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

  1. Απαντήσεις: 40
    Τελευταίο Μήνυμα: 20-04-16, 22:36
  2. RF επικοινωνία ATMEL
    By glompos21 in forum Μικροελεγκτές
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 24-02-09, 19:02
  3. Programmer ATmeL & PIC
    By P@s@ris! in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 3
    Τελευταίο Μήνυμα: 08-01-08, 11:44
  4. Αρχή με ATMEL
    By kopla in forum Μικροελεγκτές
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 05-12-06, 20:23
  5. Απαντήσεις: 4
    Τελευταίο Μήνυμα: 13-02-06, 09:08

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

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