Κύκλωμα ανιχνευτή χρώματος με κωδικό Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε ένα κύκλωμα που μπορεί να ανιχνεύσει το χρώμα και να ενεργοποιήσει τα αντίστοιχα ρελέ. Αυτό το έργο ολοκληρώνεται χρησιμοποιώντας τον αισθητήρα χρώματος TCS3200 και την πλακέτα Arduino.

Έγχρωμη ανίχνευση από TCS3200

Εάν δεν έχετε διαβάσει το προηγούμενο άρθρο, διαβάστε το όπου συζητήσαμε βασικά στοιχεία της ανίχνευσης χρώματος χρησιμοποιώντας το TCS3200



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

Αυτό το έργο θα δώσει μια εικόνα για το πώς μπορούμε να προγραμματίσουμε τον αισθητήρα χρώματος για να ανιχνεύσουμε διαφορετικά χρώματα και να ενεργοποιήσουμε τα ρελέ.



Θα εξετάσουμε τα κύρια χρώματα: ΚΟΚΚΙΝΟ, ΠΡΑΣΙΝΟ και ΜΠΛΕ για αυτό το έργο. Αυτό το έργο μπορεί να κάνει διάκριση μεταξύ αυτών των τριών χρωμάτων και να ενεργοποιήσει τα ρελέ, κάθε ρελέ για κάθε χρώμα.

Το TCS3200 μπορεί να ανιχνεύσει οποιονδήποτε αριθμό χρωμάτων, αλλά για να διατηρήσει το έργο κατανοητό και για να διατηρήσει τον κώδικα προγράμματος απλό, επικεντρωνόμαστε μόνο στα κύρια χρώματα.

Διάγραμμα κυκλώματος:

διασύνδεση του αισθητήρα χρώματος Arduino και TCS3200

Το παραπάνω σχήμα είναι για διασύνδεση του αισθητήρα χρώματος Arduino και TCS3200.

Συνδέσεις ρελέ:

το ρελέ συνδέει τον αισθητήρα χρώματος Arduino και TCS3200

Τροφοδοτήστε τον προσαρμογέα Arduino με 9V με τουλάχιστον 500mA. Το τρανζίστορ λειτουργεί ως ενισχυτής για ρελέ, καθώς οι ακίδες GPIO του Arduino δεν μπορούν να παρέχουν επαρκές ρεύμα στο ρελέ.

Η δίοδος 1N4007 θα απορροφήσει αιχμές υψηλής τάσης από το πηνίο ρελέ, προστατεύοντας τα υπόλοιπα εξαρτήματα του ημιαγωγού.

Αυτό καταλήγει στο υλικό.

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

Όλοι οι αισθητήρες TCS3200 έχουν κάποια παραλλαγή κατά την κατασκευή, πρέπει να μετρήσετε τις παραμέτρους χρώματος για τον αισθητήρα που διαθέτετε, έτσι ώστε αυτές οι παράμετροι να μπορούν να χρησιμοποιηθούν στον κώδικα για την ακριβέστερη ανίχνευση του χρώματος.

Για να βαθμονομήσετε και να βελτιστοποιήσετε τις μετρήσεις για τον αισθητήρα σας, ακολουθήστε τα βήματα ακριβώς:

Βήμα 1: Ανεβάστε τον ακόλουθο κώδικα με ολοκληρωμένη εγκατάσταση υλικού.

//-----Program Developed by R.GIRISH-----// const int Red_relay = 9 const int Green_relay = 10 const int Blue_relay = 11 const int s0 = 4 const int s1 = 5 const int s2 = 6 const int s3 = 7 const int out = 8 int var = 25 int red = 0 int green = 0 int blue = 0 int state = LOW int state1 = LOW int state2 = HIGH //-----------Enter Values--------// //For RED Colour: int Rx1 = 92 int Gx1 = 240 int Bx1 = 53 //For GREEN Colour: int Rx2 = 228 int Gx2 = 163 int Bx2 = 64 //For BLUE Colour: int Rx3 = 300 int Gx3 = 144 int Bx3 = 45 //----------------------------// void setup() { Serial.begin(9600) pinMode(Red_relay, OUTPUT) pinMode(Green_relay, OUTPUT) pinMode(Blue_relay, OUTPUT) digitalWrite(Red_relay, LOW) digitalWrite(Green_relay, LOW) digitalWrite(Blue_relay, LOW) pinMode(s0, OUTPUT) pinMode(s1, OUTPUT) pinMode(s2, OUTPUT) pinMode(s3, OUTPUT) pinMode(out, INPUT) //----Scaling Frequency 20%-----// digitalWrite(s0, state2) digitalWrite(s1, state1) //-----------------------------// } void loop() { int redH1 = Rx1 + var int redL1 = Rx1 - var int redH2 = Rx2 + var int redL2 = Rx2 - var int redH3 = Rx3 + var int redL3 = Rx3 - var int blueH1 = Bx1 + var int blueL1 = Bx1 - var int blueH2 = Bx2 + var int blueL2 = Bx2 - var int blueH3 = Bx3 + var int blueL3 = Bx3 - var int greenH1 = Gx1 + var int greenL1 = Gx1 - var int greenH2 = Gx2 + var int greenL2 = Gx2 - var int greenH3 = Gx3 + var int greenL3 = Gx3 - var //-----Sensing RED colour-----// digitalWrite(s2, state1) digitalWrite(s3, state1) red = pulseIn(out, state) delay(100) //------Sensing Green colour----// digitalWrite(s2, state2) digitalWrite(s3, state2) green = pulseIn(out, state) delay(100) //------Sensing Blue colour----// digitalWrite(s2, state1) digitalWrite(s3, state2) blue = pulseIn(out, state) delay(400) if(red = redL1) { if(green = greenL1) { if(blue = blueL1) { Serial.println('Detected Colour: RED') Serial.println('') digitalWrite(Red_relay, HIGH) delay(1000) } } } if(red = redL2) { if(green = greenL2) { if(blue = blueL2) { Serial.println('Detected Colour: Green') Serial.println('') digitalWrite(Green_relay, HIGH) delay(1000) } } } if(red = redL3) { if(green = greenL3) { if(blue = blueL3) { Serial.println('Detected Colour: Blue') Serial.println('') digitalWrite(Blue_relay, HIGH) delay(1000) } } } } //------Program Developed by R.GIRISH--------//

Βήμα 2: Ανοίξτε τη σειριακή οθόνη, θα βρείτε τις παραμέτρους χρώματος όπως αυτή:

Φέρτε το έγχρωμο αντικείμενο (προτιμάται το έγχρωμο χαρτί) κόκκινο, μπλε και πράσινο.

Βήμα 3:

• Τοποθετήστε το κόκκινο χαρτί κοντά στον αισθητήρα TCS3200.
• Σημειώστε τις ενδείξεις R, G, B (και τα τρία χρώματα) ενώ τοποθετείτε το κόκκινο χρώμα χαρτιού.
• Σημειώστε επίσης την ένδειξη R, G, B για πράσινα και μπλε χαρτιά.

• ΣΗΜΕΙΩΣΗ: όταν τοποθετείτε οποιοδήποτε από τα 3 χρώματα μπροστά από τη σημείωση TCS3200, σημειώστε όλες τις κόκκινες, μπλε και πράσινες ενδείξεις για κάθε έγχρωμο χαρτί, το οποίο πρέπει να εισαγάγετε στο κύριο πρόγραμμα ανίχνευσης χρωμάτων.

Βήμα 4: Διαβάστε το Βήμα 5 και ανεβάστε τον κύριο παρακάτω κώδικα (πρόγραμμα ανίχνευσης χρώματος)

//-- -- -- -- Enter Values-- -- --// //For RED Colour: int Rx1 = 92 int Gx1 = 240 int Bx1 = 53 //For GREEN Colour: int Rx2 = 228 int Gx2 = 163 int Bx2 = 64 //For BLUE Colour: int Rx3 = 300 int Gx3 = 144 int Bx3 = 45 //-- -- -- -- -- -- -- -- -- -- -- //

Βήμα 5: Στον παραπάνω κώδικα αντικαταστήστε τις τιμές με τις τιμές που σημειώσατε πρόσφατα:

//--------Program Developed by R.GIRISH-------// const int s0 = 4 const int s1 = 5 const int s2 = 6 const int s3 = 7 const int out = 8 int frequency1 = 0 int frequency2 = 0 int frequency3 = 0 int state = LOW int state1 = LOW int state2 = HIGH void setup() { Serial.begin(9600) pinMode(s0, OUTPUT) pinMode(s1, OUTPUT) pinMode(s2, OUTPUT) pinMode(s3, OUTPUT) pinMode(out, INPUT) //----Scaling Frequency 20%-----// digitalWrite(s0, state2) digitalWrite(s1, state1) //-----------------------------// } void loop() ') delay(100) //------Sensing Blue colour----// digitalWrite(s2, state1) digitalWrite(s3, state2) frequency3 = pulseIn(out, state) Serial.print(' Blue = ') Serial.println(frequency3) delay(100) Serial.println('-----------------------------') delay(400) //---------Program Developed by R.GIRISH---------//

Όταν τοποθετούσατε το κόκκινο χρώμα χαρτιού στον αισθητήρα, θα έχετε τρεις αναγνώσεις, για παράδειγμα R = 56 | G = 78 | Β = 38.

Τοποθετήστε τις τιμές 56, 78, 38 ως εξής:

// Για ΚΟΚΚΙΝΟ Χρώμα:
int Rx1 = 56
int Gx1 = 78
int Bx1 = 38

Ομοίως, για άλλα δύο χρώματα και ανεβάστε τον κωδικό.

Βήμα 6:

• Ανοίξτε τη σειριακή οθόνη και τοποθετήστε οποιοδήποτε από τα τρία χρώματα μπροστά από τον αισθητήρα.
• Θα δείτε ταυτόχρονα την ανίχνευση χρωμάτων στη σειριακή οθόνη.

• Πατήστε το κουμπί επαναφοράς στην πλακέτα Arduino για να απενεργοποιήσετε το ρελέ.

ΣΗΜΕΙΩΣΗ 1: Το κύκλωμα ενδέχεται να μην ανιχνεύσει τα χρώματα, εάν τοποθετήσετε ελαφρώς διαφορετική απόχρωση / απόχρωση ΚΟΚΚΙΝΟΥ, ΠΡΑΣΙΝΟΥ, ΜΠΛΕ χρώματος αντικειμένου / χαρτιού, μετά τη βαθμονόμηση. Με άλλα λόγια, πρέπει να χρησιμοποιήσετε το ίδιο χρωματιστό αντικείμενο / χαρτί για να εντοπίσετε χρώματα και να ενεργοποιήσετε το ρελέ.

ΣΗΜΕΙΩΣΗ 2: Το φως περιβάλλοντος μπορεί να επηρεάσει την ανίχνευση χρώματος, συνεπώς, διατηρήστε ένα σταθερό φως κοντά στον αισθητήρα κατά τη βαθμονόμηση και επίσης κατά την ανίχνευση χρωμάτων.

Πρωτότυπο συγγραφέα:

Πρωτότυπο αισθητήρα χρώματος Arduino

Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με αυτό το έργο, παρακαλώ εκφράστε στην ενότητα σχολίων, ενδέχεται να λάβετε μια γρήγορη απάντηση.




Προηγούμενο: Χρήση αισθητήρων TSOP17XX με προσαρμοσμένες συχνότητες Επόμενο: Κύκλωμα πολλαπλών μπαταριών με χρήση Dump Capacitor