Το Arduino Nano μπορεί να μοιάζει μικρό σε μέγεθος, αλλά περιέχει σχεδόν το ίδιο σύνολο λειτουργιών με το μεγαλύτερο Arduino Uno, μέσα σε μια συμπαγή πλακέτα που χωράει άνετα σε ένα breadboard. Αυτό το καθιστά ιδανικό για projects όπου ο διαθέσιμος χώρος είναι περιορισμένος, χωρίς να θυσιάζεται η λειτουργικότητα.
Για να αξιοποιήσεις μέγιστα το Nano, πρέπει πρώτα να γνωρίζεις τι κάνει κάθε ακροδέκτης. Σε αυτόν τον οδηγό θα εξετάσουμε βήμα‑βήμα τους διαφορετικούς τύπους ακροδεκτών του Arduino Nano, ώστε να μπορείς να σχεδιάζεις πιο αποδοτικά και να εκμεταλλεύεσαι πλήρως αυτή τη μικρή πλακέτα.
Επισκόπηση pinout
Το Arduino Nano διαθέτει συνολικά 30 ακροδέκτες. Η διάταξη αυτών των ακροδεκτών (pinout) είναι σχεδιασμένη έτσι ώστε να συγκεντρώνει σε μικρό χώρο ό,τι χρειάζεσαι για τις συνήθης εφαρμογές: ψηφιακές και αναλογικές εισόδους/εξόδους, PWM, I2C, SPI, UART, τροφοδοσία και διακοπές. Ας δούμε τώρα τις λειτουργίες τους αναλυτικά.

Ψηφιακοί ακροδέκτες Ι/Ο
Οι ψηφιακοί ακροδέκτες I/O στο Arduino Nano είναι ευέλικτοι αγώγιμοι δρόμοι που μπορούν να χρησιμοποιηθούν ως είσοδοι και έξοδοι. Σε κατάσταση εισόδου μπορούν να διαβάσουν ψηφιακές τάσεις (HIGH ή LOW), ενώ σε κατάσταση εξόδου μπορούν να στείλουν τέτοιες ψηφιακές τάσεις για να ελέγχουν LEDs, κινητήρες, ρελέ και άλλα συστατικά.
Το Nano προσφέρει 14 ψηφιακούς ακροδέκτες, από D0 έως D13. Λειτουργούν σε λογικό επίπεδο 5V και έχουν περιορισμό ρεύματος περίπου 20 mA ανά ακροδέκτη. Για να ορίσεις έναν ακροδέκτη ως είσοδο χρησιμοποιείς την πρόταση pinMode(pin, INPUT) και στη συνέχεια digitalRead(pin) για να διαβάσεις την τιμή του. Για έξοδο χρησιμοποιείς pinMode(pin, OUTPUT) και digitalWrite(pin, HIGH/LOW) για να θέσεις την πύλη σε επιθυμητή κατάσταση.
Το onboard LED
Στο Arduino Nano υπάρχει ένα ενσωματωμένο LED που συνδέεται με τον ακροδέκτη D13. Ανάβει όταν ο ακροδέκτης D13 τοποθετηθεί σε HIGH και σβήνει όταν τοποθετηθεί σε LOW. Αυτό το LED μπορεί να σου είναι πολύ χρήσιμο για debugging ή ως απλός δείκτης κατάστασης του προγράμματός σου. Αν χρησιμοποιήσεις τον D13 για κάποιους άλλους σκοπούς, να έχεις υπόψη ότι το LED θα ακολουθεί την ίδια συμπεριφορά, γεγονός που ίσως σε μπερδέψει αν δεν το αναμένεις.
Εσωτερικές αντιστάσεις pull‑up
Κάθε ψηφιακός ακροδέκτης διαθέτει εσωτερική αντίσταση pull‑up που μπορεί να ενεργοποιηθεί σε κατάσταση INPUT με pinMode(pinNumber, INPUT_PULLUP). Αυτή η αντίσταση διασφαλίζει ότι, ακόμα και όταν δεν έχεις συνδεδεμένο κάτι στον ακροδέκτη, αυτός παραμένει σε HIGH και δεν «αιωρείται» σε απρόβλεπτο επίπεδο. Η τιμή της περιλαμβανόμενης αντίστασης βρίσκεται συνήθως στην περιοχή 20–50 kΩ, αρκετή για να σταθεροποιήσει την είσοδο χωρίς να καταναλώνει πολύ ρεύμα.
Ακροδέκτες διακοπών (interrupt)
Οι ακροδέκτες διακοπών είναι ειδικοί ακροδέκτες εισόδου που μπορούν να προκαλέσουν την εκτέλεση ενός συγκεκριμένου τμήματος κώδικα (ρουτίνα εξυπηρέτησης διακοπής ή ISR)όταν συμβεί κάποιο εξωτερικό γεγονός, όπως μια αλλαγή στο επίπεδο τάσης (από HIGH σε LOW ή αντίστροφα). Αυτό επιτρέπει στο Arduino να ανταποκρίνεται άμεσα σε γεγονότα χωρίς να ελέγχει συνεχώς την κατάσταση του ακροδέκτη μέσα στο κύριο loop του κώδικα. Στο Nano υπάρχουν δύο ακροδέκτες με hard‑interrupt (π.χ. 2 και 3), που μπορούν να προκαλέσουν διακοπή σε ανερχόμενο, κατερχόμενο ή οποιοδήποτε μεταβαλλόμενο μέτωπο σήματος.
Η συνάρτηση attachInterrupt(interrupt, ISR, mode) χρησιμοποιείται για τη ρύθμιση των ακροδεκτών ως εξωτερικές διακοπές, όπου το interrupt είναι ο αριθμός της διακοπής (0 για τον ακροδέκτη 2, 1 για τον ακροδέκτη 3), το ISR είναι η ρουτίνα εξυπηρέτησης διακοπής (μια συνάρτηση που καλείται όταν συμβαίνει η διακοπή) και το mode ορίζει τη συνθήκη ενεργοποίησης (RISING, FALLING ή CHANGE).
Η διακοπή 0 έχει υψηλότερη προτεραιότητα από τη διακοπή 1, οπότε σε ταυτόχρονα γεγονότα θα εξυπηρετηθεί πρώτη.
Ακροδέκτες PWM
Οι ακροδέκτες PWM στο Nano είναι ψηφιακές έξοδοι που μπορούν να προσομοιώσουν αναλογική συμπεριφορά μέσω γρήγορης εναλλαγής HIGH/LOW (τετραγωνικό κύμα). Το ποσοστό του χρόνου που η πύλη είναι σε HIGH ονομάζεται duty cycle και με την αλλαγή του μπορείς να ελέγξεις π.χ. φωτεινότητα LED ή ταχύτητα κινητήρα.
Το Nano έχει έξι PWM ακροδέκτες (D3, D5, D6, D9, D10, D11), με σήμα 8 bit (τιμές 0–255). Η προεπιλεγμένη συχνότητα είναι περίπου 490 Hz, εκτός από τους D5, D6 που βρίσκονται σε περίπου 980 Hz. Αυτοί οι ακροδέκτες συνδέονται με τους Timers 0, 1 και 2 του ATmega328P, οπότε αν τους αλλάξεις θα επηρεαστούν και λειτουργίες όπως delay() και millis().
Αναλογικοί ακροδέκτες και ADC
Οι αναλογικοί ακροδέκτες εισόδου στο Arduino Nano έχουν σχεδιαστεί για να διαβάζουν συνεχή αναλογικά σήματα. Αυτά τα σήματα προέρχονται συχνά από αισθητήρες που μετρούν φυσικές ποσότητες όπως θερμοκρασία, ένταση φωτός ή πίεση. Το Arduino Nano μετατρέπει αυτά τα αναλογικά σήματα σε ψηφιακές τιμές μέσω ενός Μετατροπέα Αναλογικού σε Ψηφιακό (ADC), επιτρέποντάς σου να επεξεργάζεσαι και να αναλύεις τα δεδομένα μέσα στον κώδικά σου.
Το Arduino Nano έχει 8 αναλογικούς ακροδέκτες εισόδου, με ετικέτες A0 έως A7. Ο ADC στο Arduino Nano έχει ανάλυση 10 bit, που σημαίνει ότι μπορεί να ανιχνεύσει 1024 (2^10) διακριτά αναλογικά επίπεδα. Με άλλα λόγια, μετατρέπει τάσεις εισόδου από 0 έως 5V (τάση λειτουργίας) σε ακέραιες τιμές από 0 έως 1023. Αυτό οδηγεί σε ανάλυση 5 volts / 1024 βήματα, ή περίπου 0,0049 volts (4,9 mV) ανά βήμα.
Αυτό το επίπεδο ακρίβειας είναι γενικά επαρκές για τα περισσότερα έργα μας, αλλά για πιο ακριβείς μετρήσεις θα πρέπει να χρησιμοποιηθεί εξωτερικός ADC με μεγαλύτερη ανάλυση.
Για να διαβάσεις μια αναλογική τιμή από έναν ακροδέκτη, χρησιμοποιείς τη συνάρτηση analogRead(pin). Αυτή η συνάρτηση επιστρέφει μια ακέραιη τιμή μεταξύ 0 και 1023, που αντιπροσωπεύει την μετρούμενη τάση στον ακροδέκτη. Για παράδειγμα, αν ο ακροδέκτης μετρά τάση 2,5V (το μισό της μέγιστης τάσης 5V), η συνάρτηση analogRead() θα επιστρέψει περίπου 512.
Αλλαγή τάσης αναφοράς (Reference Voltage)
Από προεπιλογή, ο ADC μετρά τάσεις από 0V έως 5V, αλλά αυτό το εύρος μπορεί να προσαρμοστεί χρησιμοποιώντας το pin AREF και τη συνάρτηση analogReference(type). Οι δυνατές τιμές για το type είναι:
DEFAULT: Χρησιμοποιεί την προεπιλεγμένη αναλογική αναφορά των 5V.
INTERNAL: Χρησιμοποιεί εσωτερική τάση αναφοράς 1,1V.
EXTERNAL: Χρησιμοποιεί εξωτερική τάση αναφοράς που εφαρμόζεται στο pin AREF.
Κεφαλίδα ICSP
Η κεφαλίδα ICSP στο Nano αποτελείται από έξι ακροδέκτες σε διάταξη 2×3 και χρησιμοποιείται για τον προγραμματισμό του Arduino Nano: Μπορείς να χρησιμοποιήσεις έναν εξωτερικό programmer (όπως έναν AVR ISP programmer ή ένα άλλο Arduino που λειτουργεί ως ISP) για να ανεβάσεις κώδικα στο Arduino Nano απευθείας μέσω της κεφαλίδας ICSP. Αυτό είναι ιδιαίτερα χρήσιμο αν ο bootloader έχει καταστραφεί ή αν θέλεις να εγγράψεις bootloader σε έναν νέο μικροελεγκτή.
Ακροδέκτες I2C στο Arduino Nano
Το Arduino Nano προσφέρει δύο ειδικευμένους ακροδέκτες για την επικοινωνία πρωτοκόλλου I2C:
- A4 (SDA – Serial Data Line)
- A5 (SCL – Serial Clock Line)
Αυτοί οι ακροδέκτες χρησιμεύουν ως διαύλος για την επικοινωνία με I2C συσκευές όπως αισθητήρες, οθόνες ή προχωρημένα περιφερειακά. Η προεπιλεγμένη ταχύτητα του διαύλου είναι 100 kHz. Αν χρειαστείς μεγαλύτερη ταχύτητα, μπορείς να την ανεβάσεις στα 400 kHz (ή ακόμα υψηλότερα σε κάποιες περιπτώσεις) μέσω της συνάρτησης Wire.setClock(), προσέχοντας πάντα τα όρια των συγκεκριμένων συσκευών που συνδέεις.
Πολύ σημαντικό: οι γραμμές SDA και SCL συνήθως χρειάζονται εξωτερικές αντιστάσεις pull‑up (συνήθως γύρω στα 4,7 kΩ), ώστε τα σήματα να παραμένουν σταθερά και η επικοινωνία να είναι αξιόπιστη, κυρίως σε περιπτώσεις πολλαπλών συσκευών ή μεγάλων καλωδίων.
Ακροδέκτες SPI στο Arduino Nano
Το Arduino Nano περιλαμβάνει μια σειρά ακροδεκτών που υποστηρίζουν την επικοινωνία SPI:
- D11 (MOSI – Master Out Slave In): Είναι η πύλη μέσω της οποίας το Arduino (ως master) στέλνει δεδομένα στην συσκευή slave.
- D12 (MISO – Master In Slave Out): Μέσω αυτού του ακροδέκτη η slave συσκευή επιστρέφει δεδομένα στο Arduino.
- D13 (SCK – Serial Clock): Μεταφέρει το σήμα ρολογιού που συγχρονίζει τη μεταφορά των bit μεταξύ master και slave.
- D10 (SS – Slave Select): Χρησιμοποιείται για να επιλέξεις ποια από πολλές slave συσκευές SPI θέλεις να επικοινωνήσεις κάθε φορά.
Επιπλέον, το Arduino Nano φέρει μια κεφαλίδα ICSP, η οποία οδηγεί τα ίδια σήματα SPI (MOSI, MISO, SCK). Μπορείς να χρησιμοποιήσεις είτε τους κλασικούς ακροδέκτες (10–13) είτε την ICSP κεφαλίδα, ανάλογα με τη διαθέσιμη βάση ή την πλακέτα σου.
Ακροδέκτες UART (σειριακή επικοινωνία)
Το Arduino Nano περιλαμβάνει μία υλική διεπαφή UART, που συνδέεται στους ψηφιακούς ακροδέκτες:
- D0 (RX – Receive)
- D1 (TX – Transmit)
Αυτή η διεπαφή χρησιμοποιείται τόσο για το ανέβασμα του κώδικα (upload των sketches) όσο και για σειριακή επικοινωνία με τον υπολογιστή μέσω USB, αφού ο πυρήνας της πλακέτας περιλαμβάνει USB‑to‑serial μετατροπέα που κοινοποιεί το ίδιο UART.
Αν χρειάζεσαι περισσότερα σειριακά κανάλια, υπάρχει η βιβλιοθήκη SoftwareSerial, η οποία επιτρέπει την προσομοίωση επιπλέον UART σε άλλους ψηφιακούς ακροδέκτες. Το έλλειμμα, όμως, είναι ότι το SoftwareSerial είναι πιο αργό και λιγότερο αξιόπιστο από το ενσωματωμένο hardware UART, ειδικά σε υψηλές ταχύτητες.
Ακροδέκτες τροφοδοσίας (Power Pins)
Το Arduino Nano περιλαμβάνει αρκετές γραμμές τροφοδοσίας που σου επιτρέπουν να τροφοδοτείς και την πλακέτα και τα εξωτερικά κυκλώματα:
- VIN: Μέσω αυτού του ακροδέκτη μπορείς να συνδέσεις εξωτερική πηγή τροφοδοσίας (π.χ. τροφοδοτικό ή pack μπαταριών). Η συνήθης περιοχή τάσης είναι 7–12 V. Η πιο υψηλή τάση που συνδέεις ρυθμίζεται από τον ενσωματωμένο σταθεροποιητή στα 5V, που τροφοδοτούν τον μικροελεγκτή και τα περιφερειακά του.
- 5V: Αυτός ο ακροδέκτης παρέχει σταθερή έξοδο 5V από τον ενσωματωμένο σταθεροποιητή. Μπορεί να προσφέρει περίπου 500 mA όταν τροφοδοτείται μέσω USB, ενώ ο σταθεροποιητής μπορεί θεωρητικά να αναλάβει περίπου 800 mA αλλά, λόγω θερμικών ζητημάτων, πρακτικά η συνιστώμενη περιοχή είναι περίπου 400–500 mA. Αν το έργο σου ζητά περισσότερη ισχύ, πρέπει να χρησιμοποιήσεις ξεχωριστή εξωτερική πηγή για τα περιφερειακά.
- 3.3V: Παρέχει σταθεροποιημένη έξοδο 3,3V, προσαρμοσμένη για στοιχεία που λειτουργούν σε χαμηλότερη τάση. Η έξοδος αυτής της πύλης έχει περιορισμένη ικανότητα, περίπου 50 mA, οπότε πρέπει να αποφεύγεις βαριές καταναλώσεις από αυτόν τον ακροδέκτη.
- GND: Αποτελεί την κοινή γείωση του συστήματος. Όλα τα εξωτερικά στοιχεία και αισθητήρες πρέπει να έχουν τη γείωσή τους συνδεδεμένη σε αυτή τη γραμμή, ώστε να δημιουργείται πλήρες και κοινό ηλεκτρικό κύκλωμα.
Ακροδέκτης Reset
Ο ακροδέκτης RESET είναι αφιερωμένος στην επανεκκίνηση του μικροελεγκτή. Όταν αυτός ο ακροδέκτης τραβηχτεί σε LOW (π.χ. συνδεθεί στη γείωση), ο μικροελεγκτής επανεκκινεί, οπότε το πρόγραμμα ξεκινάει από την αρχή. Η πύλη είναι active‑low, οπότε η προεπιλεγμένη κατάσταση είναι HIGH, με τη βοήθεια μιας εσωτερικής αντίστασης pull‑up.
Μπορείς να προκαλέσεις reset προγραμματικά, συνδέοντας τον ακροδέκτη RESET σε έναν ψηφιακό ακροδέκτη εξόδου και εκτελώντας digitalWrite(RESET_PIN, LOW) για λίγα μικροδευτερόλεπτα, ακολουθούμενο από digitalWrite(RESET_PIN, HIGH) για επαναφορά. Εναλλακτικά, μπορείς να συνδέσεις ένα φυσικό διακόπτη ή ένα άλλο κύκλωμα που στέλνει σήμα LOW στον ακροδέκτη αυτό, οπότε η πλακέτα θα κάνει reset όποτε ο διακόπτης κλείσει ή η άλλη συσκευή ενεργοποιηθεί.