Прирывания при связи по Ком Порту.
- Войдите на сайт для отправки комментариев
Пнд, 09/09/2013 - 12:18
Есть Шаговик -> Ардуино -> Win Приложение.
В программе указывается сколько шагов сделать, отправляться команда. Адушка выполняет. Все работает.
Задача во время выполнения отправить другую команду, например остановить.
К сожалению Адушка, за новую команду не возьмется пока текущею не выполнит(Я понимаю что Адушка работает последовательно с командами, и не имеет понятия поточности, хотя в нете есть много примеров). Кто подскажет в каком направление копать?
#include <Messenger.h>
#include <Stepper.h>
Messenger message = Messenger();
#define motorSteps 64
#define motorPin1 2
#define motorPin2 4
#define motorPin3 5
#define motorPin4 3
#define Led1 6
#define Led2 7
#define LedTEST 13
int incomingByte;
int steps;
int LedOn = 0;
Stepper myStepper(motorSteps, motorPin1,motorPin2, motorPin3, motorPin4);
void setup() {
Serial.begin(9600);
message.attach(messageCompletedString);
pinMode(LedTEST, OUTPUT);
}
void messageCompletedString() {
if ( message.checkString("f") ) {
steps = message.readInt();
myStepper.step(steps);
}
}
if (message.checkString("b")) {
steps = message.readInt();
if ( message.checkString("s") ) {
steps = message.readInt();
myStepper.step(-steps);
}
}
if (message.checkString("s")) {
//myStepper.stop = 1;
if (LedOn ==0 ){
digitalWrite(Led1, HIGH);
LedOn = 1;
}
else{
digitalWrite(Led1, LOW);
LedOn = 0;
}
}
} // end Void
void loop() {
while ( Serial.available( ) ) message.process(Serial.read( ) );
}
Команда B - крутим моторчик в перед
Команда F - крутим моторчик в назад
Команда S - Зажигаем светодиод.
Пример задачи при выполнен текущий команды(крутить мотор), зажечь/выключить Диод.
Волшебное слово - AccelStepper.
werxes, а в какой программе вы писали код для Winows?Если не трудно выложите полный код. Я сейчас пишу программу управления соленоидами и датчиками температуры /давления, и возникли проблемы с непрерывным чтением порта. Ищу подсказки в разных примерах!)