Ir ao conteúdo
  • Cadastre-se
Igor Conde

Motor de passo 5v e relé

Recommended Posts

Olá venho aqui pedir uma ajuda.

Estou fazendo um projeto para o final do meu curso e o projeto é o seguinte:

Tenho que fazer uma janela ser movida por um motor de passo pela internet, mas o quando eu aperto o botão o motor da uma vibrada, mas não se move.

 

Motor de Passo + Driver Uln2003:

- Modelo: 28BYJ-48 (datasheet)
- Driver: ULN2003 (datasheet)
- Tensão: 5VDC
- Número de fase: 4    
- Número de vias: 5
- Caixa de Redução: 1/64
- Diâmetro do eixo: 3mm
- Ângulo do Passo: 5,625°/64 ~ 0,088°
- Frequência: 100Hz
- Resistência DC: 50Ω ± 7%(25℃) 
- Torque: 34,3 mN.m

 

Abaixo o meu programa:

 

#include <SPI.h>
#include <Ethernet.h>
#include <CustomStepper.h>
#include <Stepper.h>

String readString;
 
int pino_rele1 = 3;
int pino_rele2 = 4;
boolean ligado = true;
boolean ligado_2 = true;
 
//informações de endereco IP, gateway, mascara de rede
byte mac[] = { 0xA4, 0x28, 0x72, 0xCA, 0x55, 0x2F };
byte ip[] = { 192, 168, 0, 6 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
 
EthernetServer server(80);

const int stepsPerRevolution = 500; 

CustomStepper stepper(8, 9, 10, 11, (byte[]){8, B1000, B1100, B0100, 
B0110, B0010, B0011, B0001, B1001}, 4075.7728395, 12, CW);

//CustomStepper stepper1(5, 6, 12, 13, (byte[]){8, B1000, B1100, B0100, 
//B0110, B0010, B0011, B0001, B1001}, 4075.7728395, 12, CW);

//boolean roda1 = false;
//boolean roda2 = false;
 
void setup()
{
  Serial.begin(9600);
  pinMode(pino_rele1, OUTPUT);
  pinMode(pino_rele2, OUTPUT);
 
  //Inicializa Ethernet Shield
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
 
  Serial.println("FILIPEFLOP - Automacao Residencial"); 
 
  //Desliga os dois reles
  digitalWrite(pino_rele1, HIGH);
  digitalWrite(pino_rele2, HIGH);


  //motor
  /*Biblioteca CustomStepper*/
  //Numero de passos por rotacao 
  stepper.setSPR(4075.7728395);
  //stepper1.setSPR(4075.7728395);
  //Velocidade do motor 
  stepper.setRPM(12);
  //stepper1.setRPM(12);
}
 
void loop()
{
  EthernetClient client = server.available();

  if (client) {
    while (client.connected())
    {
      if (client.available())
      {
        char c = client.read();
        if (readString.length() < 100) {
          readString += c;
        }
        if (c == '\n')
        {
          //Controle do rele1
          Serial.println(readString);
          //Liga o Rele 1
          if (readString.indexOf("?ligar") > 0)
          {
            digitalWrite(pino_rele1, LOW);
            Serial.println("Rele 1 Ligado");
            ligado = false;

            delay(2000);  
            stepper.setDirection(CW);
            stepper.rotate(2);
          }
          else
          {
            //Desliga o Rele 1
            if (readString.indexOf("?desligar") > 0)
            {
              digitalWrite(pino_rele1, HIGH);
              Serial.println("Rele 1 Desligado");
              ligado = true;

              delay(2000);  
              stepper.setDirection(CCW);
              stepper.rotate(2);
            }
          }
 
          //Controle do rele2
          Serial.println(readString);
          //Liga o Rele 2
          if (readString.indexOf("?2_ligar") > 0)
          {
            digitalWrite(pino_rele2, LOW);
            Serial.println("Rele 2 Ligado");
            ligado_2 = false;
          }
          else
          {
            //Desliga o Rele 2
            if (readString.indexOf("?2_desligar") > 0)
            {
              digitalWrite(pino_rele2, HIGH);
              Serial.println("Rele 2 Desligado");
              ligado_2 = true;
            }
          }
          readString = "";
 
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<html>");
          client.println("<head>");
          client.println("<title>ORIZON</title>");
          client.println("<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>");
          client.println("<meta name='viewport' content='width=720, initial-scale=0.5' />");
          client.println("<link rel='stylesheet' type='text/css' href='http://img.filipeflop.com/files/download/automacao/automacao_residencial.css' />");
          client.println("<script type='text/javascript' src='http://img.filipeflop.com/files/download/automacao/automacao_residencial.js'></script>");
          client.println("</head>");
          client.println("<body>");
          client.println("<div id='div1'>Rele 1</div>");
          client.println("<div id='div2'>Rele 2</div>");
          client.print("<div id='rele'></div><div id='estado' style='visibility: hidden;'>");
          client.print(ligado);
          client.println("</div>");
          client.println("<div id='botao'></div>");
          client.println("<div id='botao_2'></div>");
          client.print("<div id='rele_2'></div><div id='estado_2' style='visibility: hidden;'>");
          client.print(ligado_2);
          client.println("</div>");
          client.println("</div>");
          client.println("<script>AlteraRele1()</script>");
          client.println("<script>AlteraRele2()</script>");
          client.println("</div>");
          client.println("</body>");
          client.println("</head>");
 
          delay(1);
          client.stop();
        }
      }
    }
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

'tentei te entendeeêr.. não deu'. De fato penso que motor de passo e relé quase não têm conexão.

Penso que pra rodar o motor de passo você tem que enviar os dados...

20 horas atrás, Igor Conde disse:

B1000, B1100, B0100, 
B0110, B0010, B0011, B0001, B1001

....num port, é isso? Pode mencionar onde o programa põe isso pra fora?Preguiça de procurar. o que significa o tal step rotate(2)? sabe como funciona um motor de passo? Sabe o que está fazendo e conhece todas as funções do seu sistema? .. nem eu. Bem foi a máxima aproximação que tivemos pois não acho esta linguagem muito apetitosa. Experimente publicar o esquema elétrico. Pode haver alguma cagadinha nele também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×