Πίνακας περιεχομένων:

RaspberryPi: Σβήστε ένα LED μέσα και έξω: 4 βήματα (με εικόνες)
RaspberryPi: Σβήστε ένα LED μέσα και έξω: 4 βήματα (με εικόνες)

Βίντεο: RaspberryPi: Σβήστε ένα LED μέσα και έξω: 4 βήματα (με εικόνες)

Βίντεο: RaspberryPi: Σβήστε ένα LED μέσα και έξω: 4 βήματα (με εικόνες)
Βίντεο: Η Ιωάννα Τούνη χορεύει και ο Δημήτρης Αλεξάνδρου την χαζεύει 2024, Νοέμβριος
Anonim
RaspberryPi: Σβήστε ένα LED μέσα και έξω
RaspberryPi: Σβήστε ένα LED μέσα και έξω

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

Θα χρειαστείτε:

  • RaspberryPi (χρησιμοποίησα ένα παλαιότερο Pi, το Pi-3 μου χρησιμοποιείται, αλλά οποιοδήποτε Pi θα λειτουργήσει.)
  • Breadboard
  • Κόκκινο LED 5 mm
  • Αντίσταση 330 Ω (Δεν είναι κρίσιμο 220-560 Ω θα λειτουργήσει.)
  • Hookup Wire

Το Pi-cobbler που χρησιμοποίησα από το Adafruit δεν είναι απαραίτητο, αλλά διευκολύνει το breadboarding.

Το WiringPi είναι ένα σύνολο βιβλιοθηκών για τον προγραμματισμό του RaspberryPi σε C. Οι οδηγίες για λήψη, εγκατάσταση και χρήση βρίσκονται στη διεύθυνση

Για να εγκαταστήσετε την καλωδίωσηPi ακολουθήστε τις οδηγίες σε αυτήν τη σελίδα:

Για να λάβετε μια λίστα αριθμών pin καλωδίωσης εισαγάγετε gpio readall στη γραμμή εντολών.

Σε νεότερες εκδόσεις του Raspian wiringPi είναι εγκατεστημένο από προεπιλογή.

Βήμα 1: Διαμόρφωση πλάτους παλμού

Διαμόρφωση πλάτους παλμού
Διαμόρφωση πλάτους παλμού
Διαμόρφωση πλάτους παλμού
Διαμόρφωση πλάτους παλμού
Διαμόρφωση πλάτους παλμού
Διαμόρφωση πλάτους παλμού

Οι λυχνίες LED λειτουργούν πάντα στην ίδια τάση ανεξάρτητα από τη φωτεινότητα. Η φωτεινότητα καθορίζεται από έναν ταλαντωτή τετραγωνικού κύματος και το χρονικό διάστημα που η τάση είναι υψηλή καθορίζει τη φωτεινότητα. Αυτό ονομάζεται Pulse Width Modulation (PWM). Αυτό ελέγχεται από τη λειτουργία wiringPi pwmWrite (pin, n) όπου το n έχει τιμή από 0 έως 255. Εάν n = 2 η λυχνία LED θα είναι δύο φορές πιο φωτεινή από το n = 1. Η φωτεινότητα διπλασιάζεται πάντα όταν το n διπλασιάζεται. Έτσι n = 255 θα είναι δύο φορές πιο φωτεινό από n = 128.

Η τιμή του n εκφράζεται συχνά ως ποσοστό που ονομάζεται κύκλος λειτουργίας. Οι εικόνες δείχνουν ίχνη παλμογράφων για 25, 50 και 75% κύκλους λειτουργίας.

Βήμα 2: LED και αντίσταση

LED και αντίσταση
LED και αντίσταση

Αυτό δεν είναι απαραίτητο, αλλά έχοντας μερικά από αυτά τα εύχρηστα μπορεί να κάνει πολύ πιο εύκολο το breadboarding.

Συγκολλήστε μια αντίσταση στο σύντομο led ενός LED. Χρησιμοποιήστε αντίσταση 220-560 Ohm.

Βήμα 3: Απενεργοποίηση ζυγών

Un-even Dimming
Un-even Dimming

Δημιουργήστε το κύκλωμα όπως στο διάγραμμα. Αυτό είναι ακριβώς όπως το κύκλωμα για να αναβοσβήνει ένα LED. Χρησιμοποιεί το pinPire 1 καλωδίωσης επειδή πρέπει να χρησιμοποιήσετε έναν πείρο με δυνατότητα PWM. Μεταγλωττίστε το πρόγραμμα και τρέξτε το. Θα παρατηρήσετε ότι όσο πιο φωτεινή είναι η λυχνία LED τόσο πιο αργή γίνεται. Καθώς πλησιάζει το πιο σκοτεινό, θα γίνεται πιο αμυδρό πολύ γρήγορα.

/******************************************************************

* Μεταγλώττιση: gcc -o fade1 -Wall Το ********************************************** ****************/ #include int main () {wiringPiSetup (); // Απαιτείται ρύθμιση από το wiringPi pinMode (1, PWM_OUTPUT). // pwmSetMode (PWM_MODE_MS); // Mark/Space mode int i; ενώ (1) {για (i = 255; i> -1; i--) {pwmWrite (1, i); καθυστέρηση (10)? } για (i = 0; i <256; i ++) {pwmWrite (1, i); καθυστέρηση (10)? }}}

Το επόμενο βήμα δείχνει πώς να χαμηλώνετε το LED με σταθερό ρυθμό και σε ένα για δήλωση.

Βήμα 4: Βήμα 4: Πάνω και κάτω στο One For () και σε ζυγό ρυθμό

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

Η γραμμή:

int d = (16-i/16)^2;

υπολογίζει το αντίστροφο τετράγωνο της φωτεινότητας για να καθορίσει το μήκος της καθυστέρησης. Μεταγλωττίστε και εκτελέστε αυτό το πρόγραμμα και θα δείτε ότι το LED θα εξασθενίσει μέσα και έξω με σταθερό ρυθμό.

/******************************************************************

* Μεταγλώττιση: gcc -o fade1 -Wall Ε ********************************************** ****************/ #include int main () {wiringPiSetup (); // Απαιτείται ρύθμιση από το wiringPi pinMode (1, PWM_OUTPUT). // pwmSetMode (PWM_MODE_MS); // Λειτουργία σήμανσης/διαστήματος ενώ (1) {int i; int x = 1; για (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // calc αντίστροφο τετράγωνο δείκτη pwmWrite (1, i); καθυστέρηση (δ)? εάν (i == 255) x = -1; // εναλλαγή κατεύθυνσης στην κορυφή}}}

Συνιστάται: