#56 Χρονόμετρο αντίστροφης μέτρησης με το Arduino


Στο σημερινό άρθρο μας θα φτιάξουμε ένα χρονόμετρο αντίστροφης μέτρησης χρησιμοποιώντας δυο ψηφία 7 segment displays, που σημαίνει οτι μπορούμε να έχουμε μια αντίστροφη μέτρηση μέγιστου χρόνου 99 δευτερολέπτων. Είναι διαφορετικό απο αυτό που είδαμε πριν δυο μαθήματα καθώς πλέον ο χρόνος μπορεί να ρυθμιστεί απ' τον χρήστη πατώντας μερικά buttons.

Προσωπικά επέλεξα να φτιάξω το δικό μου custom κύκλωμα το οποίο βασίζετε στο Arduino unο καθώς χρησιμοποίησα τον μικρο εκλεκτή του, ATmega 328. Ωστόσο αυτό το βήμα είναι προαιρετικό για εσάς, έτσι σε αυτόν τον οδηγό θα σας δείξω πως μπορείτε εύκολα να το φτιάξετε σε ενα breadboard!

 Δείτε το παρακάτω βίντεο για να καταλάβετε πως λειτουργεί.



Εδώ μπορείτε να βρείτε περισσότερα για τα 7 segment displays. 

Ας ξεκινήσουμε!

Τα υλικά που θα χρειαστείτε:

  • Arduino uno 
  • breadboard 
  • 2 digits 7 segment displays* 
  • 3x button sw 
  • μερικά καλώδια breadboard ​

(*μπορείτε να χρησιμοποιήσετε κοινής ανόδου ή κοινής καθόδου 7 segment disp)

Το κύκλωμα:


Οι συνδέσεις είναι αρκετά απλές, ακολουθήστε το παραπάνω σχηματικό. Αν θέλετε μπορείτε να χρησιμοποιήσετε και μια αντίσταση 220 Ω σε κάθε ακροδέκτη (εκτός απ' το CC ή CA)

Μερικές σημειώσεις σχετικά με την συνδεσμολογία:

  • Τα segments A-G: A, B, C, D, E, F, G -->10,9,8,7,6,11,12 
  • CC ή CA pins αυτών στα Arduino pins 4 & 5 
  • Start/stop button στο pin 2 
  • Change button στο pin 3 
  • Set button στο pin13 


~UPDATE~

  • Το dot pin του δεξιού display στο A0 
  • Το dot pin του αριστερού display στο A1 

Ο κώδικας:

Εδώ θα βρείτε τον κώδικα με την χρήση του Codebender!

  • SevenSeg disp (10,9,8,7,6,11,12); //Ορίζει τα segments A-G: SevenSeg(A, B, C, D, E, F, G);
  • numOfDigits = 2; //Γιατί έχουμε 2 ψηφία 7 seg disp 
  • display.digitPins [numOfDigits] = {4,5}; // Τα CC ή CA pins στο Arduino pin 4 και 5. 
  • disp.setDutyCycle(60); //Θέτουμε την φωτεινότητα των LED στο 60% 

(αν έχετε οθόνες τύπου "κοινής ανόδου" πατήστε edit και σβήστε την γραμμή 24 του κώδικα "disp.setCommonCathode();")



​Αυτό ηταν! Εύκολο, δύσκολο? Πείτε μου πως σας φάνηκε στα σχόλια παρακάτω!

Tip: Μπορείτε να μηδενίσετε τον χρόνο πατώντας το κουμπί reset του Arduino σας.


Συντάκτης: Βασιλάκης Μιχάλης
www.ardumotive.com Το μεγαλύτερο ελληνικό site για το Arduino