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

Στο Arduino μπορεί να υπάρχει μόνο ένα αποθηκευμένο πρόγραμμα κάθε φορά. Η εκτέλεση του προγράμματος ξεκινά, αμέσως μόλις το Arduino δεχθεί τροφοδοσία.  Κάθε πρόγραμμα του Arduino αποτελείται από δύο μέρη. Tο ένα μέρος εκτελείται μόνο μία φορά στην αρχή (συνάρτηση setup() του Sketch που χρησιμοποιείται για αρχικοποιήσεις), ενώ το άλλο μέρος εκτελείται επαναληπτικά, δηλαδή ξαναρχίζει αμέσως μόλις τελειώσει (συνάρτηση loop() του Sketch).

Οι θύρες (pins) του Arduino μπορούν να διαμορφωθούν είτε σαν θύρες εισόδου είτε σαν θύρες εξόδου και να λειτουργήσουν με ψηφιακό ή μερικές από αυτές με αναλογικό τρόπο.

Οι θύρες εισόδου του Arduino χρησιμοποιούνται για τη σύνδεση αισθητήρων. Οι αισθητήρες είναι συσκευές που ανιχνεύουν διάφορα φυσικά μεγέθη και δημιουργούν τα κατάλληλα ηλεκτρικά σήματα τα οποία μπορούν να “διαβαστούν” από το Arduino. Υπάρχει μια πληθώρα αισθητήρων: θερμοκρασίας, υγρασίας, πίεσης, αερίων, κίνησης, απόστασης, κλίσης, μαγνητικού πεδίου, μετάλλων, υπερύθρων, φωτός, χρωμάτων, δύναμης, επιτάχυνσης, επαφής, βιομετρικοί και πολλοί άλλοι.

Στο Arduino υπάρχουν και ψηφιακές και αναλογικές θύρες εισόδου-εξόδου.  Οι ψηφιακές θύρες εισόδου μπορούν να ανιχνεύσουν τάσεις σε δύο επίπεδα: HIGH (+5V) και LOW (0V).  Για το “διάβασμα” μιας ψηφιακής εισόδου από το πρόγραμμα χρησιμοποιείται η συνάρτηση digitalRead(). Οι ψηφιακές θύρες εξόδου μπορούν να δώσουν είτε στάθμη 5V (τιμή HIGH) είτε 0 (τιμή LOW). Η συνάρτηση που χρησιμοποιούμε στο πρόγραμμα, για να στείλουμε ένα ψηφιακό σήμα εξόδου είναι η digitalWrite().

Οι αναλογικές είσοδοι, που συμβολίζονται με A0 έως A5, μπορούν να αναγνωρίσουν και ενδιάμεσες τιμές, καθώς το Arduino έχει ενσωματωμένο έναν αναλογικοψηφιακό μετατροπέα εύρους 10-bit (analog to digital converter) o οποίος αντιστοιχίζει την τάση εισόδου (εύρους 0 έως 5V εξ ορισμού) σε μια ακέραια τιμή από 0 έως 1023, δηλαδή διακρίνει συνολικά 210=1024 διαφορετικές τιμές. Η αντίστοιχη συνάρτηση στο πρόγραμμα είναι η analogRead(). Η analogWrite() στην οποία μπορούμε να δώσουμε τιμές από 0 έως 255. Η τιμή 255 αντιστοιχεί στο HIGH (+5V), η τιμή 0 στο LOW και οι υπόλοιπες τιμές ενδιάμεσα.

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

https://www.arduino.cc/

Εισαγωγή στο Arduino