AnalogWrite()
Описание:
Пишет аналоговое значение (заполнение ШИМ) в порт. Может использоваться, например, для установки различной яркости свечения светодиодов, регулирования скорости двигателей.После вызова этой функции на выводе будет присутсвовать меандр с определенным заполнением до нового вызова этой или другой функции в применении к этому порту. Частота сигнала ШИМ состовляет примерно 490Гц.
На новых платформах, включая Mini и BT на чипе ATmega168, эта функция работает на выводах 3,5,6,9,10 и 11. На более старых USB и Serial платформах на чипе ATmega8 поддерживаются только порты 9,10 и 11
Синтаксис:
analogWrite(pin, value)
Параметры:
pin: вывод, на который пишем.
value: коэффициент заполнения: между 0 (всегда выключен) и 255 (всегда включен).
analogWrite не имеет никакого отношения к портам АЦП и analogRead.
Вам не нужно вызывать pinMode() для установки вывода как выходного, перед использованием функции analogWrite().
На выводах 5 и 6 генерируется напряжение чуть большее, чем установленное коэффициентом заполнения. Вызвано это функциями millis() и delay(), которые используют один и тот же внутренний таймер, что и для генерации ШИМ. Поэтому analogWrite(x, 0) не полностью выключает выводы 5 и 6.
Пример:
Устанавливает яркость свечения светодиода в зависимости от положения потенциометра.
int ledPin = 9; // LED connected to digital pin 9
int analogPin = 3; // potentiometer connected to analog pin 3
int val = 0; // variable to store the read value
void setup()
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(analogPin); // read the input pin
analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}
Дата добавления: 2015-03-23; просмотров: 861;