Библиотека VirtualWire и ШИМ на 9-10 pin
- Войдите на сайт для отправки комментариев
Втр, 26/11/2013 - 22:01
При подключении вышеупомянутой библиотеки проподает ШИМ на 9-ом и 10-м пине. Из этого обсуждения понял что разрулить переназначением портов не получиться. Возникает устойчивое подозрение, что придется мутить програмный ШИМ на этих выходах, но я этого не умею.... может есть примеры кода?
Пример кода если что:
#include <VirtualWire.h> int nn = 0; void setup() { pinMode(10, OUTPUT); pinMode(9, OUTPUT); vw_set_ptt_pin(12); vw_set_rx_pin(7); vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(1700); // Bits per sec vw_rx_start(); } void loop() { analogWrite(10,nn); analogWrite(9,nn); delay(1000); if (nn<250) { nn= nn +10; } }
или может проще заставить virtualwire использовать timer2?
Вот такой скетч получился
Мне нужно управлять двумя моторами через драйвер l293, по этому разрядность ШИМа всего 4 и это меня устраивает, но при уменьшении времени повторения (увеличения частоты ШИМа) наблюдается странный эффект: через некоторое время 10 пин становится постоянно HIGH, а 9 LOW, вне зависимости от посылаемых команд, однако состоянием остальных выводом можно управлять, так например SPI продолжает работать и мотор на 10 пине продолжает менять направление вращения и останавливаться по команде с пульта.
Может лучше использовать для этих целей прерывание по переполнению timer2? Но этого я пока не освоил, буду читать дальше…
p.s.
не уверен в правильности использования терминов частота и разрядность