segunda-feira, 8 de abril de 2019

Utilizando o Sensor Reflexivo TCRT5000 para acionar um Servo motor


     Neste artigo vamos aprender a utilizar o Sensor Reflexivo IR para acionar um servo motor em conjunto com o Arduino Uno. O sensor está sendo usado como sensor de presença, qualquer objeto que se aproxima do sensor é reconhecido e aciona o servo.

 
Sobre os principais componentes:


     O TCRT5000 é um sensor reflexivo que possui embutido um emissor infravermelho e um fototransistor. O emissor é um led infravermelho que emite um sinal nessa faixa do espectro. Já o fototransistor é o receptor que faz a leitura do sinal refletido. A distância máxima de detecção não é grande, ficando em torno de 25mm (dois centímetros e meio), o que pode limitar um pouco a sua aplicação. O fototransistor vem com um filtro de luz ambiente, o que maximiza a identificação do feixe infravermelho refletido.





    O Micro Servo 9g SG90, possui ângulo de rotação de 180 graus e possuí um cabo de 3 pinos referente a alimentação/controle.

Especificações:

– Voltagem de Operação: 3,0 – 7,2V
– Ângulo de rotação: 180 graus
– Velocidade: 0,12 seg/60Graus (4,8V) sem carga
– Torque: 1,2 kg.cm (4,8V) e 1,6 kg.cm (6,0V)
– Temperatura de Operação: -30C ~ +60C
– Tipo de Engrenagem: Nylon
– Tamanho cabo: 245mm
– Dimensões: 32 x 30 x 12mm
– Peso: 9g






Componentes necessários:

1 Arduino Uno;
 jumpers M&M;
 jumpers M&F;
1 TCRT5000;
1 Micro Servo SG90 9G,
1 Resistor de 220 ohms,
1 Resistor de 330 ohms,
1 Resistor de 39 K ohms,

Estes e outros componentes podem ser adquiridos neste link AQUI !

Montagem:




Programando o Arduino:

     
     O código abaixo fará com que qualquer objeto que se aproxime do sensor seja reconhecido e acione o servo, fazendo o girar 60º e voltar.

     Copie o código e cole na tela do Arduino IDE.

Código:



#include <Servo.h>

Servo meuServo;
int botao = 7; // define pino 7 como botão

void setup()
{
  pinMode(botao, INPUT_PULLUP); // define o botão como saída
}

void loop()
{
  meuServo.attach(9);  // o pino 9 é ligado ao servo
  if(digitalRead(botao) == LOW)
  {
    for(int angulo=0; angulo<=60; angulo++) // Aumenta o angulo do servo ate chegar em 60 graus
    {
      meuServo.write(angulo);
      delay(10);
    }
    for(int angulo=60; angulo>=0; angulo--)// Diminui o angulo do servo
    {
      meuServo.write(angulo);
      delay(10);
    }
  }
  meuServo.detach();
}


     Pratique mudando o ângulo de giro do servo. Você pode usar o giro do servo para acionar algo.

Os componentes deste tutorial pode ser comprados AQUI!

Nenhum comentário:

Postar um comentário