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);
}
}
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 !!!
Tags:
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?
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.
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 7,5 graus por passo => 360 / 7,5 = 48 passos por volta (stepsPerRevolution)
etc.
Sugiro estudar a biblioteca Stepper:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por