Помогите с шаговым двигателем
- Войдите на сайт для отправки комментариев
Чт, 27/03/2014 - 18:05
определяем номер шага и значение SWR - сравниваем с тем что запомнили вначале, если новое значение лучше, то запомнинаем новое и номер шага, после полного оборота выбираем лучшее. Помогите. И как добавить еще один шаговый двигатель
// Подключаем библиотеку дисплея: #include <LiquidCrystal.h> // Подключаем библиотеку шагового двигателя: #include <Stepper.h> // Количество шагов мотора: #define STEPS 48 // Шагов на оборот // Подключаем математические функции: #include "math.h" // Объявляем переменные и приводим их в порядок: float SWRpad = 0; float SWRotr = 0; float SWR = 0; // Прописываем пины индикатора: LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); // Создает класс шагового двигателя и объявляет какими ножками: Stepper stepper(STEPS, 8, 9, 10, 11); void setup () { analogReference(DEFAULT); // Стандартное опорное напряжение 5 В lcd.begin(16, 2); // Задаем размерность экрана, 2 строки по 16 символов // Установление скорости оборотов двигателя в оборотах в минуту (RPM) stepper.setSpeed(30); } void loop () { // Считываем в порт значение частоты: SWRpad = analogRead(A2); // Читаем со второй ноги аналогово входа напряжение падающей волны SWRotr = analogRead(A1); // Читаем с первой ноги аналогово входа напряжение отраженной волны // Расчет и вывод КСВ: SWR = (SWRpad + SWRotr)/(SWRpad - SWRotr); // определяем номер шага и значение SWR - сравниваем с тем что запомнили вначале, // если новое значение лучше, то запомнинаем новое и номер шага // после полного оборота выбираем лучшее lcd.setCursor(0, 0); lcd.print(" SWR "); if (SWR>1) { lcd.setCursor(4, 0); lcd.print(">1");} else if (SWR > 3) { // Один полный круг вперед круг=шаг? stepper.step(1*STEPS); delay(1000); // задержка определяется временем на шаг двигателя // Один полный круг назад stepper.step(-1*STEPS); delay(1000); lcd.setCursor(4, 0); lcd.print(SWR); } // Задержка и очистка экрана: delay (100); lcd.clear(); }
Думаю что вот так !
Большое спасибо. А как сделать счетчик шагового двигателя, в данной программе?
Вот объясните мне, нахрена вам float, если analogRead() возвращает "integer values between 0 and 1023"???
Большое спасибо. А как сделать счетчик шагового двигателя, в данной программе?
Что за счетчик ??