Boa noite garagistas, minha duvida essa semana é sobre motores de passo. A pouco tempo tento fazer um carrinho andar como 2 motores de passo ai fiz um codigo para ele ficar girando e funcionou perfeitamente as duas rodas giravam juntas, o driver que uso é o ULN2003 :

#include <Stepper.h>

const int stepsPerRevolution = 400;
Stepper motor(stepsPerRevolution, 8, 9 ,10, 11);
Stepper motor1(stepsPerRevolution, 4,5,6,7);
int steps = 0;

void setup(){
}
void loop(){


motor1.step(-1);
motor1.setSpeed(70);
motor.step(-1);

motor.setSpeed(70);
}

 mas dai coloquei tela lcd e o sensor ultrasonico ai o codigo ficou assim:

#include <LiquidCrystal.h> //Inclui a biblioteca do LCD
#include <Stepper.h>

const int stepsPerRevolution =400;
Stepper motor(stepsPerRevolution, 8, 9 ,10, 11);
Stepper motor1(stepsPerRevolution, 4,5,6,7);
int steps = 0;
LiquidCrystal lcd(32, 30, 28, 26, 24, 22); //Configura os pinos do Arduino para se comunicar com o LCD

int temp;
int trig = 34;
int echo = 36;
int ledpinv = 38;
int ledpinm = 40;

void setup()
{
pinMode(ledpinv, OUTPUT);
pinMode(ledpinm, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
lcd.print("distancia");
lcd.begin(16, 4); 
lcd.setCursor(0, 0); 
lcd.print("O Carlos e demais!");

lcd.setCursor(0, 1); 

lcd.print("versao 1.0 "); 
lcd.setCursor(0,2);
lcd.print("carlosfilhoh");
lcd.setCursor(0,3);
lcd.print("distancia =");

}

void loop()
{
float tempo, cm;
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
delayMicroseconds(2);
tempo = pulseIn(echo, HIGH); 
cm = tempo/29/2;
lcd.setCursor(13, 3); 
lcd.print(cm); 
delay(100);
if (cm <= 30)
{
motor1.step(1);
motor1.setSpeed(70);

}
else
{

motor1.step(-1);
motor1.setSpeed(70);
motor.step(-1);
motor.setSpeed(70);
}

}

undefined

sei que nao é a alimentaçao, mais tenho certeza que é o codigo que estou fazendo errado se alguem puder me ajudar com esse codigo ,eu so quero que os dois funcionem juntos e nao um de cada vez 

se alguem puder me ajudar ficarei muito grato !!!

Exibições: 1118

Responder esta

Respostas a este tópico

Eu também estou usando esses motores de passo. Mas pq vc usou o valor 400 passos por volta. eu tenho achado 500 passos por volta. A velocidade maxima dele não é 60rpm?

Vc tentou usar um conjunto só de pinos ligado em paralelo para os dois motores?

Como faço isso ? Me ajude sou iniciante sei de nada de eletrônica! Por favor .

Já estudou ligaćão em série e ligaćão em paralelo em paralelo?

É a mesma coisa: se vc ligar 1 lampada na tua casa, ela acende. Se ligar duas, elas acendem, s´o que mais fracas. Se ligar 3, 4, 5, sempre em série, vai ver o brilho delas cada vez menor. E se uma queimar no meio, todas apagam porque a corrente será cortada.

Mas se ligar as mesmas lampadas em paralelo, pode ligar 50 lâmpadas que o brilho delas será o mesmo, todas ligam ao mesmo tempo e, se uma delas queimar, as outras permanecem acesas porque a corrente não foi cortada entre elas e a fonte de alimentaćão.

E quando eu querer que so um motor funcione ?

Chaves lógicas: AND OR NOT XOR XAND

Em paralelo? Se usar as mesmas cores dos fios, um motor irá para frente e outro para trás.

Não recomendo. Como vai manobrar?

Para informar stepsPerRevolution (passos por volta), veja as especificações do motor 

se for 1,8 graus por passo => 360 / 1,8 = 200 passos por volta (stepsPerRevolution)

se for 7,5 graus por passo => 360 / 7,5 = 48 passos por volta  (stepsPerRevolution)

etc.

Sugiro estudar a biblioteca Stepper:

http://arduino.cc/en/Reference/StepperExample

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço