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

Μίξερ χρωμάτων με Arduino: 9 βήματα (με εικόνες)
Μίξερ χρωμάτων με Arduino: 9 βήματα (με εικόνες)

Βίντεο: Μίξερ χρωμάτων με Arduino: 9 βήματα (με εικόνες)

Βίντεο: Μίξερ χρωμάτων με Arduino: 9 βήματα (με εικόνες)
Βίντεο: Color Mixer 2 - Μίκτης χρωμάτων - Ολοκλήρωση 2024, Ιούλιος
Anonim
Image
Image

Από tliguori330Ακολουθήστε περισσότερα από τον συγγραφέα:

Χρωματική σφαίρα με Arduino
Χρωματική σφαίρα με Arduino
Doodle Bot με διαδικασία σχεδιασμού
Doodle Bot με διαδικασία σχεδιασμού
Doodle Bot με διαδικασία σχεδιασμού
Doodle Bot με διαδικασία σχεδιασμού
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Σχετικά με: Μαθαίνω πάντα….. Περισσότερα για το tliguori330 »

Ένας μίξερ χρωμάτων είναι ένα εξαιρετικό έργο για όποιον εργάζεται και αναπτύσσεται με το Arduino. Μέχρι το τέλος αυτού του οδηγού θα μπορείτε να αναμίξετε και να ταιριάξετε σχεδόν με κάθε χρώμα που μπορείτε να φανταστείτε, γυρίζοντας 3 κουμπιά. Το επίπεδο δεξιοτήτων είναι αρκετά χαμηλό ώστε ακόμη και ένας πλήρης πρωτάρης να το ολοκληρώσει με επιτυχία, αλλά και αρκετά ενδιαφέρον για να είναι ευχάριστο για έναν έμπειρο κτηνίατρο. Το κόστος αυτού του έργου είναι σχεδόν τίποτα και τα περισσότερα κιτ Arduino συνοδεύονται από τα απαραίτητα υλικά. Στον πυρήνα αυτού του κώδικα βρίσκονται κάποιες βασικές λειτουργίες arduino που όποιος χρησιμοποιεί arduino θα θέλει να καταλάβει. Θα προχωρήσουμε σε βάθος σχετικά με τις συναρτήσεις analogRead () και analogWrite () όπως μια άλλη συνήθης συνάρτηση που ονομάζεται χάρτης (). Αυτοί οι σύνδεσμοι σας μεταφέρουν στις σελίδες αναφοράς arduino για αυτές τις λειτουργίες.

Βήμα 1: Ανταλλακτικά και εξαρτήματα

Ανταλλακτικά και Componets
Ανταλλακτικά και Componets
Ανταλλακτικά και Componets
Ανταλλακτικά και Componets
Ανταλλακτικά και Componets
Ανταλλακτικά και Componets
Ανταλλακτικά και Componets
Ανταλλακτικά και Componets

Arduino Uno

Ποτενσιόμετρο (x3)

RGB LED

Αντίσταση 220 ohm (x3)

Καλώδια βραχυκυκλωτήρων (x12)

Σανίδα ψωμιού

Βήμα 2: Σχεδιάστε την πρόοδό σας

Σχεδιάστε την πρόοδό σας
Σχεδιάστε την πρόοδό σας

Μπορεί να είναι πολύ χρήσιμο να προγραμματίσετε πώς θα ολοκληρώσετε το έργο σας. Η κωδικοποίηση αφορά τη λογική εξέλιξη από το ένα βήμα στο άλλο. Έφτιαξα ένα διάγραμμα ροής που περιγράφει πώς θέλω να τρέξει το σκίτσο μου. Ο γενικός στόχος είναι να έχετε 3 κουμπιά (ποτενσιόμετρα) που ελέγχουν καθένα από τα τρία χρώματα ενός LED RGB. Για να το πετύχουμε αυτό θα χρειαστεί να δημιουργήσουμε ένα σκίτσο που ταιριάζει με το διάγραμμα ροής. Θα θέλουμε….

1) Διαβάστε 3 διαφορετικά ποτενσιόμετρα και αποθηκεύστε τις τιμές τους σε μεταβλητές.

2) Θα μετατρέψουμε αυτές τις τιμές ώστε να ταιριάζουν με το εύρος του LED RGB.

3) Τελικά θα γράψουμε αυτές τις μετατρεπόμενες τιμές σε καθένα από τα χρώματα του RGB.

Βήμα 3: Πώς να χρησιμοποιήσετε Ποτενσιόμετρα

Πώς να χρησιμοποιήσετε Ποτενσιόμετρα
Πώς να χρησιμοποιήσετε Ποτενσιόμετρα
Πώς να χρησιμοποιήσετε Ποτενσιόμετρα
Πώς να χρησιμοποιήσετε Ποτενσιόμετρα

