Заколисаний згадкою частоти в 5 кГц в керівництві до ROBOPICA, я продовжив роботу І тільки дописавши главу до кінця, приступив до перевірки в «залізі» На жаль, на частоті 1 кГц двигуни тільки попискували, не проявляючи ніякого бажання що-небудь робити Я не готовий, як зазвичай, запевняти, що все зробив правильно, але, можливо, частота занадто велика, а зменшити її я не зміг Останнє я можу пояснити тільки приміткою в довідковому листку до PIC16F887:

Рис 4810 Примітка до опису роботи модуля PWM

Воно свідчить, що предделітель може ділити частоту на 16, тоді як використання другого дільника, який міг би зменшити частоту PWM ще в 16 раз, неможливо

Що можна зробити в моєму становищі (крім уважного вивчення документації)

Можна, що не складно, доповнити модуль (або модулі) PWM дільником, використовуючи вхід і вихід МК з програмним лічильником Але в цьому випадку доведеться переробляти плату управління, щоб перенести підключення моторів, а я хочу уникнути цього

Спочатку, давайте визначимо частоту, на якій мотори робота працюють Використовуємо просту програму:

#include <pic16f887h>

#include “delay_20h” typedef unsigned int word

word at 0x2007 CONFIG1 = 0x2FF2

void main

{

TRISD & = 0xFC / / Ініціалізація TRISC2 = 0

RD0 = 1 / / Включення двигуна RD1 = 0

while(1)

{

RC1 = 1

DELAY_MS (800) / / Частота 1 Гц, шпаруватість 80% RC1 = 0

DELAY_MS(200)

}

}

Рис 4811 Програмна перевірка

При частоті 1 Гц двигун працює, але встигає зупинитися, коли сигнал переходить в нуль Збільшимо частоту до 10 Гц Оттрансліруем програму і завантажимо в робота ..

Двигун працює, але поки нульовий рівень імпульсу відчувається (на слух) Збільшимо частоту до 100 Гц ..

Двигун працює, переривань роботи не помітно Нарешті, перевіримо роботу двигуна на частоті 1 кГц .. Двигун мляво працює, попискуючи, і це один двигун

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012