Arduino:Примеры/BarGraph: различия между версиями
Myagkij (обсуждение | вклад) (→Код) |
Нет описания правки |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Светодиодная шкала <ref>[http://www.arduino.cc/en/Tutorial/BarGraph Arduino - LED Bar Graph]</ref>= | |||
Светодиодная шкала – это серия расположенных в ряд светодиодов (как в эквалайзере). Она часто используется в качестве дисплея для аналоговых датчиков. Впрочем, в этом примере мы воспользуемся не светодиодной шкалой, а ее «разобранной» версией, т.е. несколькими светодиодами, и научимся ими управлять. | Светодиодная шкала – это серия расположенных в ряд светодиодов (как в эквалайзере). Она часто используется в качестве дисплея для аналоговых датчиков. Впрочем, в этом примере мы воспользуемся не светодиодной шкалой, а ее «разобранной» версией, т.е. несколькими светодиодами, и научимся ими управлять. | ||
Строка 30: | Строка 30: | ||
==Код== | ==Код== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Светодиодная шкала | Светодиодная шкала | ||
Строка 94: | Строка 94: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= См.также= | |||
* pinMode() | * pinMode() | ||
Строка 106: | Строка 106: | ||
* Row Column Scanning | * Row Column Scanning | ||
=Внешние ссылки= | |||
<references /> | <references /> | ||
{{Навигационная таблица/ | {{Навигационная таблица/Портал/Arduino}} | ||
[[Категория:Пример]] | [[Категория:Пример]] | ||
[[Категория:Примеры]] | [[Категория:Примеры]] | ||
[[Категория:Пример программирования Arduino]] | [[Категория:Пример программирования Arduino]] | ||
[[Категория:Примеры программирования Arduino]] | [[Категория:Примеры программирования Arduino]] |
Текущая версия от 18:18, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Светодиодная шкала [1]
Светодиодная шкала – это серия расположенных в ряд светодиодов (как в эквалайзере). Она часто используется в качестве дисплея для аналоговых датчиков. Впрочем, в этом примере мы воспользуемся не светодиодной шкалой, а ее «разобранной» версией, т.е. несколькими светодиодами, и научимся ими управлять. В основе этого урока лежат два других – «Цикл For» (или «Рыцарь дорог») и «Использование входных данных для управления частотой мигания светодиода». Скетч работает следующим образом. Сначала считываем входные данные. Затем масштабируем диапазон входных данных под количество светодиодов (всего в цепи их будет десять). Затем используем цикл for(), чтобы «перескакивать» с одного светодиода на другой. Если номер светодиода ниже отмасштабированного значения, включаем его. Если выше – выключаем.
Необходимое оборудование
- Плата Arduino;
- Светодиодная шкала или 10 светодиодов;
- Потенциометр;
- 10 резисторов на 220 Ом;
- Провода-перемычки;
- Макетная плата Breadboard;
Цепь
Схема
Код
/*
Светодиодная шкала
Включает последовательно расположенные светодиоды
в зависимости от данных, считанных с аналогового датчика.
Это простой способ сделать светодиодную шкалу.
И хотя в этом примере используется 10 светодиодов,
на самом деле их можно подключить сколько угодно,
но попутно поменяв число в ledCount (т.е. в переменной с количеством светодиодов)
и добавив или удалив контакты в массиве ledPins.
При помощи этого метода можно управлять не только светодиодами, но и
другими цифровыми устройствами для вывода данных,
формирующихся на основе входных аналоговых данных.
Цепь:
* Десять светодиодов подключено к десяти цифровым контактам (со 2-ого по 11-ый)
* Те же десять светодиодов через 220-омовые резисторы подключены к «земле»
Создан 4 сентября 2010 Томом Иго (Tom Igoe)
Этот код не защищен авторским правом.
http://www.arduino.cc/en/Tutorial/BarGraph
*/
// Это константы, т.е. значения, которые не изменятся:
const int analogPin = A0; // Контакт, к которому подключен потенциометр
const int ledCount = 10; // Количество светодиодов в шкале
int ledPins[] = {
2, 3, 4, 5, 6, 7,8,9,10,11 }; // Массив с номерам контактов, к которым подключены светодиоды
void setup() {
// Зацикливаем массив со светодиодами и делаем все эти контакты выходными:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// Считываем данные с потенциометра:
int sensorReading = analogRead(analogPin);
// Масштабируем эти данные под количество светодиодов:
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
// Зацикливаем массив со светодиодами:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
// Если номер контакта, находящегося в массиве,
// меньше значения в ledLevel,
// то включаем светодиод, соответствующий этому контакту:
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
// выключаем все светодиоды, чьи номера контактов меньше значения в ledLevel:
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
}
См.также
- pinMode()
- for()
- digitalWrite()
- if...else
- map()
- For Loop
- Array
- If Statement
- Row Column Scanning
Внешние ссылки
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
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino