Το Arduino UNO R4 Minima αποτελεί ένα μεγάλο άλμα προς τα εμπρός πάνω στην εμπειρία των χομπιστών που ασχολούνται με τα ηλεκτρονικά. Σηματοδοτεί την οριστική μετάβαση από την παλαιότερη 8-bit αρχιτεκτονική AVR (τον ATmega328P που βρίσκεται στο Arduino UNO R3) σε ένα σύγχρονο και πολύ πιο ισχυρό 32-bit οικοσύστημα Arm® Cortex®-M.
Με την ενσωμάτωση του ισχυρού μικροελεγκτή Renesas RA4M1, διατηρώντας παράλληλα το γνώριμο σχήμα της πλακέτας UNO, το UNO R4 Minima προσφέρει τεράστια αύξηση πάνω σε ταχύτητα, μνήμη και δυνατότητες. Εισάγει προηγμένες λειτουργίες, όπως τον δίαυλο Controller Area Network (CAN), τον ενσωματωμένο Τελεστικό Ενισχυτή (OPAMP) και τον μετατροπέα Ψηφιακού σε Αναλογικό υψηλής ανάλυσης (DAC), διατηρώντας ταυτόχρονα συμβατότητα με το μεγάλο σύνολο των shields και βιβλιοθηκών για το Arduino Uno που υπάρχουν μέχρι σήμερα.
Pinout του Arduino UNO R4 Minima
Το UNO R4 Minima διαθέτει συνολικά 32 ακροδέκτες. Το pinout έχει ως εξής:

Ας ρίξουμε μια πιο προσεκτική ματιά στους ακροδέκτες του Arduino Uno R4 minima και στις λειτουργίες τους, ξεκινώντας από τους ψηφιακούς ακροδέκτες.
Ψηφιακοί ακροδέκτες I/O
Το Arduino UNO R4 Minima περιλαμβάνει 14 ψηφιακούς ακροδέκτες εισόδου/εξόδου, με ονομασίες D0 έως D13.
Μπορείτε να καθορίσετε αυτούς τους ακροδέκτες ώστε να λειτουργούν είτε ως Είσοδοι είτε ως Έξοδοι. Όταν ένας ακροδέκτης έχει οριστεί ως είσοδος, μπορεί να διαβάζει ψηφιακά σήματα, όπως αν ένα κουμπί είναι πατημένο ή όχι. Όταν έχει οριστεί ως έξοδος, μπορεί να στέλνει ψηφιακά σήματα για να ελέγχει άλλες συσκευές όπως LED, κινητήρες ή ρελέ.
Για να χρησιμοποιήσετε έναν ψηφιακό ακροδέκτη, πρέπει πρώτα να πείτε στο Arduino πώς πρέπει να συμπεριφέρεται αυτός ο ακροδέκτης, χρησιμοποιώντας τη συνάρτηση pinMode(). Αν θέλετε να ορίσετε έναν ακροδέκτη ως είσοδο, χρησιμοποιείτε τη pinMode(pin, INPUT) και στη συνέχεια μπορείτε να διαβάσετε την κατάστασή του με τη συνάρτηση digitalRead(pin). Αν θέλετε να ορίσετε έναν ακροδέκτη ως έξοδο, χρησιμοποιείτε τη pinMode(pin, OUTPUT). Έπειτα μπορείτε να τον ελέγξετε γράφοντας digitalWrite(pin, HIGH) για να τον θέσετε σε HIGH (5V) ή digitalWrite(pin, LOW) για να τον θέσετε σε LOW (0V).
Όταν χρησιμοποιείτε ψηφιακούς ακροδέκτες I/O, υπάρχουν μερικά σημαντικά ηλεκτρικά όρια που πρέπει να έχετε υπόψη σας. Αυτοί οι ακροδέκτες λειτουργούν σε λογικό επίπεδο 5V. Κάθε ψηφιακός ακροδέκτης μπορεί να διαχειριστεί με ασφάλεια έως 8 mA ρεύματος και όλοι οι ψηφιακοί ακροδέκτες μαζί δεν πρέπει να ξεπερνούν συνολικά τα 60 mA.
Αυτή είναι μια σημαντική διαφορά σε σύγκριση με τον μικροελεγκτή ATmega328P που χρησιμοποιείται στο Arduino UNO R3, όπου κάθε ακροδέκτης μπορούσε συνήθως να διαχειριστεί μεταξύ 20 και 40 mA. Αν μεταβαίνετε από το Arduino UNO R3, πρέπει να προσέξετε να μην οδηγείτε απευθείας φορτία υψηλού ρεύματος (όπως οπτοζεύκτες χαμηλής αντίστασης ή πολλαπλά LED) χωρίς να χρησιμοποιείτε κατάλληλες αντιστάσεις περιορισμού ρεύματος ή τρανζίστορ οδήγησης. Αν ξεπεράσετε το όριο των 8 mA, μπορεί να προκαλέσετε μόνιμη βλάβη στους εσωτερικούς οδηγούς εξόδου του μικροελεγκτή.
Εσωτερικές αντιστάσεις pull-up
Κάθε ψηφιακός ακροδέκτης στο Arduino UNO R4 Minima περιλαμβάνει μια ενσωματωμένη αντίσταση pull-up. Αυτή η δυνατότητα είναι ιδιαίτερα χρήσιμη όταν ένας ακροδέκτης χρησιμοποιείται ως είσοδος, ενώ δεν είναι τίποτα συνδεδεμένο σε αυτόν. Χωρίς αντίσταση pull-up, ένας ασύνδετος ακροδέκτης εισόδου μπορεί να «αιωρείται», πράγμα που σημαίνει ότι μπορεί να αλλάζει τυχαία μεταξύ HIGH και LOW λόγω ηλεκτρικού θορύβου από το περιβάλλον. Αυτό μπορεί να προκαλέσει απρόβλεπτα και μπερδεμένα αποτελέσματα.
Η εσωτερική αντίσταση pull-up βοηθά στην επίλυση αυτού του προβλήματος, ανεβάζοντας την τάση του ακροδέκτη σε HIGH όταν δεν υπάρχει άλλο σήμα. Έτσι η ανάγνωση της εισόδου παραμένει σταθερή και αξιόπιστη. Όταν συνδέετε ένα κουμπί ή διακόπτη, το πάτημά του μπορεί να τραβήξει τον ακροδέκτη στο LOW, επιτρέποντας στο Arduino να ανιχνεύσει καθαρά την αλλαγή.
Για να ενεργοποιήσετε την εσωτερική αντίσταση pull-up, χρησιμοποιείτε την εντολή pinMode(pin, INPUT_PULLUP) αντί την pinMode(pin, INPUT). Σημειώστε ότι η τιμή αυτής της εσωτερικής αντίστασης pull-up δεν είναι σταθερή, αλλά συνήθως είναι περίπου 20 kΩ.
Ακροδέκτες διακοπών (Interrupt Pins)
Οι ακροδέκτες διακοπών είναι ειδικοί ψηφιακοί ακροδέκτες εισόδου που μπορούν να εκτελέσουν ένα συγκεκριμένο τμήμα κώδικα (ρουτίνα εξυπηρέτησης διακοπής ή ISR) όταν συμβεί ένα εξωτερικό γεγονός, όπως μια αλλαγή επιπέδου τάσης (από HIGH σε LOW ή αντίστροφα). Αυτό επιτρέπει στο Arduino να ανταποκρίνεται άμεσα σε γεγονότα χωρίς να ελέγχει συνεχώς την κατάσταση του ακροδέκτη στον κύριο βρόχο του κώδικα.
Το Arduino UNO R4 Minima έχει δύο κύριους εξωτερικούς ακροδέκτες διακοπών, στους ακροδέκτες 2 και 3:
Το Arduino UNO R4 Minima υποστηρίζει τέσσερις λειτουργίες ενεργοποίησης που καθορίζουν πότε θα εκτελείται η ISR, όπως φαίνεται στον παρακάτω πίνακα:
| Λειτουργία | Συνθήκη ενεργοποίησης | Τυπικές χρήσεις |
| RISING | Ο ακροδέκτης μεταβαίνει από LOW σε HIGH | Ανίχνευση πατήματος κουμπιού (pull-down) |
| FALLING | Ο ακροδέκτης μεταβαίνει από HIGH σε LOW | Ανίχνευση πατήματος κουμπιού (pull-up) |
| CHANGE | Ο ακροδέκτης αλλάζει κατάσταση (προς οποιαδήποτε κατεύθυνση) | Ανάγνωση encoder, μέτρηση παλμών |
| LOW | Ο ακροδέκτης παραμένει σε επίπεδο LOW | Γεγονότα ενεργοποιούμενα από στάθμη |
Για να ενεργοποιήσετε μια διακοπή, το Arduino χρησιμοποιεί μια συνάρτηση που ονομάζεται attachInterrupt(interrupt, ISR, mode). Σε αυτή τη συνάρτηση, η τιμή interrupt λέει στο Arduino ποια διακοπή να χρησιμοποιήσει, όπου η interrupt 0 αντιστοιχεί στον ψηφιακό ακροδέκτη D2 και η interrupt 1 αντιστοιχεί στον ψηφιακό ακροδέκτη D3. Η ISR είναι το όνομα της συνάρτησης που θα εκτελεστεί όταν συμβεί η διακοπή. Η mode ορίζει πώς ενεργοποιείται η διακοπή, όπως RISING, FALLING, CHANGE ή LOW.
Είναι επίσης σημαντικό να κατανοήσετε ότι το Arduino UNO R4 Minima χρησιμοποιεί έναν σύγχρονο μικροελεγκτή βασισμένο σε Cortex-M4, ο οποίος περιλαμβάνει ένα σύστημα που ονομάζεται Nested Vector Interrupt Controller, ή NVIC. Αυτό το σύστημα είναι πολύ πιο εξελιγμένο και υποστηρίζει διακοπές σχεδόν σε κάθε ψηφιακό και αναλογικό ακροδέκτη. Ωστόσο, για να παραμείνει απλό και οικείο για τους χρήστες, το λογισμικό του Arduino εστιάζει κυρίως στους ακροδέκτες D2 και D3 για εξωτερικές διακοπές, ακολουθώντας τη συμπεριφορά των κλασικών πλακετών UNO.
Ακροδέκτες PWM
Οι ακροδέκτες PWM (Pulse-Width Modulation) στο Arduino UNO R4 Minima είναι ψηφιακοί ακροδέκτες που μπορούν να προσομοιώσουν αναλογική έξοδο. Το επιτυγχάνουν αυτό αλλάζοντας τον ακροδέκτη μεταξύ HIGH και LOW εξαιρετικά γρήγορα, τόσο γρήγορα ώστε να φαίνεται σαν μια σταθερή τάση κάπου ενδιάμεσα. Η βασική ιδέα πίσω από το PWM είναι ο κύκλος λειτουργίας (duty cycle), δηλαδή το ποσοστό του χρόνου που το σήμα παραμένει HIGH κατά τη διάρκεια ενός πλήρους κύκλου. Μεταβάλλοντας τον κύκλο λειτουργίας, μπορείτε να ελέγξετε τη μέση τάση που παραδίδεται σε ένα συνδεδεμένο εξάρτημα, π.χ. επιτρέποντάς σας να χαμηλώνετε ή να αυξάνετε τη φωτεινότητα LED, να ελέγχετε την ταχύτητα κινητήρων και ακόμη και να παράγετε απλούς ηχητικούς τόνους.
Το Arduino UNO R4 Minima παρέχει 6 ακροδέκτες με δυνατότητα PWM: D3, D5, D6, D9, D10 και D11. Μπορείτε εύκολα να τους εντοπίσετε στην πλακέτα από το σύμβολο περισπωμένης (~) που είναι τυπωμένο δίπλα στον αριθμό του ακροδέκτη.
Για να δημιουργήσετε ένα σήμα PWM, πρέπει πρώτα να ορίσετε τον επιθυμητό ακροδέκτη PWM ως έξοδο χρησιμοποιώντας τη συνάρτηση pinMode(pin, OUTPUT) μέσα στο τμήμα setup() του sketch σας. Μετά από αυτό, χρησιμοποιείτε τη συνάρτηση analogWrite(pin, value) για να ορίσετε την έξοδο PWM. Σε αυτή τη συνάρτηση, το pin είναι ο αριθμός του ακροδέκτη με δυνατότητα PWM και το value ελέγχει τον κύκλο λειτουργίας.
Από προεπιλογή, η ανάλυση PWM στο Arduino UNO R4 Minima είναι 8 bit. Αυτό σημαίνει ότι οι τιμές PWM κυμαίνονται από 0 έως 255. Έτσι διασφαλίζεται ότι ο κώδικας που έχει γραφτεί για παλαιότερες πλακέτες Arduino λειτουργεί τέλεια χωρίς τροποποιήσεις.
Ωστόσο, το Arduino UNO R4 Minima είναι πιο ισχυρό και σας επιτρέπει να αυξήσετε την ανάλυση PWM. Χρησιμοποιώντας τη συνάρτηση analogWriteResolution(), μπορείτε να αυξήσετε την ανάλυση έως και 12 bit, επιτρέποντας τιμές από 0 έως 4096, προσφέροντας λεπτομερέστερο έλεγχο της εξόδου.
analogWriteResolution(12); // Ορίζει την ανάλυση PWM στα 12 bit
analogWriteResolution(8); // Ορίζει την ανάλυση PWM στα 8 bit (προεπιλογή)
Ακροδέκτες ADC
Οι ακροδέκτες αναλογικής εισόδου στο Arduino UNO R4 Minima χρησιμοποιούνται για την ανάγνωση συνεχών αναλογικών σημάτων. Αυτά τα σήματα προέρχονται συνήθως από αισθητήρες που μετρούν φυσικά μεγέθη όπως θερμοκρασία, ένταση φωτός, ήχο ή πίεση. Σε αντίθεση με τα ψηφιακά σήματα, που είναι μόνο HIGH ή LOW, τα αναλογικά σήματα μπορούν να έχουν πολλά διαφορετικά επίπεδα τάσης. Για να κατανοήσει αυτά τα σήματα, το Arduino χρησιμοποιεί έναν ενσωματωμένο μετατροπέα Αναλογικού σε Ψηφιακό, ή ADC, ο οποίος μετατρέπει την αναλογική τάση σε έναν ψηφιακό αριθμό που μπορεί να χρησιμοποιήσει το πρόγραμμά σας.
Το Arduino UNO R4 Minima διαθέτει έξι ακροδέκτες αναλογικής εισόδου, με ονομασίες A0 έως A5.
Για να διαβάσετε μια αναλογική τιμή από έναν ακροδέκτη, χρησιμοποιείτε τη συνάρτηση analogRead(pin). Αυτή η συνάρτηση επιστρέφει μια ακέραια τιμή που αντιπροσωπεύει την τάση στον επιλεγμένο ακροδέκτη.
Από προεπιλογή, ο ADC στο Arduino UNO R4 Minima χρησιμοποιεί ανάλυση 10 bit για λόγους συμβατότητας προς τα πίσω. Με ανάλυση 10 bit, η επιστρεφόμενη τιμή κυμαίνεται από 0 έως 1023. Αυτό σημαίνει ότι μια τάση εισόδου μεταξύ 0 και 5 V διαιρείται σε 1024 ίσα βήματα. Σε αυτή τη ρύθμιση, το Arduino μπορεί να ανιχνεύσει μεταβολές τάσης τόσο μικρές όσο 4.9 mV.
Ωστόσο, το R4 Minima είναι πολύ πιο ισχυρό από τους προκατόχους του. Μπορείτε να αυξήσετε την ανάλυση έως και 12 bit ή ακόμη και 14 bit, επιτρέποντας στο Arduino να ανιχνεύει πολύ μικρότερες μεταβολές τάσης. Σε ανάλυση 14 bit, το μέγεθος βήματος τάσης είναι περίπου 0.3 mV όταν χρησιμοποιείται εύρος 5 V. Για να αλλάξετε την ανάλυση ADC, χρησιμοποιείτε τη συνάρτηση analogReadResolution() μέσα στο τμήμα setup() του sketch σας.
analogReadResolution(10); //(προεπιλογή)
analogReadResolution(12);
analogReadResolution(14);
Αξίζει επίσης να θυμάστε ότι αν σας τελειώσουν οι τυπικοί ψηφιακοί ακροδέκτες, οι ακροδέκτες A0 έως A5 μπορούν επίσης να λειτουργήσουν ως κανονικοί ψηφιακοί ακροδέκτες I/O.
Αλλαγή τάσης αναφοράς αναλογικού σήματος
Από προεπιλογή, το UNO R4 Minima μετρά τις αναλογικές τάσεις χρησιμοποιώντας ένα εύρος αναφοράς 0 έως 5V (την τροφοδοσία 5V της πλακέτας). Αυτή η τάση αναφοράς καθορίζει τη μέγιστη τάση που μπορεί να μετρήσει ο ADC. Σε ορισμένες περιπτώσεις, όπως όταν χρησιμοποιείτε έναν αισθητήρα που λειτουργεί σε χαμηλότερη τάση (π.χ. 3.3V), μπορεί να θέλετε να μετράτε χαμηλότερες τάσεις με μεγαλύτερη ακρίβεια.
Για να το κάνετε αυτό, μπορείτε να αλλάξετε την τάση αναφοράς αναλογικού σήματος χρησιμοποιώντας τον ακροδέκτη AREF και τη συνάρτηση analogReference(type).
analogReference(AR_DEFAULT); // Χρησιμοποιεί την προεπιλεγμένη
//αναλογική αναφορά των 5V.
analogReference(AR_INTERNAL); // Χρησιμοποιεί εσωτερική τάση αναφοράς 1.5V.
analogReference(AR_EXTERNAL); // Χρησιμοποιεί εξωτερική τάση αναφοράς
//που εφαρμόζεται στον ακροδέκτη AREF.
Ακροδέκτης DAC
Το Arduino UNO R4 Minima περιλαμβάνει έναν ενσωματωμένο μετατροπέα Ψηφιακού σε Αναλογικό (DAC). Ένας DAC κάνει το αντίθετο από έναν ADC: αντί να διαβάζει μια αναλογική τάση και να τη μετατρέπει σε αριθμό, παίρνει μια ψηφιακή τιμή και τη μετατρέπει σε μια ομαλή αναλογική τάση. Πρόκειται για μια τεράστια αναβάθμιση για το UNO R4 Minima, που το καθιστά ιδανικό για έργα ήχου όπως η παραγωγή ομαλών ημιτονοειδών κυμάτων, ο έλεγχος Voltage Controlled Oscillators (VCOs) σε συνθεσάιζερ ή η παροχή μεταβλητής τάσης αναφοράς.
Στο UNO R4 Minima, ο DAC είναι διαθέσιμος στον αναλογικό ακροδέκτη A0.
Για να χρησιμοποιήσετε τον DAC, χρησιμοποιείτε στην πραγματικότητα την ίδια ακριβώς συνάρτηση analogWrite(pin, value) που χρησιμοποιείτε και για τη δημιουργία σημάτων PWM.
Από προεπιλογή, ο ακροδέκτης DAC λειτουργεί με ανάλυση 8 bit, πράγμα που σημαίνει ότι δέχεται τιμές μεταξύ 0 και 255. Για παράδειγμα, αν γράψετε την τιμή 0, η έξοδος θα είναι κοντά στα 0 V, ενώ αν γράψετε 255, η έξοδος θα είναι κοντά στα 5 V. Μια τιμή γύρω στο 127, δηλαδή περίπου στη μέση του εύρους, θα δώσει περίπου 2.5 V στον ακροδέκτη A0.
Για ορισμένες εφαρμογές, ειδικά σε έργα ήχου, μια ανάλυση 8 bit μπορεί να μην προσφέρει αρκετά ομαλή έξοδο. Σε αυτές τις περιπτώσεις, το Arduino UNO R4 Minima σας επιτρέπει να αυξήσετε την ανάλυση DAC έως και 12 bit. Όταν χρησιμοποιείτε ανάλυση 12 bit, οι τιμές που γράφετε στον ακροδέκτη θα κυμαίνονται από 0 έως 4095, προσφέροντάς σας εξαιρετικά λεπτομερή έλεγχο της τάσης εξόδου. Η ανάλυση 12 bit ορίζεται με την εντολή: analogWriteResolution(12);
Απλώς να έχετε υπόψη ότι αν χρησιμοποιείτε το A0 ως έξοδο DAC, δεν μπορείτε ταυτόχρονα να το χρησιμοποιείτε ως αναλογική είσοδο για ανάγνωση αισθητήρων.
Ακροδέκτες OP-Amp
Μία από τις πιο ισχυρές νέες δυνατότητες του R4 Minima είναι η ενσωμάτωση ενός Τελεστικού Ενισχυτή (op-amp). Η ύπαρξη ενσωματωμένου op-amp σας γλιτώνει από την ανάγκη για εξωτερικά ολοκληρωμένα κυκλώματα σε εργασίες όπως buffering σημάτων, ενίσχυση αδύναμων δεδομένων αισθητήρων, φιλτράρισμα θορύβου ή εκτέλεση πολλών άλλων αναλογικών λειτουργιών.
Παρόλο που ο μικροελεγκτής που χρησιμοποιείται στο Arduino UNO R4 Minima είναι ο Renesas RA4M1, στην πραγματικότητα διαθέτει τέσσερις εσωτερικούς op-amp, ενώ η πλακέτα εκθέτει έναν από αυτούς για χρήση στην αναλογική κεφαλίδα. Συγκεκριμένα, χρησιμοποιεί το A1 ως θετική (μη αναστρέφουσα) είσοδο, το A2 ως αρνητική (αναστρέφουσα) είσοδο και το A3 ως έξοδο.
Για να αρχίσετε να χρησιμοποιείτε τον op-amp στο Arduino UNO R4 Minima, πρέπει να συμπεριλάβετε τη βιβλιοθήκη OPAMP.h στο sketch σας και στη συνέχεια να την αρχικοποιήσετε χρησιμοποιώντας τη συνάρτηση OPAMP.begin(speed). Η προαιρετική παράμετρος speed σας επιτρέπει να επιλέξετε ανάμεσα σε διαφορετικές λειτουργίες. Μπορείτε να επιλέξετε OPAMP_SPEED_LOWSPEED για χαμηλότερη κατανάλωση ενέργειας ή OPAMP_SPEED_HIGHSPEED για ταχύτερη απόδοση με υψηλότερη κατανάλωση.
#include <OPAMP.h>
void setup () {
OPAMP.begin(OPAMP_SPEED_HIGHSPEED);
}
void loop() {
}
Περιπτώσεις χρήσης: Ένας απλός τρόπος χρήσης του op-amp είναι ως Voltage Follower, γνωστός και ως Buffer, συνδέοντας φυσικά το A2 (την αρνητική είσοδο) απευθείας με το A3 (την έξοδο). Σε αυτή τη διάταξη, όποια τάση εφαρμόζετε στο A1 (τη θετική είσοδο) θα αντικατοπτρίζεται στην έξοδο A3, αλλά με μεγαλύτερη ικανότητα οδήγησης ρεύματος.
Μπορείτε επίσης να τον χρησιμοποιήσετε για να δημιουργήσετε έναν Ενισχυτή Τάσης ώστε να ενισχύσετε ένα πολύ μικρό σήμα. Για να το κάνετε αυτό, συνδέετε μια αντίσταση 10k μεταξύ του A2 και της γείωσης, και μια δεύτερη αντίσταση 10k μεταξύ του A3 και του A2. Με αυτή τη διάταξη, οποιοδήποτε σήμα τροφοδοτείται στο A1 θα εμφανίζεται στο A3 με διπλάσιο πλάτος. Ωστόσο, πρέπει να είστε προσεκτικοί όταν ενισχύετε σήματα. Η τάση εξόδου δεν πρέπει να ξεπερνά περίπου τα 4.7V. Αν προσπαθήσετε να την ωθήσετε πιο ψηλά, το σήμα θα αποκοπεί (clip), και σε ακραίες περιπτώσεις μπορεί να προκαλέσετε ζημιά στην πλακέτα.
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τον op-amp ως Συγκριτή (Comparator) για να συγκρίνετε δύο τάσεις εισόδου και να δώσετε στην έξοδο ένα αποτέλεσμα τύπου ψηφιακού HIGH ή LOW, ή ακόμη και να τον χρησιμοποιήσετε σε πιο προχωρημένα κυκλώματα όπως ολοκλήρωσης και παραγώγισης σημάτων.
Φυσικά, αυτά τα παραδείγματα είναι μόνο η αρχή όσων μπορείτε να κάνετε με τον ενσωματωμένο op-amp.
Ακροδέκτες I2C
Το Arduino UNO R4 Minima υποστηρίζει I2C, που σημαίνει Inter-Integrated Circuit. Το I2C είναι μια κοινή μέθοδος σειριακής επικοινωνίας που επιτρέπει στο Arduino να επικοινωνεί με πολλούς αισθητήρες και συσκευές χρησιμοποιώντας μόνο δύο καλώδια, που ονομάζονται SDA και SCL. Στο Arduino UNO R4 Minima, το SDA είναι συνδεδεμένο στον αναλογικό ακροδέκτη A4 και το SCL στον αναλογικό ακροδέκτη A5. Τα SDA και SCL είναι επίσης διαθέσιμα σε ειδικούς ακροδέκτες κοντά στον ακροδέκτη AREF.
Σημείωση: Η επικοινωνία I2C χρησιμοποιεί τα λεγόμενα σήματα open-drain. Αυτό σημαίνει ότι οι συσκευές I2C μπορούν μόνο να τραβούν τη γραμμή σήματος προς LOW· ποτέ δεν την οδηγούν ενεργά σε HIGH. Αντί γι’ αυτό, οι γραμμές πρέπει να τραβιούνται σε HIGH χρησιμοποιώντας αντιστάσεις pull-up. Στο Arduino UNO R4 Minima, αυτές οι αντιστάσεις pull-up δεν είναι εγκατεστημένες στην πλακέτα από προεπιλογή, αν και υπάρχουν διαθέσιμα solder pads αν θέλετε να τις προσθέσετε μόνοι σας.
Υπάρχουν ορισμένα σημαντικά πλεονεκτήματα στο ότι οι αντιστάσεις pull-up δεν είναι εγκατεστημένες από το εργοστάσιο. Πρώτον, επειδή οι ακροδέκτες I2C μοιράζονται τις γραμμές με τους A4 και A5, αυτοί οι ακροδέκτες μπορούν επίσης να χρησιμοποιηθούν ως κανονικοί ψηφιακοί ακροδέκτες εισόδου/εξόδου ή ως ακροδέκτες αναλογικής εισόδου. Αν οι αντιστάσεις pull-up ήταν μόνιμα εγκατεστημένες, αυτοί οι ακροδέκτες θα είχαν πάντα την τάση να διαβάζονται ως HIGH, πράγμα που θα περιόριζε τη λειτουργικότητά τους μόνο στο I2C. Δεύτερον, επιλέγοντας μόνοι σας τις τιμές των αντιστάσεων pull-up, μπορείτε να αποφασίσετε αν ο δίαυλος I2C θα λειτουργεί στα 3.3 V ή στα 5 V. Αυτό διευκολύνει την ασφαλή σύνδεση διαφορετικών τύπων συσκευών I2C που μπορεί να απαιτούν διαφορετικά επίπεδα τάσης.
Για να χρησιμοποιήσετε την επικοινωνία I2C στο sketch σας, πρέπει πρώτα να συμπεριλάβετε τη βιβλιοθήκη Wire στην αρχή του κώδικά σας. Μέσα στη συνάρτηση setup(), αρχικοποιείτε στη συνέχεια το σύστημα I2C. Μόλις το I2C αρχικοποιηθεί, μπορείτε να στείλετε δεδομένα σε μια συνδεδεμένη συσκευή I2C. Κάθε συσκευή I2C έχει τη δική της διεύθυνση, την οποία το Arduino χρησιμοποιεί για να γνωρίζει με ποια συσκευή επικοινωνεί. Το ακόλουθο παράδειγμα δείχνει πώς να στείλετε δεδομένα σε μια συσκευή με διεύθυνση 1 και πώς να κλείσετε σωστά τη σύνδεση στη συνέχεια:
#include <Wire.h>
void setup() {
Wire.begin();
Wire.beginTransmission(1); // έναρξη μετάδοσης προς τη συσκευή 1
Wire.write(byte(0x00)); // αποστολή byte εντολής
Wire.write(val); // αποστολή μιας τιμής
Wire.endTransmission(); // τερματισμός μετάδοσης
}
void loop() {
}
Ακροδέκτες SPI
Το Arduino UNO R4 Minima υποστηρίζει επίσης SPI, που σημαίνει Serial Peripheral Interface. Το SPI είναι ένας ακόμη τύπος σειριακής επικοινωνίας και γενικά είναι ταχύτερο από το I2C. Το SPI χρησιμοποιεί ξεχωριστούς ακροδέκτες για την αποστολή δεδομένων, τη λήψη δεδομένων και τον συγχρονισμό της επικοινωνίας μέσω ενός σήματος ρολογιού.
Σημείωση: Το Arduino UNO R4 Minima χρησιμοποιεί τη σύγχρονη ονοματολογία Controller/Peripheral για τους ακροδέκτες SPI αντί για την παλαιότερη ορολογία Master/Slave, παρόλο που η λειτουργία παραμένει ακριβώς η ίδια.
Στο UNO R4 Minima, ο ακροδέκτης 11 φέρει την ονομασία COPI (Controller Out, Peripheral In), παλαιότερα γνωστός ως MOSI. Αυτός ο ακροδέκτης χρησιμοποιείται από το Arduino για να στέλνει δεδομένα σε άλλη συσκευή. Ο ακροδέκτης 12 φέρει την ονομασία CIPO (Controller In, Peripheral Out), παλαιότερα γνωστός ως MISO, και χρησιμοποιείται από την περιφερειακή συσκευή για να στέλνει δεδομένα πίσω στο Arduino. Ο ακροδέκτης 13 είναι ο SCK (Serial Clock), ο οποίος διατηρεί συγχρονισμένη τη μεταφορά δεδομένων. Ο ακροδέκτης 10 χρησιμοποιείται συνήθως ως CS (Chip Select). Αυτός ο ακροδέκτης λέει στο Arduino με ποια συσκευή SPI θέλει να επικοινωνήσει, κάτι ιδιαίτερα σημαντικό όταν είναι συνδεδεμένες ταυτόχρονα πολλές συσκευές SPI.
Εκτός από αυτούς τους τυπικούς ακροδέκτες SPI, το Arduino UNO R4 Minima περιλαμβάνει επίσης μια κεφαλίδα ICSP (In-Circuit Serial Programming). Αυτή η κεφαλίδα παρέχει πρόσβαση στα ίδια σήματα SPI. Μπορείτε να χρησιμοποιήσετε είτε τους τυπικούς ψηφιακούς ακροδέκτες είτε την κεφαλίδα ICSP για επικοινωνία SPI.
Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε το SPI:
const int CS = 10;
void setup() {
pinMode(CS, OUTPUT); // Ορίζει τον ακροδέκτη CS ως έξοδο
SPI.begin(); // Αρχικοποιεί το SPI bus
digitalWrite(CS, LOW); // Τραβά το CS σε LOW
//για να ξεκινήσει η επικοινωνία με τη συσκευή
SPI.transfer(0x00); // Στέλνει ένα byte (0x00) μέσω SPI
digitalWrite(CS, HIGH); // Τραβά το CS σε HIGH
//για να τερματιστεί η επικοινωνία
}
void loop() {
}
Σε αυτό το παράδειγμα, το Arduino ορίζει τον ακροδέκτη Chip Select ως έξοδο, ξεκινά το σύστημα SPI, επιλέγει τη συνδεδεμένη συσκευή τραβώντας το CS σε LOW, στέλνει ένα μόνο byte δεδομένων και έπειτα τερματίζει την επικοινωνία τραβώντας το CS σε HIGH.
Ακροδέκτες UART
Το Arduino UNO R4 Minima διαθέτει μια σημαντική αναβάθμιση σε σχέση με τον προκάτοχο του: έχει δύο ξεχωριστές διεπαφές hardware UART.
Η μία θύρα είναι διαθέσιμη μέσω USB-C Και η άλλη είναι διαθέσιμη μέσω των ακροδεκτών RX/TX
Στο παλαιότερο UNO R3, η θύρα USB και οι ψηφιακοί ακροδέκτες 0/1 ήταν συνδεδεμένοι στην ίδια σειριακή διεπαφή. Αυτό σήμαινε ότι δεν μπορούσατε να χρησιμοποιείτε ταυτόχρονα το Serial Monitor στον υπολογιστή σας και ένα εξωτερικό module (όπως GPS ή δέκτη Bluetooth) χωρίς να αλληλεπιδρούν μεταξύ τους.
Το R4 Minima λύνει αυτό το πρόβλημα διαχωρίζοντάς τα. Η θύρα USB-C συνδέεται με μία σειριακή διεπαφή (την οποία προσπελαύνετε στον κώδικα ως Serial), ενώ οι ακροδέκτες 0 (RX) και 1 (TX) συνδέονται με μια δεύτερη, εντελώς ανεξάρτητη διεπαφή (την οποία προσπελαύνετε ως Serial1). Αυτό σας επιτρέπει να κάνετε αποσφαλμάτωση του κώδικά σας στον υπολογιστή σας ενώ ταυτόχρονα επικοινωνείτε με μια εξωτερική συσκευή.
Αν χρειαστείτε ακόμη περισσότερες σειριακές θύρες, μπορείτε να χρησιμοποιήσετε τη βιβλιοθήκη SoftwareSerial για να δημιουργήσετε εικονικές σειριακές θύρες σε άλλους ψηφιακούς ακροδέκτες. Ωστόσο, να έχετε υπόψη ότι αυτές οι software-based θύρες είναι πιο αργές και καταναλώνουν περισσότερους πόρους CPU από τις αποκλειστικές hardware θύρες.
Για να χρησιμοποιήσετε το UART που είναι συνδεδεμένο στους ακροδέκτες RX και TX, πρέπει πρώτα να ορίσετε το baud rate στη συνάρτηση setup(). Όταν εργάζεστε με αυτούς τους ακροδέκτες στο Arduino UNO R4 Minima, χρησιμοποιείτε το αντικείμενο Serial1 αντί για το Serial. Συγκεκριμένα γράφουμε την εντολή: Serial1.begin(9600);
Για να διαβάσετε εισερχόμενα δεδομένα, μπορείτε να ελέγξετε αν υπάρχουν διαθέσιμα δεδομένα και στη συνέχεια να τα διαβάσετε έναν χαρακτήρα κάθε φορά. Ένας απλός βρόχος μπορεί να μοιάζει ως εξής:
while (Serial1.available()) {
delay(2);
char c = Serial1.read();
incoming += c;
}
Για να στείλετε δεδομένα μέσω της σύνδεσης UART, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή: Serial1.write(“Hello world!”);
Ακροδέκτες CAN
Το Arduino UNO R4 Minima υποστηρίζει επίσης επικοινωνία CAN (Controller Area Network). Πρόκειται για ένα αξιόπιστο και ανθεκτικό στον θόρυβο πρωτόκολλο επικοινωνίας. Το CAN αναπτύχθηκε αρχικά από τη Bosch για χρήση σε αυτοκίνητα, αλλά σήμερα χρησιμοποιείται ευρέως σε πολλά βιομηχανικά και αυτοματοποιημένα συστήματα. Ένα από τα βασικά πλεονεκτήματα του CAN είναι ότι οι συσκευές μπορούν να επικοινωνούν απευθείας μεταξύ τους πάνω σε ένα κοινό δίκτυο χωρίς να απαιτείται κεντρικός υπολογιστής.
Το Arduino UNO R4 Minima περιλαμβάνει έναν ενσωματωμένο ελεγκτή CAN που υποστηρίζει τόσο τα πρότυπα CAN 2.0A όσο και CAN 2.0B. Τα σήματα CAN είναι διαθέσιμα στον ψηφιακό ακροδέκτη D4 για CAN TX (μετάδοση) και στον ψηφιακό ακροδέκτη D5 για CAN RX (λήψη).
Είναι πολύ σημαντικό να κατανοήσετε ότι το Arduino UNO R4 Minima περιλαμβάνει μόνο τον ελεγκτή CAN, όχι τον πομποδέκτη CAN (CAN transceiver). Ο ελεγκτής διαχειρίζεται τη λογική των δεδομένων, αλλά δεν παράγει τα πραγματικά ηλεκτρικά σήματα που χρησιμοποιούνται σε ένα CAN bus. Για να συνδέσετε το Arduino με άλλες συσκευές CAN, πρέπει να χρησιμοποιήσετε ένα εξωτερικό module πομποδέκτη CAN (όπως MCP2551 ή TJA1050). Αυτοί οι πομποδέκτες μετατρέπουν τα λογικά σήματα 5V του Arduino στα διαφορικά σήματα CAN-H και CAN-L που απαιτεί το δίκτυο CAN.
Για να επικοινωνήσετε με συσκευές CAN, πρέπει πρώτα να συμπεριλάβετε τη βιβλιοθήκη Arduino_CAN στην αρχή του sketch σας. Συγκεκριμένα την #include <Arduino_CAN.h>
Στη συνέχεια, προκαλούμε αρχικοποίηση στο σύστημα CAN επιλέγοντας έναν ρυθμό μετάδοσης bit (bit rate). Αυτό γίνεται με τη συνάρτηση CAN.begin(CanBitRate rate). Ο ρυθμός bit πρέπει να ταιριάζει με την ταχύτητα που χρησιμοποιούν οι άλλες συσκευές στο CAN bus. Συνήθεις επιλογές είναι 125 kbps, 250 kbps, 500 kbps και 1 Mbps.
CAN.begin(CanBitRate::BR_125k); // ορίζει το bit rate στα 125 kbps
CAN.begin(CanBitRate::BR_250k); // ορίζει το bit rate στα 250 kbps
CAN.begin(CanBitRate::BR_500k); // ορίζει το bit rate στα 500 kbps
CAN.begin(CanBitRate::BR_1000k); // ορίζει το bit rate στο 1 Mbps
Για να στείλετε ένα μήνυμα CAN, δημιουργείτε πρώτα ένα αντικείμενο μηνύματος CAN. Αυτό το μήνυμα περιλαμβάνει ένα αναγνωριστικό (CAN ID), το μέγεθος των δεδομένων και τα ίδια τα δεδομένα. Μόλις το μήνυμα ετοιμαστεί, το στέλνετε χρησιμοποιώντας τη συνάρτηση CAN.write().
Για να λάβετε ένα μήνυμα CAN, ελέγχετε πρώτα αν υπάρχει διαθέσιμο μήνυμα χρησιμοποιώντας CAN.available(). Αν υπάρχει, μπορείτε στη συνέχεια να το διαβάσετε και να το επεξεργαστείτε στο πρόγραμμά σας.
if (CAN.available()) {
CanMsg const msg = CAN.read();
Serial.println(msg);
}
Κεφαλίδα ICSP
Αν έχετε χρησιμοποιήσει στο παρελθόν Arduino UNO R3, θα αναγνωρίσετε αμέσως την 6-pin κεφαλίδα ICSP (In-Circuit Serial Programming). Ωστόσο, η λειτουργία της έχει αλλάξει εντελώς στο R4 Minima.
Στο Arduino UNO R3, η κεφαλίδα ICSP χρησιμοποιούνταν συνήθως για δύο κύριους σκοπούς: για το flash του bootloader μέσω εξωτερικού προγραμματιστή (όπως AVR ISP ή άλλο Arduino που λειτουργεί ως ISP) και για επικοινωνία με συσκευές SPI.
Στο Arduino UNO R4 Minima, η κεφαλίδα ICSP δεν χρησιμοποιείται πλέον για flash του bootloader. Αυτό συμβαίνει επειδή το Arduino UNO R4 Minima χρησιμοποιεί έναν εντελώς διαφορετικό μικροελεγκτή, τον Renesas RA4M1, ο οποίος δεν υποστηρίζει προγραμματισμό μέσω SPI. Σύμφωνα με το Hardware User’s Manual του Renesas RA4M1, και συγκεκριμένα στην ενότητα που περιγράφει τα Operating Modes, αυτός ο μικροελεγκτής υποστηρίζει δύο βασικές μεθόδους για τον προγραμματισμό της flash μνήμης του. Η μία μέθοδος είναι το SCI Boot Mode, το οποίο χρησιμοποιεί διεπαφή UART, και η άλλη είναι το USB Boot Mode, το οποίο χρησιμοποιεί την ενσωματωμένη διεπαφή USB. Εξαιτίας αυτού, η παραδοσιακή μέθοδος ISP μέσω SPI δεν υποστηρίζεται.
Επομένως, η κεφαλίδα ICSP στο Arduino UNO R4 Minima διατηρείται κυρίως για συμβατότητα με shields και hardware βασισμένα σε SPI, που αναμένουν τα σήματα SPI να είναι διαθέσιμα σε αυτόν τον σύνδεσμο. Για εργασίες όπως προγραμματισμός χαμηλού επιπέδου και ανάκτηση, η πλακέτα παρέχει αντ’ αυτού ειδική κεφαλίδα SWD/JTAG.
Κεφαλίδα SWD / JTAG
Η 10-pin κεφαλίδα SWD / JTAG είναι το σύγχρονο ισοδύναμο της κεφαλίδας ICSP για chip βασισμένα σε ARM. Αυτήν χρησιμοποιείτε για προγραμματισμό ή ανάκτηση μιας πλακέτας ή ακόμη επαγγελματικού επιπέδου αποσφαλμάτωση.
Συνδέοντας έναν εξωτερικό hardware debugger, όπως Segger J-Link, ST-Link V3 ή μια συσκευή συμβατή με DAPLink, μπορείτε να:
Εκτελείτε βήμα-βήμα αποσφαλμάτωση: σε αντίθεση με την παραδοσιακή μέθοδο του να γεμίζετε τον κώδικά σας με Serial.print() για να μαντέψετε τι κάνει, αυτή η θύρα σας επιτρέπει να παγώσετε τον κώδικά σας ενώ εκτελείται. Μπορείτε να επιθεωρείτε την τιμή κάθε μεταβλητής σε πραγματικό χρόνο, να παρακολουθείτε πώς αλλάζει η μνήμη και να ορίζετε breakpoints ώστε ο κώδικας να σταματά ακριβώς εκεί που υποψιάζεστε ότι κρύβεται ένα σφάλμα.
Ανακτήσετε την πλακέτα: αν κατά λάθος καταστρέψετε τον bootloader τόσο σοβαρά ώστε η θύρα USB να σταματήσει να αναγνωρίζει την πλακέτα, αυτή η θύρα παρακάμπτει εντελώς τη συνηθισμένη διεπαφή. Είναι ο μόνος τρόπος να κάνετε force-flash έναν νέο bootloader απευθείας στο hardware του chip και να επαναφέρετε την πλακέτα σε λειτουργική κατάσταση.
Ακροδέκτες τροφοδοσίας
Το Arduino UNO R4 Minima παρέχει αρκετούς ακροδέκτες τροφοδοσίας που χρησιμοποιούνται τόσο για την τροφοδοσία της ίδιας της πλακέτας όσο και για την παροχή ρεύματος σε συνδεδεμένους αισθητήρες, modules και άλλα εξωτερικά εξαρτήματα.
Για να κατανοήσετε καλύτερα πώς ρέει η τροφοδοσία μέσα στην πλακέτα, ακολουθεί ένα απλοποιημένο block diagram του power tree:
Ο ακροδέκτης VIN σας επιτρέπει να τροφοδοτήσετε το Arduino χρησιμοποιώντας μια εξωτερική πηγή τροφοδοσίας, όπως ένα τροφοδοτικό τοίχου ή ένα battery pack. Αυτό είναι ιδανικό για αυτόνομα έργα που δεν είναι συνδεδεμένα σε υπολογιστή μέσω USB. Το εύρος τάσης εισόδου για το VIN είναι συνήθως από 6V έως 24V. Οποιαδήποτε τάση παρέχεται σε αυτόν τον ακροδέκτη ρυθμίζεται προς τα κάτω σε σταθερά 5V από τον μετατροπέα ISL854102FRZ DC-DC Step-Down (Buck) Converter, ο οποίος στη συνέχεια τροφοδοτεί τον μικροελεγκτή και τα υπόλοιπα μέρη της πλακέτας. Ο ακροδέκτης VIN είναι επίσης συνδεδεμένος με το DC-jack (υποδοχή barrel plug). Αυτό σημαίνει ότι όταν τροφοδοτείτε την πλακέτα μέσω του barrel jack, η ίδια τάση είναι επίσης διαθέσιμη στον ακροδέκτη VIN.
Ο ακροδέκτης 5V παρέχει ρυθμιζόμενη έξοδο 5V (διαβάστε τη σημείωση παρακάτω) την οποία μπορείτε να χρησιμοποιήσετε για να τροφοδοτήσετε εξωτερικούς αισθητήρες, modules και shields που απαιτούν σταθερή τροφοδοσία 5V. Η ποσότητα ρεύματος που είναι διαθέσιμη εδώ εξαρτάται από το πώς τροφοδοτείτε την πλακέτα.
Αν τροφοδοτείτε την πλακέτα μέσω του VIN ή του barrel jack, ο ενσωματωμένος buck converter είναι ενεργός και ο ακροδέκτης 5V μπορεί να παρέχει έως περίπου 1.2 A ρεύματος στην πλακέτα και στα συνδεδεμένα περιφερειακά.
Αν τροφοδοτείτε την πλακέτα μέσω της θύρας USB-C, παρακάμπτετε εντελώς τον buck converter. Σε αυτήν την περίπτωση, το μέγιστο διαθέσιμο ρεύμα εξαρτάται από την πηγή USB, όπως ένας υπολογιστής ή ένα τροφοδοτικό τοίχου, και μπορεί να φτάσει έως περίπου 2 A χωρίς να προκαλέσει ζημιά στην πλακέτα.
Αν το project σας περιλαμβάνει εξαρτήματα που τραβούν μεγάλο ρεύμα, όπως servo motors, είναι προτιμότερο να τροφοδοτείτε αυτά τα εξαρτήματα με ξεχωριστή εξωτερική πηγή τροφοδοσίας αντί να βασίζεστε στον ακροδέκτη 5V του Arduino.
Σημείωση: Είναι επίσης σημαντικό να γνωρίζετε ότι όταν η πλακέτα τροφοδοτείται μέσω USB, η τάση στον ακροδέκτη 5V είναι ελαφρώς χαμηλότερη, συνήθως γύρω στα 4.7 V, λόγω της πτώσης τάσης πάνω σε μια προστατευτική δίοδο Schottky.
Ο ακροδέκτης 3.3V παρέχει ρυθμιζόμενη έξοδο 3.3V, αλλά συνοδεύεται από μια κρίσιμη προειδοποίηση. Σε αντίθεση με το Arduino UNO R3, που διαθέτει αποκλειστικό κύκλωμα τροφοδοσίας 3.3V, τα 3.3V στο R4 Minima παράγονται εσωτερικά από τον ίδιο τον μικροελεγκτή Renesas RA4M1. Επειδή αυτή η τροφοδοσία προέρχεται απευθείας από τον μικροελεγκτή, έχει πολύ περιορισμένη δυνατότητα παροχής ρεύματος, συνήθως μόνο 50mA έως 100mA. Αυτός ο ακροδέκτης προορίζεται αυστηρά για παροχή τάσης αναφοράς ή για τροφοδοσία αισθητήρων εξαιρετικά χαμηλής κατανάλωσης. Δεν πρέπει να προσπαθήσετε να τροφοδοτήσετε συσκευές 3.3V υψηλού ρεύματος, όπως μεγάλες οθόνες OLED/TFT, Wi-Fi modules ή LoRa radios, απευθείας από αυτόν τον ακροδέκτη. Κάτι τέτοιο μπορεί να προκαλέσει πτώσεις τάσης (brownouts) που θα κάνουν την πλακέτα να καταρεύσει ή, ακόμη χειρότερα, να προκαλέσει μόνιμη ζημιά στον μικροελεγκτή. Αν το project σας απαιτεί πάνω από 100mA στα 3.3V, πρέπει να χρησιμοποιήσετε ξεχωριστό εξωτερικό κύκλωμα τάσης αντί να βασίζεστε στον ακροδέκτη 3.3V του Arduino.
Ακροδέκτες ειδικής λειτουργίας
Εκτός από τους τυπικούς ψηφιακούς, αναλογικούς και επικοινωνιακούς ακροδέκτες, το Arduino UNO R4 Minima περιλαμβάνει επίσης αρκετούς ακροδέκτες ειδικής λειτουργίας.
Ο D13 είναι ήδη γνώριμος αν έχετε τρέξει ποτέ το sketch Blink. Ο ακροδέκτης D13 είναι συνδεδεμένος με ένα ενσωματωμένο LED επάνω στην πλακέτα. Όταν ο ακροδέκτης τίθεται σε HIGH, το LED ανάβει· όταν τίθεται σε LOW, σβήνει. Αυτό τον καθιστά εξαιρετικά χρήσιμο εργαλείο για γρήγορο debugging χωρίς να χρειάζεται να συνδέσετε εξωτερικά εξαρτήματα. Απλώς να θυμάστε ότι αν χρησιμοποιήσετε τον D13 ως κανονικό ψηφιακό ακροδέκτη εισόδου ή εξόδου στο project σας, το ενσωματωμένο LED θα συνεχίσει να αναβοσβήνει μαζί με τα σήματά σας, κάτι που μπορεί να σας μπερδέψει αν δεν το περιμένετε.
Το IOREF σημαίνει Input/Output Reference Voltage. Αυτός ο ακροδέκτης λειτουργεί ουσιαστικά σαν «μεταφραστής» για εξωτερικά shields. Παρέχει μια τάση αναφοράς που λέει στα συνδεδεμένα shields ακριβώς σε ποια τάση λειτουργεί το Arduino. Στο UNO R4 Minima, αυτός ο ακροδέκτης δίνει 5V. Τα «έξυπνα» shields διαβάζουν αυτόν τον ακροδέκτη για να προσαρμόζουν αυτόματα τα δικά τους λογικά επίπεδα ή να ενεργοποιούν μετατροπείς τάσης, διασφαλίζοντας ότι δεν θα προκαλέσουν βλάβη στην πλακέτα λόγω ασυμφωνίας τάσης. Ωστόσο, είναι κρίσιμο να σημειωθεί ότι το IOREF είναι σήμα αναφοράς, όχι γραμμή τροφοδοσίας. Μην προσπαθήσετε ποτέ να τροφοδοτήσετε εξωτερικά εξαρτήματα από αυτόν τον ακροδέκτη, γιατί μπορεί να προκαλέσετε μόνιμη ζημιά στην πλακέτα.
Ο ακροδέκτης RESET είναι ουσιαστικά το hardware κουμπί επανεκκίνησης. Είναι Active LOW, πράγμα που σημαίνει ότι ο μικροελεγκτής θα επανεκκινηθεί τη στιγμή που αυτός ο ακροδέκτης συνδεθεί στη Γείωση (GND). Από προεπιλογή, μια εσωτερική αντίσταση pull-up κρατά αυτόν τον ακροδέκτη σε HIGH, ώστε η πλακέτα να λειτουργεί κανονικά. Μπορείτε να συνδέσετε ένα φυσικό κουμπί ανάμεσα σε αυτόν τον ακροδέκτη και τη γείωση για να δημιουργήσετε έναν χειροκίνητο διακόπτη reset για το έργο σας.
Ο ακροδέκτης BOOT ελέγχει τη λειτουργία εκκίνησης του μικροελεγκτή Renesas RA4M1 κατά την εκκίνηση. Υπό κανονικές συνθήκες, όταν ο ακροδέκτης είναι σε HIGH ή παραμένει ασύνδετος, το chip εκκινεί σε “Single-chip mode”, δηλαδή απλώς εκτελεί το sketch σας ή τον τυπικό Arduino bootloader. Ωστόσο, αν τραβήξετε αυτόν τον ακροδέκτη σε LOW κατά την τροφοδοσία της πλακέτας, αναγκάζετε το chip να μπει σε “ROM Bootloader mode”. Αυτή η λειτουργία παρακάμπτει εντελώς το sketch σας και φορτώνει έναν ενσωματωμένο bootloader που έχει γραφτεί στο chip από το εργοστάσιο. Αυτός είναι ο μόνος τρόπος να ανακτήσετε μια «κρεμασμένη» πλακέτα. Για παράδειγμα, αν ανεβάσατε ένα sketch που ρίχνει αμέσως τη θύρα USB και σας εμποδίζει να ανεβάσετε οτιδήποτε νέο. Μπαίνοντας σε αυτή τη λειτουργία, μπορείτε να ξαναγράψετε το firmware εξωτερικά και να επαναφέρετε την πλακέτα στη ζωή.