
Η εντολή analogWrite(), στέλνει έναν παλμό PWM σε μία από τις διαθέσιμες εξόδους του arduino. Η χρήση της μπορεί να είναι από το σταδιακό άναμμα ή σβήσιμο ενός LED (fade in / out), μέχρι την οδήγηση ενός ηλεκτρικού μοτέρ με μεταβλητή ταχύτητα.
Περιγραφή
Αφού καλέσουμε την εντολή analogWrite(), το Pin εξόδου θα παράξει έναν σταθερό τετραγωνικό παλμό του οποίου η συχνότητα είναι συνήθως 490Hz που θα έχει διάρκεια μέχρι την επόμενη κλήση των εντολών analogWrite() ή digitalRead() ή digitalWrite().
Σημείωση: Στην πλακέτα UNO, τα pin 5 και 6, έχουν μία συχνότητα περίπου 980Hz.
Οι έξοδοι που μπορούν να δουλέψουν με την εντολή analogWrite() είναι:
- Πλακέτες που έχουν τον μικροελεγκτή ATmega168 ή ATmega328p, έχουν ως αναλογικές εξόδους τα pin 2,5,6,9,10 και 11.
- Στην έκδοση arduino mega τα pin 2-13 και 44-66 (πολλές αναλογικές εξόδους το mega)
- Παλαιότερες εκδόσεις που έχουν τον μικροελεγκτή ATmega8, υποστηρίζουν μόνο τα pin 9,10 και 11.
- Η έκδοση Arduino DUE, έχει αναλογικές εξόδους που βρίσκονται στα pin 2 έως 13. Επιπρόσθετα διαθέτει και pin DAC0 και DAC1 τα οποία σε αντίθεση με τις PWM εξόδους, είναι πραγματικές αναλογικές έξοδοι.
Η εντολή analogWrite(), δεν έχει καμία σχέση με την εντολή analogRead() ούτε με τα αναλογικά pin εισόδου.
Σύνταξη
analogWrite(pin, τιμή)
pin: Το pin της πλακέτας (αρκεί να είναι PWM (να έχει το σήμα ~)
τιμή: μία τιμή ακέραιου τύπου η οποία κυμαίνεται από 0 έως 255. Στην εντολή analogWrite() θεωρούμε ότι η εντολή κρατάει το pin μόνιμα σε κατάσταση HIGH.
Η εντολή δεν επιστρέφει κάτι.
Παράδειγμα κώδικα
Το παράδειγμα του κώδικα θα το βρείτε στα build in παραδείγματα του arduino IDE στην περιοχή file–>examples–>Basic –>analog–>fade.
/* Fading This example shows how to fade an LED using the analogWrite() function. The circuit: - LED attached from digital pin 9 to ground. created 1 Nov 2008 by David A. Mellis modified 30 Aug 2011 by Tom Igoe This example code is in the public domain. http://www.arduino.cc/en/Tutorial/Fading */ int ledPin = 9; // LED connected to digital pin 9 void setup() { // nothing happens in setup } void loop() { // fade in from min to max in increments of 5 points: for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) { // sets the value (range from 0 to 255): analogWrite(ledPin, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } // fade out from max to min in increments of 5 points: for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) { // sets the value (range from 0 to 255): analogWrite(ledPin, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } }Επιστροφή στη λίστα εντολών
2 responses on "arduino εντολή analogWrite()"