Arduino:Примеры/Регулировка яркости светодиодов с помощью двух SPI цифровых потенциометров MCP4231
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Проверка/Оформление/Редактирование: Мякишев Е.А.
Регулировка яркости светодиодов с помощью двух SPI цифровых потенциометров MCP4231
Данный пример демонстрирует управление яркостью светодиодов с помощью цифровых потенциометров с использованием библиотеки SPI.
Необходимые компоненты
- Плата Arduino Uno, 1 шт.;
- Цифровой потенциометр MCP4231, 2 шт.;
- Резистор на 100 Ом, 4 шт.;
- Светодиод(можно разных цветов), 4 шт.;
- Макетная плата;
- Провода перемычки;
Монтажная схема
Соберите схему согласно монтажной схеме.
Код
#include <SPI.h> // Подключение SPI библиотеки
// Помните при подключении библиотеки SPI
// контактами MOSI, MISO и CLK по умолчанию
// будут следующие цифровые контакты Arduino:
// 11 = MOSI, 12 = MISO, 13 = CLK
const int SS1=10; // SS-контакт(Slave Select, т.е. контакт выбора ведомого устройства) 1-ой микросхемы MCP4231
const int SS2=9; // SS-контакт(Slave Select, т.е. контакт выбора ведомого устройства) 2-ой микросхемы MCP4231
const byte REG0=B00000000; // Команда записи в регистр 0 т.е. выбор 1-го потенциометра
const byte REG1=B00010000; // Команда записи в регистр 1 т.е. выбор 2-го потенциометра
void setup()
{
pinMode(SS1, OUTPUT); // Установка SS1-контакта как выход
pinMode(SS2, OUTPUT); // Установка SS2-контакта как выход
SPI.begin(); // Инициализация SPI-интерфейса
}
/*
* Функция управления яркостью светодиодов
* SS - контакт выбора ведомого устройства(микросхемы MCP4231)
* reg - адрес регистра потенциометра выбранной микросхемы MCP4231
* level - значение сопротивления
* Возможные варианты вызова:
* setLed(SS1, REG0, значение от 0 до 128) - выбор 1-ой микросхемы MCP4231, 1-го потенциометра и 1-ый светодиод(в данном случае)
* setLed(SS1, REG1, значение от 0 до 128) - выбор 1-ой микросхемы MCP4231, 2-го потенциометра и 3-ый светодиод(в данном случае)
* setLed(SS2, REG0, значение от 0 до 128) - выбор 2-ой микросхемы MCP4231, 1-го потенциометра и 2-ый светодиод(в данном случае)
* setLed(SS2, REG1, значение от 0 до 128) - выбор 2-ой микросхемы MCP4231, 2-го потенциометра и 4-ый светодиод(в данном случае)
*/
void setLed(int SS, int reg, int level)
{
digitalWrite(SS, LOW); // Установить низкий уровень на контакте SS
SPI.transfer(reg); // Отправка команды (адрес регистра 1-го или 2-го потенциометра)
SPI.transfer(level); // Отправка значений (0-128) величины сопротивления
digitalWrite(SS, HIGH); // Установить высокий уровень на контакте SS
}
void loop()
{
for (int i = 0; i <= 128; i++)
{
setLed(SS1, REG0, i);
setLed(SS1, REG1, i);
setLed(SS2, REG0, i);
setLed(SS2, REG1, i);
delay(10);
}
delay(300);
for (int i = 128; i >= 0; i--)
{
setLed(SS1, REG0, i);
setLed(SS1, REG1, i);
setLed(SS2, REG0, i);
setLed(SS2, REG1, i);
delay(10);
}
delay(300);
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
Категории:
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino