FS1000a, радиоуправление и запуск шагового двигателя

Нет ответов
darkvivi
Offline
Зарегистрирован: 26.08.2015

 Здравствуйте! Помогите, пожалуйста, разобраться, почему моточик 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);
}

 Если настройку убрать, то всё хорошо крутится. Спасибо всем, кто подскажет, что нужно поменять в настройке, чтобы всех удовлетворяло: и крутилось, и радиосвязь работала. Или хотя бы намекните :)