Этот небольшой датчик TCS3200D линзы Вы способны воспринимать цвета и отправить их на Arduino. Хотя это не очень надежный, Это казалось очень круто. Кроме того, версия без линз.
Он имеет 4 Светодиоды, установленные на плате.
Коннекторы: S0, S1, S2, S3, GND, VCC, OUT е LED.
Существует крышка для защиты объектива.
Посмотрите, как было соединение с Arduino.
Я использовал 3.3V напряжение Arduino для подключения светодиодов. Это была очень хорошая яркость.
В этой картине я пытаюсь читать синий мой степлер.
Результаты для синего не очень хорошо, но вы можете видеть, что синий уровень немного выше.
говоря, Я оставлю программу здесь для тех, кто хочет использовать:
INT s2Pin = 7;
INT s3Pin = 8;
INT outPin = 4;
недействительные установки() {
pinMode(s2Pin, ВЫВОД);
pinMode(s3Pin, ВЫВОД);
pinMode(outPin, ВХОД);
Serial.begin(9600);
}
ИНТ readOutputPulse(INT контактный) {
Количество INT = 0;
в то время как ((digitalRead(штырь) == 1) & (подсчитывать < 32640)) {
подсчитывать ++;
}
если (кол == 32640) Количество возврата + 2;
кол = 0; в то время как ((digitalRead(штырь) == 0) & (подсчитывать < 32640)) {
подсчитывать ++;
}
Количество возврата;
}
ИНТ readRed() {
INT Pulsewidth = 0;
INT colorStrength = 0;
digitalWrite(s2Pin, НИЗКИЙ);
digitalWrite(s3Pin, НИЗКИЙ);
задержка(100);
Pulsewidth = readOutputPulse(outPin);
colorStrength = (Pulsewidth / 128);
colorStrength = (255 - colorStrength);
вернуться colorStrength;
}
ИНТ readGreen() {
INT Pulsewidth = 0;
INT colorStrength = 0;
digitalWrite(s2Pin, ВЫСОКАЯ);
digitalWrite(s3Pin, ВЫСОКАЯ);
задержка(100);
Pulsewidth = readOutputPulse(outPin);
colorStrength = (Pulsewidth / 128);
colorStrength = (255 - colorStrength);
вернуться colorStrength;
}
ИНТ readBlue() {
INT Pulsewidth = 0;
INT colorStrength = 0;
digitalWrite(s2Pin, НИЗКИЙ);
digitalWrite(s3Pin, ВЫСОКАЯ);
задержка(100);
Pulsewidth = readOutputPulse(outPin);
colorStrength = (Pulsewidth / 128);
colorStrength = (256 - colorStrength);
вернуться colorStrength;
}
недействительный цикл() {
Serial.print("р:");
Serial.println(readRed());
Serial.print("г:");
Serial.println(readGreen());
Serial.print("В:");
Serial.println(readBlue());
Serial.println("");
задержка(500);
}
Сейчас я читаю белый экран на компьютере.
Красная ткань. Обратите внимание, что датчик гораздо более чувствителен к этому цвету, чем любой другой.
Зеленый экран:
И, наконец, синий.
Хотя гораздо более чувствительны к красному, чем синий или зеленый, или датчик работает. Может быть, некоторые калибровки необходимо работать лучше. Я оставляю ссылку ниже для версий с объективом (Ebay) и без линз (DX):
с линзами – http://www.ebay.com/sch/i.html?_nkw=tcs3200d+lens&_sacat=0
безлинзовой – HTTP://www.dx.com/p/gy-31-tcs230-tcs3200-color-sensor-recognition-module-blue-black-216448
Все приходит с сайта Китай рассматривает продукты, приобретенные в Китае













Здравствуйте Адриано,
Спасибо вам за полезную статью.
О коде. Это, кажется, отсутствуют некоторые символы?
В то время как ((digitalRead(ШТЫРЬ) == 1) & (подсчитывать < 32640)) {
подсчитывать ;
Should this be "count++;"?
А что об этом куске: Если (кол == 32640) Количество возврата 2;
What's between "count" and "2"?