Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogWrite(): различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
(не показаны 4 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
= Функция analogWrite() = | |||
Выдает аналоговую величину (ШИМ волну) на порт входа/выхода. Функция может быть полезна для управления яркостью подключенного светодиода или скоростью электродвигателя. После вызова '''analogWrite()''' на выходе будет генерироваться постоянная прямоугольная волна с заданной шириной импульса до следующего вызова | Выдает аналоговую величину ([[ШИМ]] волну) на порт входа/выхода. Функция может быть полезна для управления яркостью подключенного светодиода или скоростью электродвигателя. После вызова '''analogWrite()''' на выходе будет генерироваться постоянная прямоугольная волна с заданной шириной импульса до следующего вызова [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogWrite()|analogWrite]] (или вызова [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/digitalWrite()|digitalWrite]] или [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/digitalRead()|digitalRead]] на том же порту входа/выхода). Частота [[ШИМ]] сигнала приблизительно [[490 Hz]]. | ||
На большинстве плат | На большинстве плат [[Arduino]] (на базе [[микроконтроллер]]а [[ATmega168]] или [[ATmega328]]) [[ШИМ]] поддерживают порты 3, 5, 6, 9, 10 и 11, на плате [[Arduino Mega]] порты с 2 по 13. На более ранних версиях плат [[Arduino]], [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogWrite()|analogWrite()]] работал только на портах 9, 10 и 11. | ||
Для вызова | Для вызова [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogWrite()|analogWrite()]] нет необходимости устанавливать тип входа/выхода функцией [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/pinMode()|pinMode()]]. | ||
Функция | Функция [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogWrite()|analogWrite]] никак не связана с аналоговыми входами и с функцией [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogRead()|analogRead]]. | ||
== Синтаксис == | == Синтаксис == | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
analogWrite(pin, value) | analogWrite(pin, value) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 21: | Строка 20: | ||
=== Параметры === | === Параметры === | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
pin: порт входа/выхода на который подаем ШИМ сигнал. | pin: порт входа/выхода на который подаем ШИМ сигнал. | ||
value: период рабочего цикла значение между 0 (полностью выключено) и 255 (сигнал подан постоянно). | value: период рабочего цикла значение между 0 (полностью выключено) и 255 (сигнал подан постоянно). | ||
Строка 28: | Строка 27: | ||
=== Возвращаемое значение === | === Возвращаемое значение === | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
нет | нет | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 34: | Строка 33: | ||
== Замечание == | == Замечание == | ||
Период | Период [[ШИМ]] сигнала на портах входа/выхода 5 и 6 будет несколько длиннее. Это связано с тем, что таймер для данных выходов также задействован функциями [[Arduino:Справочник языка Arduino/Функции/Работа со временем/millis()|millis()]] и [[Arduino:Справочник языка Arduino/Функции/Работа со временем/delay()|delay()]]. Данный эффект более заметен при установке коротких периодов [[ШИМ]] сигнала (0-10). | ||
== Пример == | == Пример == | ||
Задание яркости | Задание яркости [[светодиод]]а пропорционально значению, снимаемому с [[потенциометр]]а | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
int ledPin = 9; // Светодиод подключен к выходы 9 | int ledPin = 9; // Светодиод подключен к выходы 9 | ||
int analogPin = 3; // потенциометр подключен к выходу 3 | int analogPin = 3; // потенциометр подключен к выходу 3 | ||
Строка 57: | Строка 56: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=См.также= | |||
=Внешние ссылки= | |||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} | |||
[[Категория:Справочник языка Arduino]] | [[Категория:Справочник языка Arduino]] | ||
[[Категория:Функция]] | [[Категория:Функция]] |
Текущая версия от 11:28, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Функция analogWrite()
Выдает аналоговую величину (ШИМ волну) на порт входа/выхода. Функция может быть полезна для управления яркостью подключенного светодиода или скоростью электродвигателя. После вызова analogWrite() на выходе будет генерироваться постоянная прямоугольная волна с заданной шириной импульса до следующего вызова analogWrite (или вызова digitalWrite или digitalRead на том же порту входа/выхода). Частота ШИМ сигнала приблизительно 490 Hz.
На большинстве плат Arduino (на базе микроконтроллера ATmega168 или ATmega328) ШИМ поддерживают порты 3, 5, 6, 9, 10 и 11, на плате Arduino Mega порты с 2 по 13. На более ранних версиях плат Arduino, analogWrite() работал только на портах 9, 10 и 11.
Для вызова analogWrite() нет необходимости устанавливать тип входа/выхода функцией pinMode().
Функция analogWrite никак не связана с аналоговыми входами и с функцией analogRead.
Синтаксис
analogWrite(pin, value)
Параметры
pin: порт входа/выхода на который подаем ШИМ сигнал.
value: период рабочего цикла значение между 0 (полностью выключено) и 255 (сигнал подан постоянно).
Возвращаемое значение
нет
Замечание
Период ШИМ сигнала на портах входа/выхода 5 и 6 будет несколько длиннее. Это связано с тем, что таймер для данных выходов также задействован функциями millis() и delay(). Данный эффект более заметен при установке коротких периодов ШИМ сигнала (0-10).
Пример
Задание яркости светодиода пропорционально значению, снимаемому с потенциометра
int ledPin = 9; // Светодиод подключен к выходы 9
int analogPin = 3; // потенциометр подключен к выходу 3
int val = 0; // переменная для хранения значения
void setup()
{
pinMode(ledPin, OUTPUT); // установка порта на выход
}
void loop()
{
val = analogRead(analogPin); // считываем значение с порта, подключенному к потенциометру
analogWrite(ledPin, val / 4); // analogRead возвращает значения от 0 до 1023, analogWrite должно быть в диапозоне от 0 до 255
}
См.также
Внешние ссылки
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.
|
Клавиатура |
|
Мышь |
|
Разное |