Exibições: 147

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Helio Takeo Aisawa em 14 janeiro 2018 às 14:52

boa tarde Gustavo, tudo bem? estou fazendo um projeto de portão automático, funcionando da seguinte maneira... acesso por RFId, abertura de um portão deslizante comandada por um Motor de Passo, o problema surge quando vou programar um sensor do tipo E18-D80NK em que não consigo parar o Motor quando o veículo está passando pelo portão... gostaria de sua ajuda se for possível...

grato pela atenção...

segue o código do programa até o momento...>>>

#include <SPI.h>
#include <MFRC522.h>
#include <AccelStepper.h>
#define HALFSTEP 8
#define sensor 7 //Define sensor infra-vermelho como 7

// Definições do pino do motor
#define motorPin1 2 // IN1 on the ULN2003 driver 1
#define motorPin2 3 // IN2 on the ULN2003 driver 1
#define motorPin3 4 // IN3 on the ULN2003 driver 1
#define motorPin4 5 // IN4 on the ULN2003 driver 1

//Inicialize com a sequência de pinos IN1-IN3-IN2-IN4 para usar o AccelStepper com 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);

#define SS_PIN 10
#define RST_PIN 9
// Definicoes pino modulo RC522
MFRC522 mfrc522(SS_PIN, RST_PIN);

// Leds indicadores acesso liberado ou negado
int led_liberado = 6;
int led_negado = 1;

int pino_sensor = 7;
int estado_sensor = 0;

void setup() {
pinMode(led_liberado, OUTPUT);
pinMode(led_negado, OUTPUT);
stepper1.setMaxSpeed(1000.0);
stepper1.setAcceleration(100.0);
stepper1.setSpeed(100);
stepper1.moveTo(2048); // definição do número de passos _ 1 volta= 2048 passos

// Inicia a serial
Serial.begin(9600);
pinMode(sensor, INPUT); //Configura o pino 7 como entrada

// Inicia SPI bus
SPI.begin();
// Inicia MFRC522
mfrc522.PCD_Init();
// Mensagens iniciais no serial monitor
Serial.println("Aproxime o seu cartao do leitor...");
Serial.println();
}//--(end setup )---

void loop() {

// Aguarda a aproximacao do cartao
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Seleciona um dos cartoes
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
// Mostra UID na serial
Serial.print("UID da tag :");
String conteudo= "";
byte letra;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Mensagem : ");
conteudo.toUpperCase();

// Testa se o cartao1 foi lido
if (conteudo.substring(1) == "9B 66 84 59"){
//Muda a direção quando o stepper atinge a posição de destino
stepper1.runToNewPosition(-2048); // rotação sentido anti-horário

Serial.println("Cartao1 - Acesso liberado !");
Serial.println();
delay(1000);
{
stepper1.runToNewPosition(2048); // rotação sentido horário
delay(2000);
}

}

else {
Serial.println(" Accesso negado...!");
delay(1000);
}
stepper1.run();
}

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço