Пример 6. Фоторезистор
Примеры
Более подробную информацию о резисторах и фоторезисторе, в частности, можете найти в соответствующей заметке.
Описание:
Если интенсивность падающего света является высокой, сопротивление фоторезистора уменьшается; если низкой – увеличивается. В этом примере будем использовать восемь светодиодов для индикации интенсивности света. Чем выше интенсивность света, тем больше светодиодов горят. Когда интенсивность света достаточно высока, все светодиоды будут гореть. Когда нет света – все светодиоды гаснут.
Компоненты:
- 1 × Плата Arduino
- 1 × USB-кабель
- 1 × Беспаечная макетная плата
- 8 × Светодиод
- 8 × Резистор (220 Ω)
- 1 × Фоторезистор
- 1 × Резистор (10 kΩ)
- Соединительные провода
Схема:

Скетч:
Заметка:
map(value, fromLow, fromHigh, toLow, toHigh)
- value: значение для переноса
- fromLow: нижняя граница текущего диапазона
- fromHigh: верхняя граница текущего диапазона
- toLow: нижняя граница нового диапазона, в который переноситься значение
- toHigh: верхняя граница нового диапазона
Функция пропорционально переносит значение (value) из текущего диапазона значений (fromLow … fromHigh) в новый диапазон (toLow … toHigh), заданный параметрами.
Обратите внимание, что “нижняя граница” может быть как меньше, так и больше “верхней границы”. Это может быть использовано для того чтобы “перевернуть” диапазон:
y = map(x, 1, 50, 50, 1);
Возможно использование отрицательных значений:
y = map(x, 1, 50, 50, -100);
Функция map() оперирует целыми числами. При пропорциональном переносе дробная часть не округляется, а просто отбрасывается.