{"id":5913,"date":"2019-04-09T20:04:29","date_gmt":"2019-04-09T17:04:29","guid":{"rendered":"http:\/\/roboromania.ro\/?p=5913"},"modified":"2019-04-09T20:06:48","modified_gmt":"2019-04-09T17:06:48","slug":"senzorul-detectie-culoare-tcs230-si-arduino","status":"publish","type":"post","link":"https:\/\/roboromania.ro\/?p=5913","title":{"rendered":"Senzorul detec\u021bie culoare TCS230 \u0219i Arduino"},"content":{"rendered":"<h3><span style=\"color: #0000ff;\">Senzorul detec\u021bie culoare TCS230 \u0219i Arduino<\/span><\/h3>\n<p>Detec\u021bia culorii RGB cu senzorul <strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"http:\/\/roboromania.ro\/produs\/modul-senzor-de-culoare-tcs230-589\/\" target=\"_blank\">TCS230<\/a><\/span><\/strong> \u0219i afi\u0219area pe un <strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"http:\/\/roboromania.ro\/produs\/lcd-2x16-caractere-led-blue-display\/\" target=\"_blank\">LCD<\/a><\/span><\/strong><\/p>\n<p><a href=\"http:\/\/roboromania.ro\/wp-content\/uploads\/2018\/05\/senzor-culoare-roboromania.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-4908\" src=\"http:\/\/roboromania.ro\/wp-content\/uploads\/2018\/05\/senzor-culoare-roboromania-300x245.jpg\" alt=\"senzor-culoare-roboromania\" width=\"300\" height=\"245\" srcset=\"https:\/\/roboromania.ro\/wp-content\/uploads\/2018\/05\/senzor-culoare-roboromania-300x245.jpg 300w, https:\/\/roboromania.ro\/wp-content\/uploads\/2018\/05\/senzor-culoare-roboromania.jpg 430w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/roboromania.ro\/wp-content\/uploads\/2019\/04\/arduino-color-detector.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5914\" src=\"http:\/\/roboromania.ro\/wp-content\/uploads\/2019\/04\/arduino-color-detector-300x269.jpg\" alt=\"arduino-color-detector\" width=\"300\" height=\"269\" srcset=\"https:\/\/roboromania.ro\/wp-content\/uploads\/2019\/04\/arduino-color-detector-300x269.jpg 300w, https:\/\/roboromania.ro\/wp-content\/uploads\/2019\/04\/arduino-color-detector.jpg 900w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Cod:<\/p>\n<p>\/\/&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;<\/p>\n<p>\/* Definire pini TCS230*\/<br \/>\n#define S0 2 \/\/SO pin to arduino D2 pin<br \/>\n#define S1 3 \/\/S1 pin to arduino D3 pin<br \/>\n#define S2 4 \/\/S2 pin to arduino D4 pin<br \/>\n#define S3 5 \/\/S3 pin to arduino D5 pin<br \/>\n#define OP 6 \/\/Output pin to arduino D6 pin<\/p>\n<p>\/*Initialling the value of variable to 0*\/<br \/>\nint R = 0; \/\/Initial value of RED Color is 0<br \/>\nint B = 0; \/\/Initial value of BLUE Color is 0<br \/>\nint G = 0; \/\/Initial value of GREEN Color is 0<\/p>\n<p>unsigned int frequency1 = 0; \/\/Initial frequency for RED is 0<br \/>\nunsigned int frequency2 = 0; \/\/Initial frequency for BLUE is 0<br \/>\nunsigned int frequency3 = 0; \/\/Initial frequency for GREEN is 0<\/p>\n<p>#include &lt;LiquidCrystal.h&gt;<br \/>\nLiquidCrystal lcd(12, 11, 10, 9, 8, 7);\/\/RS,EN,D4,D5,D6,D7<\/p>\n<p>void setup()<br \/>\n{<br \/>\nlcd.begin(16, 2);<br \/>\npinMode(S0, OUTPUT); \/\/Assigning arduino pin D2 as output<br \/>\npinMode(S1, OUTPUT); \/\/Assigning arduino pin D3 as output<br \/>\npinMode(S2, OUTPUT); \/\/Assigning arduino pin D4 as output<br \/>\npinMode(S3, OUTPUT); \/\/Assigning arduino pin D5 as output<br \/>\npinMode(OP, INPUT); \/\/Assigning arduino pin D6 as input<br \/>\n\/*Frequency is set for 20% so according to truth table<br \/>\nSO pin must be at high potential and S1 pin at low potential*\/<br \/>\ndigitalWrite(S0,HIGH); \/\/Making arduino pin D2 HIGH (+5V)<br \/>\ndigitalWrite(S1,LOW); \/\/Making arduino pin D3 LOW (GND)<br \/>\nSerial.begin(9600);<\/p>\n<p>lcd.setCursor(0,0);<br \/>\nlcd.print(&#8222;Arduino Color&#8221;);<br \/>\nlcd.setCursor(0,1);<br \/>\nlcd.print(&#8221; Detector &#8222;);<br \/>\ndelay(2000);<br \/>\nlcd.clear();<br \/>\n}<\/p>\n<p>void loop()<br \/>\n{<br \/>\n\/*checking for red color*\/<br \/>\ndigitalWrite(S2,LOW); \/\/Making arduino pin D4 LOW (GND)<br \/>\ndigitalWrite(S3,LOW); \/\/Making arduino pin D5 LOW (GND)<br \/>\nfrequency1 = pulseIn(OP, LOW); \/\/Reading frequency for RED using pulseIN function<br \/>\nSerial.print(&#8222;R=&#8221;);<br \/>\nSerial.println(frequency1); \/\/Displaying frequency of RED on serial monitr<br \/>\nR = frequency1; \/\/assigning value of Red frequiency to R<br \/>\ndelay(50); \/\/ 50 milli seconds delay<\/p>\n<p>\/*checking for blue color*\/<br \/>\ndigitalWrite(S2,LOW);<br \/>\ndigitalWrite(S3,HIGH);\/\/ setting for BLUE color sensor<br \/>\nfrequency2 = pulseIn(OP, LOW);\/\/Reading frequency for BLUE using pulseIN function<br \/>\nSerial.print(&#8222;B=&#8221;);<br \/>\nSerial.println(frequency2); \/\/Displaying frequency of BLUE on serial monitr<br \/>\nB = frequency2; \/\/assigning value of BLUE frequiency to B<br \/>\ndelay(50); \/\/ 50 milli seconds delay<\/p>\n<p>\/*checking for green color*\/<br \/>\ndigitalWrite(S2,HIGH);<br \/>\ndigitalWrite(S3,HIGH);\/\/ setting for GREEN color sensor<br \/>\nfrequency3 = pulseIn(OP, LOW); \/\/Reading frequency for GREEN using pulseIN function<br \/>\nSerial.print(&#8222;G=&#8221;);<br \/>\nSerial.println(frequency3); \/\/Displaying frequency of GREEN on serial monitr<br \/>\nG = frequency3; \/\/assigning value of GREEN frequiency to G<br \/>\ndelay(50); \/\/ 50 milli seconds delay<br \/>\nSerial.println(&#8222;stop&#8221;);<\/p>\n<p>\/*Change the value of R, B and G with the value you have measured *\/<\/p>\n<p>\/*Checking for RED color if the value of R and G lies between below defined value<br \/>\nLCD display RED color*\/<br \/>\nif(R&lt;90 &amp; R&gt;45 &amp; G&lt;185 &amp; G&gt;130)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8221; RED &#8222;);<br \/>\n}<\/p>\n<p>\/*Checking for ORANGE color if the value of B and G lies between below defined value<br \/>\nLCD display ORANGE color*\/<br \/>\nif(G&lt;155 &amp; G&gt;120 &amp; B&lt;155 &amp;B&gt;115)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8222;ORANGE&#8221;);<br \/>\n}<\/p>\n<p>\/*Checking for GREEN color if the value of R and G lies between below defined value<br \/>\nLCD display GREEN color*\/<br \/>\nif(R&lt;150 &amp; R&gt;110 &amp; G&lt;160 &amp; G&gt;140)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8221; GREEN&#8221;);<br \/>\n}<\/p>\n<p>\/*Checking for YELLOW color if the value of R and G lies between below defined value<br \/>\nLCD display YELLOW color*\/<br \/>\nif(R&lt;80 &amp; R&gt;40 &amp; G&lt;120 &amp; G&gt;80)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8222;YELLOW&#8221;);<br \/>\n}<\/p>\n<p>\/*Checking for VOILET color if the value of R and G lies between below defined value<br \/>\nLCD display VOILET color*\/<br \/>\nif(R&lt;90 &amp; R&gt;60 &amp; B&lt;110 &amp; B&gt;75)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8222;VOILET&#8221;);<br \/>\n}<\/p>\n<p>\/*Checking for MAGENTA color if the value of R and G lies between below defined value<br \/>\nLCD display MAGENTA color*\/<br \/>\nif(G&lt;115 &amp; G&gt;80 &amp; B&lt;100 &amp; B&gt;50)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8222;MAGENTA&#8221;);<br \/>\n}<\/p>\n<p>\/*Checking for BLUE color if the value of B and G lies between below defined value<br \/>\nLCD display BLUE color*\/<br \/>\nif (G&lt;235 &amp; G&gt;165 &amp; B&lt;190 &amp;B&gt;110)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8221; BLUE &#8222;);<br \/>\n}<\/p>\n<p>\/*Checking for BLACK color if the value of B and G lies between below defined value<br \/>\nLCD display BLACK color*\/<br \/>\nif (R&lt;200 &amp; R&gt;150 &amp; G&lt;270 &amp;G&gt;210)<br \/>\n{<br \/>\nlcd.setCursor(0,0);<br \/>\nlcd.print(&#8221; BLACK &#8222;);<br \/>\n}<br \/>\ndelay(2000); \/\/2 second delay only for pause the screen<br \/>\nlcd.clear(); \/\/ Clear the screen<br \/>\n}<\/p>\n<p>\/\/&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;<\/p>\n<h4><span style=\"color: #0000ff;\">Sau alt cod pentru SerialMonitor:<\/span><\/h4>\n<p>\/\/&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;<\/p>\n<pre>int s0=3,s1=4,s2=5,s3=6,LED=8;\r\nint flag=0;\r\nint counter=0;\r\nint countR=0,countG=0,countB=0;\r\nvoid setup()\r\n {\r\n Serial.begin(9600);\r\n pinMode(s0,OUTPUT);\r\n pinMode(s1,OUTPUT); \r\n pinMode(s2,OUTPUT);\r\n pinMode(s3,OUTPUT);\r\n digitalWrite(LED,HIGH);\r\n\r\n }\r\nvoid TCS()\r\n {\r\n   digitalWrite(s1,HIGH);\r\n   digitalWrite(s0,LOW);\r\n   flag=0;\r\n   attachInterrupt(0, ISR_INTO, CHANGE);\r\n   timer2_init();\r\n }\r\nvoid ISR_INTO()\r\n {\r\n   counter++;\r\n }\r\n void timer2_init(void)\r\n {\r\n   TCCR2A=0x00;\r\n   TCCR2B=0x07; \t\r\n   TCNT2= 100;    \t\r\n   TIMSK2 = 0x01;\t \r\n }\r\n int i=0;\r\n ISR(TIMER2_OVF_vect)\t\r\n{\r\n TCNT2=100;\r\n flag++;\r\n if(flag==1)\r\n  {\r\n    counter=0;\r\n  }\r\n else if(flag==2)\r\n   {\r\n    digitalWrite(s2,LOW);\r\n    digitalWrite(s3,LOW); \r\n    countR=counter\/1.051;\r\n    Serial.print(\"red=\");\r\n    Serial.println(countR,DEC);\r\n    digitalWrite(s2,HIGH);\r\n    digitalWrite(s3,HIGH);   \r\n   }\r\n else if(flag==3)\r\n    {\r\n     countG=counter\/1.0157;\r\n    Serial.print(\"green=\");\r\n    Serial.println(countG,DEC);\r\n     digitalWrite(s2,LOW);\r\n     digitalWrite(s3,HIGH); \r\n   \r\n    }\r\n else if(flag==4)\r\n    {\r\n     countB=counter\/1.114;\r\n    Serial.print(\"blue=\");\r\n    Serial.println(countB,DEC);\r\n     digitalWrite(s2,LOW);\r\n     digitalWrite(s3,LOW);\r\n     }\r\n else\r\n     {\r\n     flag=0; \r\n      TIMSK2 = 0x00;\r\n     }\r\n     counter=0;\r\n     delay(2);\r\n}\r\nvoid loop()\r\n {\r\n  delay(10);\r\n  TCS();\r\n  if((countR&gt;10)||(countG&gt;10)||(countB&gt;10))\r\n   {\r\n      if((countR&gt;countG)&amp;&amp;(countR&gt;countB))\r\n       {\r\n            Serial.print(\"red\");\r\n            Serial.print(\"\\n\");\r\n            delay(1000);\r\n       }\r\n      else if((countG&gt;=countR)&amp;&amp;(countG&gt;countB))\r\n       {\r\n            Serial.print(\"green\");\r\n            Serial.print(\"\\n\");\r\n            delay(1000);\r\n       } \r\n     else if((countB&gt;countG)&amp;&amp;(countB&gt;countR))\r\n      {\r\n            Serial.print(\"blue\");\r\n            Serial.print(\"\\n\");\r\n           delay(1000);\r\n      }\r\n    }\r\n  else \r\n  {\r\n     delay(1000);       \r\n  }\r\n }\r\n\/\/-----------------------<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Senzorul detec\u021bie culoare TCS230 \u0219i Arduino Detec\u021bia culorii RGB cu senzorul TCS230 \u0219i afi\u0219area pe un LCD Cod: \/\/&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211; \/* Definire pini TCS230*\/ #define S0 2 \/\/SO pin to arduino D2 pin #define S1 3 \/\/S1 pin to arduino D3 pin #define S2 4 \/\/S2 pin to arduino D4 pin #define S3 5 \/\/S3 pin [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[176],"tags":[],"class_list":["post-5913","post","type-post","status-publish","format-standard","hentry","category-tutoriale-arduino"],"_links":{"self":[{"href":"https:\/\/roboromania.ro\/index.php?rest_route=\/wp\/v2\/posts\/5913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/roboromania.ro\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/roboromania.ro\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/roboromania.ro\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/roboromania.ro\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5913"}],"version-history":[{"count":3,"href":"https:\/\/roboromania.ro\/index.php?rest_route=\/wp\/v2\/posts\/5913\/revisions"}],"predecessor-version":[{"id":5917,"href":"https:\/\/roboromania.ro\/index.php?rest_route=\/wp\/v2\/posts\/5913\/revisions\/5917"}],"wp:attachment":[{"href":"https:\/\/roboromania.ro\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/roboromania.ro\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/roboromania.ro\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}