Ένα από τα πιο βασικά εξαρτήματα σε κιτ ηλεκτρονικής, το ποτενσιόμετρο μπορεί να χρησιμοποιηθεί σε πολλά διαφορετικά έργα. Τα ποτενσιόμετρα λειτουργούν επιτρέποντας στο χρήστη να αλλάξει φυσικά την αντίσταση του κυκλώματος. Το πιο εξωφρενικό παράδειγμα ποτενσιόμετρου είναι ένα φωτεινό φως. σύροντας ή γυρίζοντας ένα κουμπί αλλάζει το μήκος του κυκλώματος. μια μεγαλύτερη διαδρομή έχει ως αποτέλεσμα μεγαλύτερη αντίσταση. Η αυξημένη αντίσταση μειώνει αντιστρόφως το ρεύμα και το φως μειώνεται. Αυτά μπορούν να έρθουν σε όλα διαφορετικά σχήματα και μεγέθη, αλλά τα περισσότερα έχουν την ίδια βασική ρύθμιση. Ένας μαθητής ζήτησε βοήθεια για να φτιάξει την κιθάρα του και διαπιστώσαμε ότι τα πόμολα ήταν ακριβώς τα ίδια με τα ποτενσιόμετρα. Σε γενικές γραμμές ήσασταν τα εξωτερικά πόδια συνδεδεμένα με 5 βολτ και γείωση και το μεσαίο πόδι πηγαίνει σε έναν αναλογικό πείρο όπως το Α0

Βήμα 4: Σχήμα καλωδίωσης για (3x) Ποτενσιόμετρο

Σχηματική καλωδίωση για (3x) Ποτενσιόμετρο
Σχηματική καλωδίωση για (3x) Ποτενσιόμετρο
Σχηματική καλωδίωση για (3x) Ποτενσιόμετρο
Σχηματική καλωδίωση για (3x) Ποτενσιόμετρο
Σχηματική καλωδίωση για (3x) Ποτενσιόμετρο
Σχηματική καλωδίωση για (3x) Ποτενσιόμετρο

Το πιο αριστερό πόδι θα συνδεθεί με 5v και το πιο δεξί πόδι θα συνδεθεί με το GND. Μπορείτε πραγματικά να αντιστρέψετε αυτά τα δύο βήματα και δεν θα βλάψει πολύ το έργο. Το μόνο που θα άλλαζε είναι να γυρίζετε το κουμπί μέχρι τέρμα προς τα αριστερά και θα έχει πλήρη φωτεινότητα αντί για όλη την απόσταση. Το μεσαίο πόδι θα συνδεθεί με μία από τις αναλογικές ακίδες του Arduino. Δεδομένου ότι θα έχουμε τρία κουμπιά, θα θέλουμε να τριπλασιάσουμε τη δουλειά που μόλις κάναμε. Κάθε κουμπί χρειάζεται 5v και GND έτσι ώστε να μπορούν να μοιραστούν χρησιμοποιώντας μια σανίδα ψωμιού. Η κόκκινη λωρίδα στη σανίδα ψωμιού συνδέεται με 5 Volt και η μπλε λωρίδα συνδέεται με τη γείωση. Κάθε πόμολο χρειάζεται τον δικό του αναλογικό πείρο έτσι ώστε να συνδέονται με Α0, Α1, Α2.

Βήμα 5: Χρήση του AnalogRead () και των μεταβλητών

Με το σωστά ρυθμισμένο ποτενσιόμετρο είμαστε έτοιμοι να διαβάσουμε αυτές τις τιμές. Όταν θέλουμε να το κάνουμε αυτό, χρησιμοποιούμε τη λειτουργία analogRead (). Η σωστή σύνταξη είναι analogRead (pin#). για να διαβάσουμε το μεσαίο μας ποτενσιόμετρο θα κάνουμε analogRead (A1). Για να δουλέψουμε με τους αριθμούς που αποστέλλονται από το κουμπί στο Arduino, θα θέλουμε επίσης να αποθηκεύσουμε αυτούς τους αριθμούς σε μια μεταβλητή. Η γραμμή κώδικα θα ολοκληρώσει αυτήν την εργασία καθώς διαβάζουμε το ποτενσιόμετρο και αποθηκεύουμε τον τρέχοντα αριθμό του στην ακέραια μεταβλητή "val"

int val = analogRead (A0);

Βήμα 6: Χρήση της σειριακής οθόνης με 1 κουμπί

Image
Image

Προς το παρόν, μπορούμε να πάρουμε τιμές από τα κουμπιά και να τις αποθηκεύσουμε σε μια μεταβλητή, αλλά θα ήταν χρήσιμο αν μπορούσαμε να δούμε αυτές τις τιμές. Για να γίνει αυτό πρέπει να χρησιμοποιήσουμε την ενσωματωμένη σειριακή οθόνη. Ο παρακάτω κώδικας είναι το πρώτο σκίτσο που θα τρέξουμε πραγματικά στο Arduino IDE, το οποίο μπορείτε να κατεβάσετε στον ιστότοπό τους. Στο void setup () θα ενεργοποιήσουμε τις αναλογικές ακίδες που είναι συνδεδεμένες σε κάθε μεσαίο πόδι ως INPUT και θα ενεργοποιήσουμε την Serial monitor χρησιμοποιώντας το Serial.begin (9600). στη συνέχεια διαβάζουμε μόνο ένα από τα κουμπιά και το αποθηκεύουμε σε μια μεταβλητή όπως πριν. Η αλλαγή τώρα είναι ότι προσθέσαμε μια γραμμή που εκτυπώνει τον αριθμό που είναι αποθηκευμένος στη μεταβλητή. Εάν μεταγλωττίσετε και εκτελέσετε το σκίτσο, μπορείτε στη συνέχεια να ανοίξετε τη Σειριακή οθόνη σας και να δείτε τους αριθμούς να κυλούν στην οθόνη. Κάθε φορά που βγαίνει ο κώδικας διαβάζουμε και εκτυπώνουμε έναν άλλο αριθμό. Εάν γυρίσετε το κουμπί συνδεδεμένο στο A0, θα δείτε τιμές που κυμαίνονται από 0-1023. αργότερα, ο στόχος θα είναι να διαβάσετε και τα 3 ποτεντόμετρα που θα απαιτούσαν 2 ακόμη αναλογικές αναγνώσεις και 2 διαφορετικές μεταβλητές για αποθήκευση και εκτύπωση.

void setup () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Serial.begin (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }

Βήμα 7: Χρήση του LED RGB

Χρησιμοποιώντας το LED RGB
Χρησιμοποιώντας το LED RGB
Χρησιμοποιώντας το LED RGB
Χρησιμοποιώντας το LED RGB
Χρησιμοποιώντας το LED RGB
Χρησιμοποιώντας το LED RGB

Το 4 Legged RGB LED είναι ένα από τα αγαπημένα μου εξαρτήματα για το Arduino. Θεωρώ συναρπαστικό τον τρόπο που μπορεί να δημιουργήσει ατελείωτα χρώματα από μείγματα 3 βασικών χρωμάτων. Η ρύθμιση είναι παρόμοια με κάθε κανονική LED, αλλά εδώ έχουμε βασικά ένα κόκκινο, μπλε και πράσινο LED που συνδυάζονται μαζί. Τα κοντά πόδια θα ελέγχονται το καθένα από μία από τις ακίδες PWM στο arduino. Το μακρύτερο πόδι θα συνδεθεί με 5 βολτ ή γείωση, ανάλογα με το εάν το δικό σας είναι σε μια κοινή άνοδο ή μια κοινή λυχνία LED καθόδου. Θα χρειαστεί να δοκιμάσετε και τους δύο τρόπους για να λύσετε αυτό το πρόβλημα. Θα έχουμε ήδη 5v και το GND συνδεδεμένο με το breadboard θα πρέπει να αλλάζει εύκολα. Το παραπάνω διάγραμμα δείχνει επίσης 3 αντιστάσεις. Πραγματικά, παραλείπω αυτό το βήμα συχνά καθώς δεν είχα και το LED μου έσκασε.

Για να δημιουργήσουμε χρώματα, θα χρησιμοποιήσουμε τη λειτουργία analogWrite () για να ελέγξουμε πόσο κόκκινο, μπλε ή πράσινο θα προσθέσουμε. Για να χρησιμοποιήσετε αυτήν τη συνάρτηση, πρέπει να πείτε σε ποια καρφίτσα# θα μιλήσουμε και έναν αριθμό μεταξύ 0-255. 0 είναι εντελώς απενεργοποιημένο και το 255 είναι η υψηλότερη ποσότητα ενός χρώματος. Ας συνδέσουμε το κόκκινο σκέλος με τον πείρο 9, το πράσινο στον πείρο 10 και το μπλε με τον πείρο 11. Αυτό μπορεί να πάρει κάποια δοκιμή και σφάλμα για να καταλάβουμε ποιο πόδι έχει ποιο χρώμα. Αν ήθελα να κάνω μια μοβ απόχρωση θα μπορούσα να κάνω πολύ κόκκινο, χωρίς πράσινο και ίσως μισή δύναμη μπλε. Σας ενθαρρύνω να ασχοληθείτε με αυτούς τους αριθμούς, είναι πραγματικά συναρπαστικό. Μερικά κοινά παραδείγματα βρίσκονται στις παραπάνω εικόνες

void setup () {

pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Βήμα 8: Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)

Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)
Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)
Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)
Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)
Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)
Χρήση ποτενσιόμετρων για έλεγχο LED RGB (με ένα σφάλμα)

