Fala galera do Labdegaragem ...

Estou me aventurando agora no arduino, e tenho um projeto que contém 2 motores de Passo (unipolar) e 1 servomotor;

Preciso de uma dica, ou uma base para uma programação para que:

Servomotor gire fique em duas posições: 0º e 180º 

Motor de passo vai rodar  +- 25º para a direita e parar quando o Servomotor estiver a 0º

Motor de passo vai rodar +-25º para a esquerda quando o Servomotor estiver a 180º

Segue a programação que eu já fiz e a foto montada no protoboard, somente para o teste.

Agradeço desde já!

#include <Stepper.h>
#include <Servo.h>

const int stepsPerRevolution1 = 48;
Stepper myStepper1(stepsPerRevolution1,1,3,2,0);

const int stepsPerRevolution2 = 200;
Stepper myStepper2(stepsPerRevolution2,5,7,13,6);

Servo myservo;

int pos = 90; 
int time = 3;
int time2 = 10;

int botao2 = 12; // BOTAO MOTOR DE PASSO1 - IDA
int botao = 11; // BOTAO MOTOR DE PASSO1 - VOLTA
int bservo = 10; // BOTAO SERVOMOTOR
int botao3 = 8; // BOTAO MOTOR DE PASSO2

void setup(){
myStepper2.setSpeed(110); // VELOCIDADE MOTOR MAIOR
myStepper1.setSpeed(70); // VELOCIDADE MOTOR MENOR

pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(botao3,INPUT);

pinMode(bservo,INPUT);

pinMode(botao2,INPUT);
pinMode(botao,INPUT);
pinMode(13,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);

digitalWrite(12,1);
digitalWrite(11,1);
digitalWrite(10,1);
digitalWrite(8,1);

myservo.attach(9); // PINO 3 NA ENTRADA DO SERVO

}

void loop() {

// ************** MOTOR DE PASSO 1 **************

int botao2 = digitalRead (12);
int botao = digitalRead (11);

if (botao == 0 ){
myStepper2.step(stepsPerRevolution2);
delay(0);
}

else {}

if (botao2 == 0){
myStepper2.step(-stepsPerRevolution2);
delay(0);
}

else {

digitalWrite(13,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);

}

// ************** SERVOMOTOR **************

int bservo = digitalRead (10);

if (bservo == 1){
myservo.write(0); 
}

else {
myservo.write(180); 
}

// ************** MOTOR DE PASSO 2 **************

int botao3 = digitalRead (8);

if (botao3 == 0) {

myStepper1.step(stepsPerRevolution1);
delay(1000);
}

else {
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);

}
}

Exibições: 455

Anexos

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço