Page 31

Προηγμένη Είσοδος/Εξοδος

Οι λειτουργίες αυτές θεωρούνται προηγμένες δεδομένου ότι δεν είναι από τις πιο συνηθισμένες στη χρήση σε σχέση με τις προαναφερόμενες. Ομως είναι από αυτές που μπορούν να μας γλιτώσουν από την παραγωγή εκτεταμένου κώδικα ώστε να τις αντικαταστήσουμε με άλλους τρόπους. Οι βασικότερες που μπορούμε να χρησιμοποιήσουμε είναι η tone() και η noTone() που έχουν να κάνουν με τον ήχο που μπορούμε να παράξουμε σε κάποια ακίδα. Αλλες λειτουργίες, που όμως ξεφεύγουν από τα πλαίσια της εργασίας μας είναι η shiftOut() και η shiftIn() που στέλνουν ακολουθίες δυαδικών τιμών με σειριακό τρόπο σε εξωτερικές συσκευές (οι οποίες συνήθως διαθέτουν ενός είδους μνήμη και τις ανασυνθέτουν) και η pulseIn() για την εισαγωγή αντίστοιχων δυαδικών ακολουθιών που προέρχονται από εξωτερικές συσκευές ή αισθητήρες.

tone()

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

Μόνο ένας τόνος μπορεί να παραχθεί σε μια στιγμή. Εάν ένας τόνος ήδη παίζει σε ένα διαφορετικό pin, η κλήση της tone() δε θα έχει καμία επίδραση. Εάν ένας τόνος παίζει στο ίδιο pin, η κλήση της tone() θα ρυθμίσει τη νέα συχνότητα του τόνου.

Η χρήση της λειτουργίας tone() χρησιμοποιεί την ευροπαλμική διαμόρφωση - PWM στις ακίδες 3 και 11 (για τις πλακέτες Arduino, εκτός από το Mega).

Δεν είναι δυνατόν να δημιουργηθούν τόνοι με συχνότητα χαμηλότερη από 31Hz. Σημείωση

Αν θέλετε να παίξετε διαφορετικούς τόνους σε πολλές ακίδες, θα πρέπει να καλέσετε την λειτουργία noTone() σε ένα pin πριν από την κλήση tone() για την επόμενη ακίδα. Η σύνταξη της εντολής είναι:

tone(pin, frequency)

tone(pin, frequency, duration)

όπου, pin είναι η ακίδα στην οποία θα παραχθεί ο ήχος, frequency είναι η συχνότητα του τόνου σε hertz (τύπος μεταβλητής unsigned int) και duration είναι η διάρκεια του ήχου σε χιλιοστά του δευτερολέπτου (προαιρετική τιμή - unsigned long) Η tone δεν επιστρέφει τίποτα.

37

Σημειώσεις arduino kales  
Σημειώσεις arduino kales  
Advertisement