Tags:
voce tem um botao pra abrir e outro para fechar?
Tenho sim ele envia um caracter pela porta serial....
se for da forma que eu estou a pensar, acho que pode usar uma variavel para guardar o estado da gaveta 1 aberta 0 fechada.
do tipo assim por alto e de alguem que não percebe mt de programação
Se botao_abrir = Pressionado e estado_gaveta = 0 então
abre gaveta;
estado_gaveta = 1;
}
Se botao_ fechar = Pressionado e estado_gaveta = 1 entao
fecha gaveta;
estado_gaveta = 0;
}
é assim uma ideia por alto, não custa tentar.
Pois eh num deu certo aki vai o codigo...
#include <Stepper.h>
#define STEPS 48
Stepper motor(STEPS, 3, 4, 5, 6);
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
Serial.begin(9600);
}
void loop()
{
char c = Serial.read();
if(c == 'l')
motor.step(100);
motor.setSpeed(30);
delay(100);
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
if(c == 'r')
motor.step(-100);
motor.setSpeed(30);
delay(100);
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
}
veja se isso funciona:
#include <Stepper.h>
#define STEPS 48
Stepper motor(STEPS, 3, 4, 5, 6);
int lugar = 0;
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
Serial.begin(9600);
}
void loop()
{
char c = Serial.read();
if(c == 'l' && lugar == '0')
motor.step(100);
motor.setSpeed(30);
delay(100);
lugar = 1;
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
if(c == 'r' && lugar == '1')
motor.step(-100);
motor.setSpeed(30);
delay(100);
lugar = 0;
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
}
Ixi naum abre nem fecha agora =/
#include <Stepper.h>
#define STEPS 48
Stepper motor(STEPS, 3, 4, 5, 6);
int lugar = 0;
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
Serial.begin(9600);
}
void loop()
{
char c = Serial.read();
if (c == 'l') {
if (lugar == '0') {
motor.step(100);
motor.setSpeed(30);
delay(100);
lugar = 1;
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
}
}
if (c == 'r') {
if (lugar == '1') {
motor.step(-100);
motor.setSpeed(30);
delay(100);
lugar = 0;
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
}
}
é tbm naum rolou, acho q pelo codigo naum da pra fazer isso =/
você ao fazer,
digitalWrite(6,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
não está a colocar as bobinas do motor em LOW?
elas para estarem ativas não deviam estar em HIGH?
Testei com high tbm nd =/
Tira esse codigo porque estás a usar a biblioteca stepper, não precisas de ativares as bobines individualmente, experimenta desta forma:
#include <Stepper.h>
const int stepsPerRevolution = 48;
Stepper myStepper(stepsPerRevolution, 3, 4, 5, 6);
int estado_gaveta= 0;
void setup() {
Serial.begin(9600);
myStepper.setSpeed(30);
}
void loop() {char c = Serial.read();
if (c == 'l') {
if (lugar == '0') {
myStepper.step(100);
estado_gaveta = 1;
}}
delay(500);
if (c == 'r') {
if (lugar == '1') {
myStepper.step(100);
estado_gaveta = 0;
}}
é mano acho a ideia é usar um sensor msm =/
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por