Αστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια Ανενεργά
 

 

Η διαμόρφωση εύρους παλμού ή PWM, όπως είναι γνωστή είναι μια τεχνική για να δώσει αναλογικά αποτελέσματα με ψηφιακά μέσα. Ψηφιακός έλεγχος χρησιμοποιείται για να δημιουργήσει ένα τετραγωνικό κύμα, ένα σήμα μεταγωγής μεταξύ on και off. Αυτό το on-off μοτίβο μπορεί να προσομοιώσει τάσεις μεταξύ πλήρως σε (5 Volt) και (0 Volts) εκτός από την αλλαγή του τμήματος του τη στιγμή που το σήμα περνά σε σχέση με το χρόνο από τη μια κατάσταση στην άλλη. Η διάρκεια του «χρόνου" που ο παλμός βρίσκεται στα 5 βολτ ονομάζεται το πλάτος παλμού. Για να πάρετε ποικίλες τιμές αναλογικές, μπορείτε να αλλάξετε, ή να διαμορφώσετε, την διάρκεια του παλμού. Αν επαναλάβετε αυτό το on-off μοτίβο αρκετά γρήγορα με ένα LED για παράδειγμα, το αποτέλεσμα θα είναι εάν και εφόσον το σήμα εναλλάσεται σε μια σταθερή τάση μεταξύ 0 και 5V να ελέγχει την φωτεινότητα του LED. 

Στο παρακάτω γράφημα, οι πράσινες γραμμές αντιπροσωπεύουν ένα τακτικό χρονικό διάστημα. Αυτή η διάρκεια ή η περίοδος είναι το αντίστροφο της συχνότητας PWM. Με άλλα λόγια, με συχνότητα PWM Arduino σε περίπου 500Hz, οι πράσινες γραμμές θα μετρήσει 2 χιλιοστά του δευτερολέπτου η κάθε μία. θυμηθείτε Τ=1/F. Μια κλήση της ρουτίνας analogWrite() που δέχεται τιμές σε μια κλίμακα από 0 έως 255, έτσι ώστε όταν δώσουμε analogWrite (255) ζητά ένα κύκλο (duty cycle) 100% (πάντα on), και analogWrite (127) είναι ένας κύκλος (duty cycle) 50% (για το μισό χρόνο) για παράδειγμα.

 

 

Fading

Επιδεικνύει τη χρήση μιας αναλογικής εξόδου (Pulse Width Modulation (PWM)) για να εξασθενίσει ένα LED. PWM είναι μια τεχνική για να πάρουμε μια αναλογική συμπεριφορά από μια ψηφιακή έξοδο με εναλλαγές on off πολύ γρήγορα.

(Pulse Width Modulation (PWM))

Circuit

Συνδέουμε ένα LED στην ψηφιακή έξοδο pin 9 διαμέσου μια αντίστασης 220-Ωμ.

Schematic

 

Code

/*
  Σβήσιμο ή εξασθένιση φωτεινότητας led
 
Αυτό το παράδειγμα δείχνει πως σβήνει ένα LED χρησιμοποιώντας την λειτουργία της analogWrite().
 The circuit:
 Created 1 Nov 2008
 By David A. Mellis
 modified 30 Aug 2011
 By Tom Igoe
 http://arduino.cc/en/Tutorial/Fading
*/

int ledPin = 9;    // σύνδεση LED στο ψηφιακό pin 9
void setup()  {
// αρχικοποίηση προγράμματος
  pinmode(ledpin, OUTPUT);
}
void loop()  {
// fade in από min to max in increments of 5 points:
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)
{ // αρχή βρόγχου
// Δίνουμε τιμές στη μεταβλητή fadeValue(από 0 ως 255 ανά 5):
// έτσι ώστε να αλλάζει η χρονική διάρκεια του παλμού στα 5 βολτ με βήματα
// και να προκαλεί αυξανόμενο ρεύμα στην τροφοδότηση του led και αυτό με τη σειρά του
// να προκαλεί αυξανόμενη ένταση στην φωτεινότητά του
  analogWrite(ledPin, fadeValue);        
  delay(30);   // καθυστέρηση 30 milliseconds                           
  } // τέλος βρόγχου επανάληψης
// fade out από max to min in increments of 5 points:
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5)
{ // αρχή βρόγχου
// Δίνουμε τιμές στη μεταβλητή (από 255 ως 0 ανά 5):
// έτσι ώστε να αλλάζει η χρονική διάρκεια του παλμού στα 5 βολτ με βήματα
// και να προκαλεί μειούμενο ρεύμα στην τροφοδότηση του led και αυτό με τη σειρά του
// να προκαλεί μειούμενη ένταση στην φωτεινότητά του
  analogWrite(ledPin, fadeValue);        
// καθυστέρηση 30 milliseconds    
  delay(30);                            
  } τέλος βρόγχου επανάληψης
} // τέλος του void loop

 

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση