#1 Апаратні питання » Шаговик 28byj-48 и тактовая кнопка » 2018-03-18 13:24:33

qdesnik
відповідей: 2

Добрый день уважаемы форумчане. Вот сижу и не могу разобраться что и где делаю не правильно,суть такова
Arduino Uno + 28byj-48 + драйвер ULN 2003 + тактовая кнопка
сценарий следующий :
при нажатии на кнопку сделать несколько оборотов шаговика
Проблема следующая подключив все и нажав кнопку на драйвере загорается 1 диод и все на этом
питание стабильное , схему собрал верно,драйвер и шаговик исправны (работают на примерном скетче )

#include <CustomStepper.h>            
CustomStepper stepper(8, 9, 10, 11);  
boolean rotate1 = false;              
boolean rotatedeg = false;          
boolean crotate = false;              

int LED =13; // LED pin /контакт питания светодиода  
int buttonPin = 3;     // номер входа, подключенный к кнопке
int buttonState = 0;

 
void setup()
{
  stepper.setRPM(12);                 
  stepper.setSPR(4075.7728395);      
  
  pinMode(buttonPin, INPUT);  
  pinMode(LED, OUTPUT); // LED выход
}
 
void loop()
{
  stepper.run(); 
 buttonState = digitalRead(buttonPin); // считываем значения с входа кнопки
 
  if (buttonState == HIGH &&stepper.isDone())
  {  
    LEDmig(LED,3); //led flash function 1 /мигнуть светодиодом выключателя медленно Х раза 
    
    Run() ;
    }
   
  
} 

void Run()
{ 
  stepper.setDirection(CCW);        // Устанавливает направление вращения (по часовой)
    stepper.rotate(2);                // Устанавливает вращение на заданное количество оборотов
    rotate1 = true;
 }
 ///led flash function / функция мигания светодиода 1 (имя светодиода, кол-во миганий)
void LEDmig(int led_name, int count) 
{
  if (digitalRead(led_name) == HIGH) // если диод горит
  {
    digitalWrite(led_name, LOW ); // выкл светодиод 
  }
  
  for (int i=1; i <= count; i++) //мигаем
   {
     digitalWrite(led_name, HIGH ); // зажечь светодиод
     delay(400);
     digitalWrite(led_name, LOW ); // выкл светодиод
     delay(400);
   }
}

Підвал форуму