Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
может кому пригодится
Отправлено: 23.11.2021 16:11
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
#include <Stepper.h>
#define steps 200 #define stepperSpeed 60 #define sensorPin 2 #define buttonPin 3 const int PIN_LED = 13; Stepper myStepper(steps, 7, 6, 5, 4); void setup() { myStepper.setSpeed(stepperSpeed); pinMode(sensorPin, INPUT); pinMode(buttonPin, INPUT_PULLUP); while(!digitalRead(sensorPin)) myStepper.step(1); myStepper.setSpeed(100); } void loop() { if(!digitalRead(buttonPin)){ for(byte i = 0; i < 10; i++){ myStepper.step(steps);digitalWrite(PIN_LED, HIGH); delay(100); myStepper.step(-steps);digitalWrite(PIN_LED,LOW ); delay(100); } } }
Отправлено: 23.11.2021 16:11
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
#include <Stepper.h>
#define steps 200 int hallSensorPin = 2; Stepper myStepper(steps, 7, 6, 5, 4); volatile boolean intFlag = false; // флаг void setup() { myStepper.setSpeed(60); pinMode(2, INPUT_PULLUP); // 2 пин вход с подтягивающим резистором - концевик // 0 - прерывание 0 // обработчик - функция turnStep // FALLING - при срабатывании концевика будет сигнал 0, его и ловим attachInterrupt(0, turnStep, FALLING); myStepper.step(steps); } void turnStep() { intFlag = true; // подняли флаг прерывания } void loop() { if (intFlag) { intFlag = false; stepper.disableOutputs(); // сбрасывае // Здесь останавливаем ШД } } выдает ошибку.....
Отправлено: 21.11.2021 19:41
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
#include <Stepper.h>
#define steps 200 int hallSensorPin = 2; Stepper myStepper(steps, 7, 6, 5, 4); volatile boolean intFlag = false; // флаг void setup() { myStepper.setSpeed(60); pinMode(2, INPUT_PULLUP); // 2 пин вход с подтягивающим резистором - концевик // 0 - прерывание 0 // обработчик - функция turnStep // FALLING - при срабатывании концевика будет сигнал 0, его и ловим attachInterrupt(0, turnStep, FALLING); myStepper.step(steps); } void turnStep() { intFlag = true; // подняли флаг прерывания } void loop() { if (intFlag) { intFlag = false; stepper.disableOutputs(); // сбрасывае // Здесь останавливаем ШД } } пишет ошибка в последней строчке. что ненравится немогу понять
Отправлено: 21.11.2021 19:37
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
не пошло. пошел курить литературу дальше))))))
Отправлено: 21.11.2021 14:57
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
#include
int hallSensorPin = 2; int dirA = 12; int dirB = 13; int pwmA = 3; int pwmB = 11; Stepper stepper(200, dirA, dirB); volatile boolean intFlag = false; void setup() { pinMode(2, INPUT_PULLUP); // 2 пин вход с подтягивающим резистором - концевик // 0 - прерывание 0 // обработчик - функция turnStep // FALLING - при срабатывании концевика будет сигнал 0, его и ловим attachInterrupt(0, turnStep, FALLING); pinMode(pwmA, OUTPUT); pinMode(pwmB, OUTPUT); digitalWrite(pwmA, HIGH); digitalWrite(pwmB, HIGH) stepper.setSpeed(60); } примерно так должно быть?
Отправлено: 21.11.2021 14:50
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
все верно вы написали.не могу понять как это выразить в коде.
Отправлено: 21.11.2021 0:38
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
необходимо что бы при каждом включении ардуинки вал двигателья занимал одну и ту же позицию
Отправлено: 20.11.2021 22:08
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
чтобы определить начальную точку движения
Отправлено: 20.11.2021 22:06
|
|
Сотрудник
Зарегистрирован:
09.10.2013 22:40 Сообщений:
36
|
есть ли примеры управления шаговиком по датчику холла?
Отправлено: 20.11.2021 20:53
|
|