FS1000a, радиоуправление и запуск шагового двигателя
- Войдите на сайт для отправки комментариев
Ср, 26/08/2015 - 16:41
Здравствуйте! Помогите, пожалуйста, разобраться, почему моточик 28BYJ-48 5VDC не крутится против часовой стрелки, если добавить настройки для осуществления радиосвязи FS1000a
vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(2000); // Bits per sec vw_set_rx_pin(7); vw_rx_start(); // Start the receiver PLL running
При добавлении этих строк команда
for(i=0;i<512;i++){ counterclockwiserotate();} delay(1000); // wait for a second
Делает так, что моторчик только вибрирует, но вал не движется
Вот весь код:
#include <VirtualWire.h> void setup() { // initialize the digital pin as an output. pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(2000); // Bits per sec vw_set_rx_pin(7); vw_rx_start(); // Start the receiver PLL running } void loop() { int i=0; //revolve one revolution clockwise for(i=0;i<512;i++){ counterclockwiserotate();} delay(1000); // wait for a second } void clockwiserotate() { //revolve clockwise step1(); step2(); step3(); step4(); step5(); step6(); step7(); step8(); } void counterclockwiserotate() { //revolve counterclockwise step1(); step7(); step6(); step5(); step4(); step3(); step2(); step1(); } void step1(){ digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); delay(2); } void step2(){ digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); delay(2); } void step3(){ digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); delay(2); } void step4(){ digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); delay(2); } void step5(){ digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, LOW); delay(2); } void step6(){ digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); delay(2); } void step7(){ digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); delay(2); } void step8(){ digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); delay(2); }
Если настройку убрать, то всё хорошо крутится. Спасибо всем, кто подскажет, что нужно поменять в настройке, чтобы всех удовлетворяло: и крутилось, и радиосвязь работала. Или хотя бы намекните :)