Arduino: παίξτε με τα χρώματα

Δημιουργήστε 16,7εκ. χρωματικούς συνδυασμούς

Σε αυτό το tutorial θα δημιουργήσουμε μία κατασκευή με arduino η οποία περιλαμβάνει 3 ποτενσιόμετρα και ένα RGB LED.

Θα χρησιμοποιήσουμε τα ποτενσιόμετρα για να δώσουμε 3 αναλογικές εισόδους στο arduino τις οποίες θα χρησιμοποιήσουμε ως εντάσεις σε ένα RGB LED το οποίο συνδέουμε σε 3 εξόδους PWM του arduino.

Η προχωρημένη έκδοση της κατασκευής arduino είναι εδώ και μπορείτε να την υλοποιήσετε, σε αυτό το tutorial θα έχετε την ευκαιρία να μάθετε πως λειτουργούν οι έξοδοι PWM, οι αναλογικές είσοδοι καθώς επίσης και η πολύ σημαντική εντολή map.



Περιγραφή του Project

Τρία ποτενσιόμετρα θα συνδεθούν σε τρεις αναλογικές εισόδους Α0, Α1 και Α2. Περιστρέφοντας τα ποτενσιόμετρα θα στέλνουμε στις PWM (9,10,11) εξόδους που είναι συνδεδεμένα τα RGB του RBG LED και θα μεταβάλλουμε την ένταση του LED. Τα ποτενσιόμετρα λειτουργούν όπως ένας διαιρέτης τάσης όπου στην μία άκρη της περιστροφικής τους κίνησης θα δίνουν 0V στην αναλογική είσοδο και στην άλλη άκρη θα δίνουν 5V.

συνδυάζοντας τιμές θα μπορούμε να έχουμε συνδυασμούς χρωμάτων οι οποίοι θεωρητικά φτάνουν τους 16,7εκ. χρώματα. (255*255*255)

Σκοπός

  • Ολοκληρώνοντας το project θα έχετε μάθει
  • Πως λειτουργούν οι αναλογικές είσοδοι στο arduino
  • Πως λειτουργούν οι PWM έξοδοι στο arduino
  • Πως χρησιμοποιείται η εντολή map, analogRead και analogWrite και
  • Πως χρησιμοποιείται ένα ποτενσιόμετρο (μεταβλητή αντίσταση)

Μερικές χρήσιμες πληροφορίες για το πως λειτουργούν οι εντολές

map(X, minX, maxX, asignminX, asignmaxX)

Η συνάρτηση map δέχεται 5 ορίσματα

X = είναι η μεταβλητή που θέλουμε να ελέγξουμε

minX = είναι η ελάχιστη τιμή της μεταβλητής X

maxX = είναι η μέγιστη τιμή της μεταβλητής Χ

asignminX = η ελάχιστη τιμή που θέλουμε

asignmaxX = η μέγιστη τιμή που θέλουμε

Με ένα παράδειγμα αν σε μία μεταβλητή value έχουμε τιμές από 0-1023 και θέλουμε να τις μετατρέψουμε σε 0-254 τότε η συνάρτηση θα ήταν ως εξής:

newValue = map(value,0,1023,0,254)

analogRead(pin)

Με την analogRead(Α0) μπορούμε να διαβάσουμε την αναλογική είσοδο του arduino. Σημειώστε ότι οι τιμές που μπορεί να πάρει η αναλογική είσοδος είναι από 0-1023 το οποίο μεταφράζεται σε τάση 0-5V. Προσοχή λοιπόν να μην τροφοδοτήσετε με περισσότερα Volt.

Παράδειγμα

Value = analogRead(A0)

analogWrite

Με την analogWrite(pin, value) μπορούμε να στείλουμε μία τιμή από 0-255 σε μία έξοδο PWM.

για παράδειγμα μπορούμε να γράψουμε

analogWrite(9, 128)

Το κύκλωμα

Σχεδιάσαμε το κύκλωμα στο FRITZING το οποίο μπορείτε να δείτε στην παρακάτω εικόνα.

Αν θέλετε να κατεβάσετε το αρχείο μπορείτε να το κάνετε πατώντας εδώ.

Τα υλικά που θα χρειαστούμε είναι

  • Arduino/Genuino Uno (αν έχετε άλλη έκδοση επίσης ταιριάζει)
  • 3x ποτενσιόμετρα των 10KΩ
  • 1x RGB LED κοινής καθόδου (common cathode) για το πως ακριβώς λειτουργεί ένα RGB LED κάντε κλικ εδώ
  • Καλώδια σύνδεσης
  • Breadboard (ράστερ)

Ο κώδικας

Για να υλοποιήσουμε το project, αφού σχεδιάσουμε το κύκλωμα και κάνουμε τις απαραίτητες συνδέσεις, θα πρέπει να προγραμματίσουμε το arduino. Ο κώδικας που υλοποιεί το συγκεκριμένο project είναι παρακάτω:

/* Created by George Chatzigeorgiou
// Please subscribe to my youtube channel GetCert tutorials
// contact me at info@getcert.gr
// https://www.getcert.gr
*/ 

// Variables
int redPin = 9;
int bluePin = 10;
int greenPin = 11;

int aredPin = A0;
int abluePin = A1;
int agreenPin = A2;
int analogInputRed, analogInputGreen, analogInputBlue;

// nothing on setup
void setup() 
{

}

void loop()
{
  // Read values from analog input. -- Voltage divider 0-5V --> 0-1023
  analogInputRed = analogRead(aredPin);
  analogInputGreen = analogRead(agreenPin);
  analogInputBlue = analogRead(abluePin);
  // Turn values into analogWrite values 0-255 and write to PWM output
  analogWrite(redPin, map(analogInputRed, 0,1023,0,255));
  analogWrite(bluePin, map(analogInputBlue, 0,1023,0,255));
  analogWrite(greenPin, map(analogInputGreen, 0,1023,0,255));
}

Πρόκειται για ένα σχετικά εύκολο project το οποίο μπορεί να σας μάθει όμως αρκετές εντολές! χρησιμοποιήστε την map στα project σας, θα την βρείτε εξαιρετικά χρήσιμη. Αναμένω τα σχόλιά σας και την εγγραφή σας στο κανάλι μας στο Youtube.

Οκτώβριος 31, 2018

0 Απαντήσεις στο "Arduino: παίξτε με τα χρώματα"

    Αφήστε ένα μήνυμα

    Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

    Σχεδιασμός © GetCert. Με επιφύλαξη παντός δικαιώματος.

    Αυτό είναι ένα δοκιμαστικό κατάστημα για δοκιμαστικούς σκοπούς — καμία παραγγελία δεν θα ολοκληρωθεί. Απόρριψη