CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

ШИМ - Широтно-Импульсная Модуляция

ШИМ (Широтно-Импульсная Модуляция (PWM — Pulse Width Modulation))
— импульсный сигнал постоянной частоты и переменной скважности (отношение длительности импульса к периоду его следования). С помощью задания скважности можно менять среднее напряжение на выходе ШИМ.
Т.е. хоть мы и работаем с цифровым устройством, которое понимает только 1 и 0 (высокий уровень напряжения +3..+5V (HIGH) и низкий уровень напряжения 0..+2V (LOW)), но мы всё же можем получить напряжение отличное от данных изменяя скважность импульсов. Другими словами – получаем аналоговый сигнал цифровыми методами.

Ниже представлен вид сигнала на выходе при разных параметрах функции analogWrite()

ШИМ

0V, 1.25V, 2.5V, 3.75V и 5V соответственно.

Разумеется, как видно из того же рисунка — на выходе наблюдается всё тот же цифровой сигнал, но если подключить простую интегрирующую цепочку
интегрирующуя цепочка
, то на выходе мы получим уже вполне аналоговый сигнал :)

Пример работы ШИМ можно посмотреть в тестовом скетче Fading (File -> SketchBook -> Examples -> Analog -> Fading)
Здесь светодиод подключается к Arduino/CraftDuino напрямую, а «интегрирующую» роль выполняет инерционность наших глаз :)

// Fading LED 
// by BARRAGAN <http://people.interaction-ivrea.it/h.barragan> 

int value = 0;       // переменная для хранения значения ШИМ
int ledpin = 9;      // светодиод подключён к выводу 9
 
void setup() 
{ 
  // ничего не устанавливаем
} 
 
void loop() 
{ 
  for(value = 0 ; value <= 255; value+=5) // напряжение постепенно увеличивается (от 0V to 5V)
  { 
    analogWrite(ledpin, value);           
    delay(30);                            // ждём 30 миллисекунд, чтобы был виден эффект (светодиод постепенно загорается)
  } 
  for(value = 255; value >=0; value-=5)   // а здесь напряжение будет постепенно уменьшаться (от 5V to 0V) (светодиод постепенно гаснет)
  { 
    analogWrite(ledpin, value); 
    delay(30);                            
  }  
}


Ссылки:
http://arduino.cc/en/Tutorial/PWM
http://ru.wikipedia.org/wiki/ШИМ
Использование ШИМ

По теме:
Программирование Arduino — аналоговый ввод/вывод
Библиотека TimerOne
  • +1
  • 3 июля 2009, 11:09
  • admin

Комментарии (6)

RSS свернуть / развернуть
+
0
robocraft.ru/blog/arduino/32.html:
Частота генерирования сигнала – приблизительно 490 Гц.
avatar

Zoltberg

  • 10 сентября 2011, 20:55
комментарий был удален


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.