Freeduino 2009 + Motor Shield + Джойстик + замок
- Войдите на сайт для отправки комментариев
Вс, 09/02/2014 - 17:52
Добрый вечер!
Есть плата Freeduino 2009 http://freeduino.ru/arduino/freeduino2009.html
Motor Shield http://www.freeduino.ru/arduino/mshield.html
4х позиционный джойстик без фиксации отдаленно напоминает http://www.quartz1.com/price/model.php?group=15018&ext=10519
и замок
Необходимо с помощью джойстика переключать замок. Питание подается внешнее на плату Motor Shield 12V
Написал код для проверки замка, все работает
#include <AFMotor.h>
AF_DCMotor motor(3);
int led = 13;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop()
{
motor.setSpeed(255);
motor.run(FORWARD);
delay(150);
motor.run(RELEASE);
delay(2);
motor.setSpeed(255);
motor.run(BACKWARD);
delay(150);
motor.run(RELEASE);
}
Но когда пытаюсь первоначально считать сигнал с джойстика, а потом переключить замок ничего не выходит(((
#include <AFMotor.h>
AF_DCMotor motor(3);
//int led = 13;
void setup() {
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
pinMode(4, INPUT);
digitalWrite(4, HIGH);
pinMode(5, INPUT);
digitalWrite(5, HIGH);
// Serial.begin(9600);
// pinMode(led, OUTPUT);
// motor.setSpeed(128);
}
void loop()
{
if (digitalRead(2) != LOW)
{
delay(1);
Serial.write(87);
//Serial.println("UP");
// Serial.println("Motor test!");
motor.setSpeed(255);
motor.run(FORWARD);
delay(1050);
motor.run(RELEASE);
delay(2);
motor.setSpeed(255);
motor.run(BACKWARD);
delay(1050);
motor.run(RELEASE);
delay(2);
}
}
в коде описано только одно движение джойстика вверх.
Надеюсь на Вашу помощь
Я уже разобрался.
#include <AFMotor.h> AF_DCMotor motor(3); int led = 13; void setup() { pinMode(led, OUTPUT); digitalWrite(2, HIGH); digitalWrite(3, HIGH); Serial.begin(9600); } void loop() { if (digitalRead(2)==LOW) { motor.setSpeed(255); motor.run(BACKWARD); delay(150); motor.run(RELEASE); delay(2); } if (digitalRead(3)==LOW) { motor.setSpeed(255); motor.run(FORWARD); delay(150); motor.run(RELEASE); delay(2); } }