Ir ao conteúdo
  • Cadastre-se
Igor Conde

Motor de passo 5v e relé

Posts recomendados

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
Este tópico está parado há muito tempo. Certifique-se que a sua mensagem tem a ver com o tema sendo discutido. Obrigado.

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restore formatting

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!