В наборе из 37 датчиков KY-008 лежит в отдельном пакетике и выглядит как самая скучная деталь коллекции: чёрная платка, впереди металлический цилиндрик, сзади три ножки. Первый раз я воткнул его наспех, по привычке от светодиода из первого урока, и получил красную точку на стене через комнату — яркую настолько, что она пробивает дневной свет. Дольше всего не верилось, что это тот же принцип, что у мигалки: digitalWrite(HIGH) — луч идёт, digitalWrite(LOW) — луча нет. Разница только в дальности: обычный светодиод гаснет в сантиметрах от стены, этот долетает до соседней комнаты.
Это первый урок кластера про лазер и луч. Включим модуль как положено, посчитаем ток, который он просит у пина, договоримся о правилах обращения — пять милливатт в глаз не шутка, — а в конце соберём мигалку S.O.S. по таблице длительностей: точка 200 мс, тире 600. Дальше на этом же луче построятся счётная шторка с фоторезистором — деталь, знакомая по уроку про ночной светильник, — и охрана периметра, где зуммер уже воет сиреной из звукового кластера.
Симулятор понимает лазер как отдельную деталь макетки: включается он тем же digitalWrite, а в виджете подписывается «луч включён» или «луч выключен». Настоящая плата ведёт себя одинаково, но её луч светит по-настоящему, поэтому правила обращения читаются до включения, а не после первого испуга.
Три ножки: S, середина и минус
Из трёх выводов работают два. S — сигнальный: HIGH с пина — диод горит, LOW — гаснет; между S и диодом на плате уже стоит ограничивающий резистор, так что ничего добавлять не нужно. Минус — в GND, общий провод платы: если макетка разрослась и что-то ведёт себя непредсказуемо, первым делом проверяйте, что минусы всего хозяйства сходятся в одной точке — эта грабля разобрана в уроке про общий провод.
Середина — самое интересное. У большинства плат KY-008 она внутри ни к чему не припаяна: третий вывод существует ради совместимости с трёхпиновыми шлейфами серв и датчиков. У части клонов, впрочем, середина сидит на плюсе питания. Различие проверяется мультиметром за минуту: прозвонка между серединой и минусом пищит — вывод живой, через него модуль можно питать от шины 5 В постоянным лучом; молчит — смело оставляйте в воздухе. В продажах модуль встречается и под именем HW-493: это тот же KY-008 с другой маркировкой, схема включения не меняется.
| Параметр | Число | Что значит для макетки |
|---|---|---|
| Напряжение питания | 5 В | и с пина через S, и от шины 5 В через средний вывод |
| Ток | около 30 мА | пин тянет (потолок 40 мА), но это верхняя треть его режима |
| Длина волны | 650 нм | глубокий красный; у ИК-пульта 940 нм, у зелёных лазеров 532 |
| Мощность | около 5 мВт | класс 3R — нижняя граница «в глаз нельзя», об этом ниже |
Ток: пин тянет, но на пределе
Даташит ATmega328P разрешает пину отдавать до 40 мА, а комфортным называет режим вдвое мягче — около двадцати. Лазер со своими 30 мА ложится в самый верх этого диапазона: для мигалки, где диод горит доли секунды, это нормально — я гонял KY-008 прямо с пина месяцами. А вот для луча, который должен гореть всегда, как в шторке из следующего урока, тридцать миллиампер на пине сутками я уже не оставляю: перекидываю питание на шину 5 В через средний вывод, если он прозвонился, или ставлю транзисторный ключ — механика та же, что в уроке про ключ на 2N2222.
Вторая граница — напряжение. Модуль рассчитан на 5 В и не имеет защиты: двенадцать вольт с адаптера или статический разряд убивают диод мгновенно и без дыма. Правило у меня простое: лазер питается только от платы, где уже стоит свой стабилизатор, и никаких экспериментов с прямой подачей — экономия одного провода не стоит детали. Заодно держите в голове общий бюджет: потолок платы — 200 мА на всё, и токовый бюджет проекта считается по строке на потребителя, включая наш лазер.
const int LASER = 12; void setup() { pinMode(LASER, OUTPUT); Serial.begin(9600); Serial.println("Prob: laser na D12");} void loop() { digitalWrite(LASER, HIGH); Serial.println("luch vklyuchen"); delay(1000); digitalWrite(LASER, LOW); Serial.println("luch vyklyuchen"); delay(1000);}Почему луч доходит до соседней комнаты, а светодиод — нет: в цилиндрике перед диодом стоит коллиматорная линза, собирающая излучение в узкий пучок. Точка на пяти метрах остаётся точкой в пару миллиметров, на десяти расходится ещё на чуть-чуть. Фокусировка не нужна и невозможна: что выпустили с завода, то и светит. Для наших задач это подарок — прицеливаться шторкой можно по точке, как лазерным уровнем.
Пин для лазера я выбрал D12 и дальше по кластеру его не двигаю: D2 и D3 держу для кнопок и прерываний, D8 уже занят зуммером из звукового кластера, а D13 моргает бортовым светодиодом и путает отладку. Светодиод-дублёр на D11, который появится в мигалке ниже, — не украшение: за его огонёк удобно следить взглядом, не глядя в луч.
S.O.S. по таблице длительностей
Азбука Морзе строится на одной базовой единице — длине точки. Возьмём 200 мс: точка держит луч 200 мс, тире — 600 (три единицы), пауза между элементами внутри буквы — 200, между буквами — 600, между повторами всего сигнала — 1400 (семь единиц). Эти пять чисел — весь темп: захотели медленнее, чтобы разобрать на слух, — меняете базу 200 на 400, и всё остальное пересчитывается само.
В первом уроке мы уже мигали S.O.S. на бортовом светодиоде тремя for-циклами — по циклу на букву. Здесь тот же сигнал, но собранный иначе: массив пар «горит — пауза», как партитура в уроке про мелодии на массивах, только вместо частот нот — длительности. Правка одной буквы теперь не переписывает циклы, а меняет пару чисел в массиве.
- S — с пина через digitalWrite, минус — GND, середина у большинства плат никуда не подключена; прозвонка покажет, не сидит ли она на плюсе у вашего клона
- Модуль: 650 нм, около 5 мВт, ток около 30 мА — пин тянет, но это верхняя треть его режима; постоянный луч лучше питать от шины 5 В или через транзистор
- Мигалка управляется массивом пар «горит — пауза»: точка 200 мс, тире 600, пауза в букве 200, между буквами 600, между повторами 1400
- 5 мВт — класс 3R: в глаз и в зеркальное отражение не смотреть, при пересборке макетки луч гасить первым
- Светодиод-дублёр рядом с лазером позволяет читать ритм, не глядя в луч, — оставьте его во всех схемах кластера
- 1. Куда подключается средняя ножка KY-008, если модуль управляется с пина через S?
- 2. Сколько тока просит KY-008 и справится ли цифровой пин?
- 3. Какова длина волны излучения KY-008?
- 4. Почему тире в нашей мигалке держит 600 мс при точке 200 мс?
- 5. Какое обращение с лучом 5 мВт правильное?
Частые вопросы по теме урока
- Куда подключается средняя ножка KY-008, если модуль управляется с пина через S?
- Средний вывод у большинства плат механический — под трёхпиновый шлейф. У части клонов он сидит на плюсе: тогда через него питают постоянный луч от шины 5 В. никуда: у большинства плат она внутри не припаяна ни к чему
- Сколько тока просит KY-008 и справится ли цифровой пин?
- Тридцать миллиампер — верхняя треть комфортного режима пина: для мигалки нормально, для постоянного луча лучше шина 5 В или транзисторный ключ. около 30 мА: пин тянет (потолок 40 мА), но это верхняя треть режима
- Какова длина волны излучения KY-008?
- 650 нанометров — видимый красный. ИК-диод пульта на 940 нм глазу невидим, поэтому прицеливаться шторкой нагляднее именно лазером. 650 нм — глубокий красный
- Почему тире в нашей мигалке держит 600 мс при точке 200 мс?
- Единица одна — точка: тире 3 единицы, пауза в букве 1, между буквами 3, между повторами 7. Меняем базу 200 мс — меняется весь темп сигнала. тире — три единицы по 200 мс: вся азбука строится на одной базовой длине
- Какое обращение с лучом 5 мВт правильное?
- 5 мВт — класс 3R: прямой или отражённый пучок повреждает сетчатку быстрее моргания. Точку изучают со стороны, лазер гасят до перекомпоновки. в луч и его зеркальное отражение не смотреть, при пересборке макетки луч гасить