Датчик цвета
Датчик цвета+ Датчик освещенности
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
1) Напряжение питания: 5В
2) Определяемые цвета: 5 - черный, белый, красный, синий, зеленый
3) Расстояние до определяемой поверхности - 0-2 см
4) Способ определения цвета: по отраженному свету
Описание
Датчик цвета позволяет определять цвет поверхности. По сути это два устройства в одном - трехцветный светодиод и датчик освещенности, которые можно использовать по отдельности.
Принцип работы: Датчик цвета имеет два основных компонента -трехцветный (RGB) светодиод, который излучает красный, синий и зеленый свет, а также светочувствительный датчик (фоторезистор), который определяет интенсивность падающего на него света.
Белый свет состоит из всех цветов радуги. Когда свет падает на поверхность, некоторые цвета поглощаются, а некоторые отражаются. Отраженные цвета – это цвета воспринимаемого нами объекта.
Для измерения и определения количества цвета с помощью электронной схемы, вам необходимо измерить интенсивность различных длин волн света, отраженного от поверхности. Самый простой способ сделать это – осветить поверхность разными цветами и измерить, какой из цветов поверхность отражает лучше.
Измеряя отраженный свет для каждого цвета можно вычислить цвет объекта.
Для улучшения результатов измерений следуйте следующим советам:
Избегайте попадания на фоторезистор прямых лучей и яркого света
Располагайте датчик так, чтобы фоторезистор был максимально в тени
Не производите измерения постоянно, делайте между измерениями небольшие паузы.
Составляйте программу так, чтобы измерения начинались тогда, когда объект в поле зрения датчика и не двигается.
Каждое измерение занимает около 0.4 секунды. Если измерение началось, когда в поле зрения был объект одного цвета (или его не было совсем), а закончилось на другом объекте, результат будет с большой вероятностью неверным.
Подносите объект максимально близко к датчику, он может даже упираться в светодиод - так будет максимально изолироваться внешнее освещение.
При конструировании модели помещайте датчик в короб, собранный из конструктора. Это увеличит точность измерения.
Подключение
Датчик использует два стандартных 3-пиновых разъема, однако, подключается не совсем обычно:
Коннектор 1 (без цветового обозначения) подключается в любой из портов IN контроллера "Трекдуино", сигнальный провод этой шины подключен к фоторезистору, поэтому, подключив только эту шину, вы сможете использовать датчик как датчик освещенности.
Коннектор 2 (с цветовой маркировкой) служит для управления трехцветным светодиодом. Каждый из проводов подключен напрямую соответствующему каналу светодиода. Наклейка с цветовой маркировкой на коннекторе указывает, к какому из каналов соответствует каждый из проводов. Подключается в любые три порта OUT и в любые порты IN контроллера "Трекдуино". Подключается горизонтально в верхнюю (сигнальную, «S») линию контактов.. Для того, чтобы использовать только RGB-светодиод, коннектор №1 все равно придется подключить, т.к. земляной провод (GND) общий для светодиода и фоторезистора.
Программирование
Блоки, необходимые для работы с датчиком цвета, расположены в группе блоков «Датчики».
Калибровка
Каждый раз при перезагрузке программы, использующей датчик цвета, в момент выполнения блока Настройка датчика цвета
будет производится калибровка датчика под текущие условия освещения. Процедура калибровки выполняется следующим образом:
Трехцветный светодиод датчика мигнет три раза белым светом. Это означает, что процедура калибровки запущена.
В течение 3 секунд поднесите к датчику любую белую отражающую поверхность, например, белый лист. Через 3 секунды датчик поочередно загорится красным, зеленым, синим цветом.
Как только датчик погаснет, поднесите к датчику любую черную поверхности. У вас есть на это 3 секунды. Через 3 секунды датчик просканирует разными цветами черную поверхность.
Процедура калибровки окончена. Программа выждет 5 секунд и продолжит нормальную работу.
Для удобной работы с датчиком, сделайте 2 карточки 5х8 см. черного и белого цвета.
Блок и генерируемая функция | Описание |
setupColorSensor(Rpin, Bpin, Gpin, Spin)
| Выполняется привязка датчика к конкретным портам и процедура калибровки.
Аргументы:
Красный светодиод (int Rpin) - порт, к которому подключен красный канал RGB-светодиода
Синий светодиод (int Bpin) - порт, к которому подключен синий канал RGB-светодиода
Зеленый светодиод (int Gpin) - порт, к которому подключен зеленый канал RGB-светодиода
датчик (int Spin) - порт, к которому подключен немаркированный провод датчика освещенности. |
int getColor(void)
| Выполняет сканирование поверхности и возвращает условный номер определенного цвета:
0 - черный
1 - белый
2 - красный
3 - зеленый
4 - синий
9 - ошибка (цвет не удалось определить с достаточным уровнем достоверности) |
Примеры использования в проектах
Цветовой замок
Генерируемый код:
void setup()
{
setupColorSensor(OUT1, OUT2, OUT3, IN1);
servo_port_OUT4.attach(OUT4, BIG_SERVO);
servo_port_OUT4.write(0);
}
void loop()
{
if (( ( getColor() ) == ( RED ) ))
{
servo_port_OUT4.write(100);
delay( 15000 );
}
else
{
servo_port_OUT4.write(0);
}
}