Ir ao conteúdo
  • Cadastre-se

lucassk8

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Ola, sou iniciante em arduino estou montando um projeto de uma cortina automatizada via controle remoto (IR) mas estou tendo problemas na parte do fim de curso... o esquema é o seguinte.. acionando o a tecla 1 do controle a cortina abre a tecla 2 fecha e a 3 é um " stop " em algum angulo que o usuario queira , o problema é que quando o motor chega no fim de curso ele para ..porém enquanto o fim de curso esta ativado ele nao deixa mais o motor girar no sentido contrario.. pois o sensor esta mandando o motor ficar parado... se alguem puder me ajudar fico grato ! estou usando essa programaçao : #include <IRremote.h> #include <AccelStepper.h> int sensor_final = 2; int estadosf ; int velocidade_motor = 250; int aceleracao_motor = 150; int sentido_horario = 0 ; int sentido_antihorario = 0 ; int RECV_PIN = 11; float armazenavalor; int pino_enable = 10; IRrecv irrecv(RECV_PIN); decode_results results; AccelStepper motor1(1,7,4); void setup() { pinMode(pino_enable, OUTPUT); pinMode(sensor_final, INPUT_PULLUP); Serial.begin(9600); irrecv.enableIRIn(); // Inicializa o receptor IR motor1.setMaxSpeed(velocidade_motor); motor1.setSpeed(velocidade_motor); motor1.setAcceleration(aceleracao_motor); Serial.println("Digite 1, 2 ou 3 e 3..."); } void loop() { estadosf = digitalRead (sensor_final); if (estadosf == LOW ) { Serial.print(" sensor "); digitalWrite (pino_enable, HIGH); } if (irrecv.decode(&results)) { Serial.print("Valor lido : "); Serial.println(results.value, HEX); armazenavalor = (results.value); if (armazenavalor == 0xFF6897) //Verifica se a tecla 1 foi acionada { Serial.println("Numero 1 recebido - Girando motor sentido horario."); digitalWrite(pino_enable, LOW); sentido_horario = 1; sentido_antihorario = 0; } if (armazenavalor == 0xFF9867) //Verifica se a tecla 2 foi acionada { Serial.println("Numero 2 recebido - Girando motor sentido anti-horario."); digitalWrite(pino_enable, LOW); sentido_horario = 0; sentido_antihorario = 1; } if (armazenavalor == 0xFF02FD) //Verifica se a tecla OK foi acionada { Serial.println("Numero 3 recebido - Parando motor..."); sentido_horario = 0; sentido_antihorario = 0; motor1.moveTo(0); digitalWrite(pino_enable, HIGH); } irrecv.resume(); //Le o próximo valor } // Move o motor no sentido horario if (sentido_horario == 1) { motor1.moveTo(10000); } // Move o motor no sentido anti-horario if (sentido_antihorario == 1) { motor1.moveTo(-10000); } // Comando para acionar o motor no sentido especificado motor1.run(); }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!