Είναι καιρός να αρχίσουμε να συνδυάζουμε τους δύο κωδικούς μας μαζί. Θα πρέπει να έχετε αρκετό χώρο σε μια τυπική σανίδα ψωμιού για να χωράει και τα 3 πόμολα και το LED RGB. Η ιδέα είναι αντί να πληκτρολογούμε τις τιμές για το κόκκινο μπλε και το πράσινο, θα χρησιμοποιούμε τις τιμές που αποθηκεύονται από κάθε ποτενσιόμετρο για να αλλάζουμε συνεχώς τα χρώματα. θα χρειαστούμε 3 μεταβλητές σε αυτή την περίπτωση. το redval, greenval, blueval είναι όλες διαφορετικές μεταβλητές. Λάβετε υπόψη ότι μπορείτε να ονομάσετε αυτές τις μεταβλητές ό, τι θέλετε. αν γυρίσετε το "πράσινο" κουμπί και αλλάξει το κόκκινο ποσό, μπορείτε να αλλάξετε τα ονόματα ώστε να ταιριάζουν σωστά. Τώρα μπορείτε να γυρίσετε κάθε κουμπί και να ελέγξετε τα χρώματα !!

void setup () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

Βήμα 9: BONUS: Χάρτης () Λειτουργία και καθαρότερος κωδικός

Μπορεί να παρατηρήσετε ότι καθώς αρχίζετε να γυρίζετε το κουμπί για ένα χρώμα προς τα πάνω, θα μεγαλώσει και στη συνέχεια θα πέσει ξαφνικά προς τα κάτω. Αυτό το μοτίβο ανάπτυξης και στη συνέχεια γρήγορης απενεργοποίησης επαναλαμβάνεται 4 φορές καθώς γυρίζετε το κουμπί μέχρι το τέλος. Αν θυμάστε, είπαμε ότι τα ποτενσιόμετρα μπορούν να διαβάσουν τιμές μεταξύ 0 και 1023. Η συνάρτηση analogWrite () δέχεται μόνο τιμές μεταξύ 0 και 255. μόλις το ποτενσιόμετρο ξεπεράσει τα 255, ξεκινά βασικά από το 0. Υπάρχει μια ωραία συνάρτηση που βοηθά σφάλμα που ονομάζεται χάρτης (). μπορείτε να μετατρέψετε ένα εύρος αριθμών σε άλλο εύρος αριθμών σε ένα βήμα. θα μετατρέψουμε αριθμούς από 0-1023 σε αριθμούς από 0-255. Για παράδειγμα, εάν το κουμπί είχε ρυθμιστεί στο μισό της διαδρομής, θα έπρεπε να είναι περίπου 512. αυτός ο αριθμός θα αλλάξει σε 126, που είναι η μισή δύναμη για το LED. Σε αυτό το τελευταίο σκίτσο ονόμασα τις καρφίτσες με ονόματα μεταβλητών για τη διευκόλυνσή μου. Έχετε τώρα ένα ολοκληρωμένο μίξερ χρωμάτων για να πειραματιστείτε !!!

// ονόματα μεταβλητών για καρφίτσες ποτενσιόμετρου

int redPot = A0; int greenPot = A1; int bluePot = A2 // ονόματα μεταβλητών για ακίδες RGB int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (κόκκινο LED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Serial, begin (9600)? } void loop () {// ανάγνωση και αποθήκευση τιμών από ποτενσιόμετρα int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // μετατροπή των τιμών από 0-1023 σε 0-255 για το RGB LED redVal = map (redVal, 0, 1023, 0, 255); greenVal = χάρτης (greenVal, 0, 1023, 0, 255); blueVal = χάρτης (blueVal, 0, 1023, 0, 255); // γράψτε αυτές τις μετατρεπόμενες τιμές σε κάθε χρώμα του RGB LED analogWrite (redLED, redVal). anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // εμφανίζει τις τιμές στη Σειριακή οθόνη Serial.print ("κόκκινο:"); Serial.print (redVal); Serial.print ("πράσινο:"); Serial.print (greenVal); Serial.print ("μπλε:"); Serial.println (blueVal); }

Συνιστάται: