Pessoal ,
Estou montando um projeto que passar um objeto no sensor, o arduino acione um solenóide.
O endstop que quero utilizar com arduino é o (http://produto.mercadolivre.com.br/MLB-765599126-kit-c-3-un-endstop...)
Mas acho que não estou sabendo trabalhar com isso .
Alguém tem uma ideia de como faço para este endstop funcionar?
Ligo os pinos;
V = 5v
S = 7
G = (-)
O código teste é o
// Programa : Teste sensor óptico reflexivo
// Autor : Arduino e Cia
int objeto = 0;
void setup()
{
pinMode(7, INPUT); //Pino ligado ao coletor do fototransistor
Serial.begin(9600);
}
void loop()
{
objeto = digitalRead(7);
if (objeto == 0)
{
Serial.println("Objeto : Detectado");
}
else
{
Serial.println("Objeto : Ausente !");
}
}
abs, Bruno.
Tags:
Não parece ser um sensor do tipo reflexivo, mas sim um sensor do tipo barreira.
Como você testou o sensor?
sim... comprei 6 destes endstop, mas ao passar o bloqueio, não acontece nada.
Tentei também o código abaixo, mas nada.
// The pin the encoder is connected
int encoder_in = 4;
// Initialize the counter
volatile unsigned int pulses = 0;
void count() {
// This function is called by the interrupt
pulses++;
}
void setup() {
pinMode(encoder_in, INPUT);
attachInterrupt(0, count, RISING);
Serial.begin(9600);
}
void loop() {
// Here you can output your counter value e. g. once a second
//
Serial.println(pulses);
delay(1000);
}
Você consegue medir a tensão na saída do sensor, nas duas condições, com e sem bloqueio? Sem utilizar o Arduino.
Se possível coloque uma foto de seu sensor, de forma a mostrar os terminais.
Não tenho como medir agora.
O sensor é o TSCT2103
Então use o seu Arduino como um voltímetro.
https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
E veja se ocorre alguma diferença nos valores, mas também pode aparecer muito ruido e esconder o verdadeiro valor.
Uma dica, quando for fotografar objetos pequenos, afaste um pouco da lente da camera.
Para que a imagem fique focada. Veja no display da camera se a imagem esta boa, antes de disparar a foto.
Utilizei até este código abaixo para teste.... e nada... só o led aceso.
// Compute the RPM of a simple DC Motor using a photomicrosensor(PMS)
#include
#define PMS_PIN 4 // Pin for signal from Photomicrosensor
#define LED_PIN 13 //Using Arduino's Internal LED; just as an indicator
boolean counted=false;
int t1=0,t2=0;
int hits=0;
int rps=0;
void setup(){
pinMode(PMS_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop(){
t2 = millis();
if(t2 >= (t1 + 1000)){
rps = hits;
hits = 0;
t1=t2;
}
if(digitalRead(PMS_PIN) == HIGH){
if(!counted){
counted = true;
hits++;
}
} else {
counted = false;
}
digitalWrite(LED_PIN, digitalRead(PMS_PIN));
Serial.println(digitalRead(PMS_PIN));
}
Seu programa esta errado:
void setup(){
pinMode(PMS_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
O pino 4 PMS_PIN é um entrada (input) e não uma saída( output)
pinMode(PMS_PIN, INPUT);
https://www.arduino.cc/en/Reference/pinMode
Como esta testando o sensor? Com algum disco encoder de motor ?
Verdade Murta, mesmo assim não funciona...
Este foi só um teste que peguei para ver com funciona o endstop, pois preciso emprega-lo num sistema de catracas que possui mecanismos de travamento com sensor ótico
Obrigado pela ajuda.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por