KY-032
Obstacle avoidance sensor module

ultimo aggiornamento 23 febbraio 2019


 

Indice

Descrizione

Il modulo KY-032 Obstacle avoidance sensor module  fa parte della serie "37 In 1 Sensor Module Board Set Kit For Arduino", si tratta di un sensore fotoelettrico IR per il rilevamento di ostacoli.
Di questo tipo di sensori,sono disponibili in due tipi: con 3 e 4 pin. La versione a 3 pin non ha la possibilità di essere abilitata / disabilitata

Collocando un ostacolo davanti al diodo di trasmissione/ricezione, l'uscita etichettata con "out" commuta in massa (low active).
La sensibilità del relè fotoelettrico può essere impostata con il potenziometro. La distanza di commutazione fino all'ostacolo può raggiungere ca. 7 cm. Inoltre, c'è un ingresso Enable ("EN") per attivare il modulo (LOW= attivo, high = inattivo). Se l'ingresso "EN" è inserito, il modulo si trova in modalità perennemente attiva, se il jumper viene rimosso, l'indicatore sull'ingresso "EN" sceglierà la funzione del sensore.

Il sensore ha un funzionamento simile al sensore SG035-SZ oppure FC-51, vedere la pagina Sensore anticollisione.

 

homotix

PCBA

OurPCB

 

 

Nota: Del sensore ne esistono due versioni, una che utilizza un chip NE555, descritto in questa pagina, e uno che utilizza un SN74LS00, il modulo è siglato IR-08H, i due modulo hanno un funzionamento analogo, ma differiscono per il connettore di uscita come riportato nelle figura sottostante.

Quello con SN74LS00, presenta partendo da sinistra verso destra: EN, Vcc, OUT, GND

Quello con NE555 presenta partendo da sinistra verso destra: GNG, Vcc, OUT, EN

In pratica i pin EN e GND risultano invertiti

 

 

 

 

Caratteristiche del sensore

 Tensione di lavoro:  DC 3.3V-5V
 Corrente di lavoro:  ≥ 20 mA
 Temperatura di esercizio:  -10 °C - +50 °C
 Distanza di rilevamento:  2-40 cm
 I/O Interface:  interfacce a 4 fili (- / + / S / EN)
 Segnale di uscita:  livello TTL (livello basso c'è un ostacolo, nessun ostacolo alto)
 Regolazione:  tramite trimmer
 Angolo effettivo:  35 °
 Dimensioni:  28mm × 23mm
 Dimensione del peso:  9g

Foto del modulo

Circuito elettrico del modulo

Il cuore del sensore è un chip NE555 configurato per generare un'onda quadra a 38kHz, sezione Trasmittente.
Il segnale a 38kHz viene utilizzato per illuminare un LED a infrarossi (IR) tipo IR333-A. La luce riflessa dal LED viene rilevata da un modulo ricevitore IR Vishay tipo HS0038B.
Il modulo ricevitore incorpora un filtro IR ottico esterno da 950 nm e un filtro passa-banda interno elettronico a 38 kHz che rende il modulo ricettivo solo alla luce IR che pulsa a quella frequenza.

 

 

Uno dei potenziometri sulla scheda (R6) viene utilizzato per mettere a punto il segnale esattamente a 38kHz. L'altro (R5) regola il duty cycle del segnale, che controlla la luminosità del LED IR.
Entrambe le regolazioni insieme influenzano la sensibilità o la gamma del dispositivo.
Per una corretta regolazione di R6 si dovrebbe utilizzare un oscilloscopio o un frequenzimetro. Altrimenti può essere lasciato centrato o come proveniente dal produttore.
Il modulo ricevitore include anche un AGC (Automatic Gain Control) che sopprimerà un segnale continuo di qualsiasi frequenza, inclusi 38kHz. Pertanto, è assolutamente necessario utilizzare il pin "EN" o "Enable" per il corretto funzionamento del dispositivo.
Se la funzione Enable viene utilizzata correttamente, il dispositivo raggiungerà la massima sensibilità.
Sulla maggior parte delle versioni di questo dispositivo, il LED dell'infrarosso (IR) è già coperto da un piccolo pezzo di tubo termoretraibile nero.

L'accensione del led Sled, evidenzierà la presenza di un ostacolo, mentre l'accensione del led Pled evidenzia la presenza della tensione di alimentazione

 


 

 

Schema realizzato con EasyEDA: Un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provalo è gratuito!

 

LM555-NE555 Timer

 
Piedinatura Datasheet Foto dell'integrato

HS0038B3VM - IR Receiver Modules for Remote Control Systems

1-OUT  2-GND 3-VCC

Piedinatura Datasheet Foto del sensore

IR333-A Diodo emittente ad infrarosso, 940 nm, GaAlAs

Piedinatura Datasheet Foto del diodo

Test con Multi Test Shield

Componenti utilizzati

Scheda Arduino UNO o equivalente Multi Test Shield Display OLED da 0.95"
 
KY-032 Obstacle avoidance sensor module KY-006 Small passive buzzer module  

Multi test Shield

Il Multi Test Shield è uno shield auto costruito realizzato per testare la serie di sensori contenuti nella confezione "37 in 1 Sensor Module Board Set" compatibile con la scheda Arduino UNO R3 originale e relativi cloni.
Sulla scheda sono disponibili molti connettori che risultano già opportunamente collegati con le porte digitali o analogiche di Arduino.
In realtà, la scheda, oltre ai sensori presenti nel kit "37 in 1 Sensor Module Board Set" permette di testare altri sensori, servo, ecc per un totale di oltre 50 tipi, la presenza di un connettore  bus I2C espande ulteriormente la tipologia di dispositivi che lo shield permette.
Sulla scheda è anche presente un connettore per il collegamento di un piccolo Display OLED da 0.95"risoluzione 96x64 pixel, 65536 Colori, su di esso potranno essere mostrati dei messaggio o i valori misurati dai sensori.

Posizionamento del modulo sullo Shield

Per l'utilizzo occorrerà semplicemente posizionare i moduli nei relativi connettori. Si utilizzano i seguenti connettori:

In questo modo i pin dei relativi moduli risulteranno automaticamente collegati ai relativi pin di Arduino

Schema equivalente

 

 

Programma di test del sensore

Il programma  resterà in attesa che un ostacolo sia posto di fonte al sensore, in caso sia rilevato, si accenderà il led Sled posto sul  modulo, sul display sarà mostrato il messaggio "TROVATO OSTACOLO" e il buzzer emetterà un tono a 1000 Hz per 1/2 secondo.

NOTA: la distanza a cui viene rilevato l'ostacolo potrà essere variata ruotando il trimmer posto sotto il Jumper EN, per quanto riguarda quest'ultimo assicurarsi che il Jumper sia presente.


shield_test_code_KY-032.ino

/*####################################################################
  FILE: shield_test_code_KY-032.ino
  VERSION: 1.0
  Descrizione: Programma per test modulo
  KY-032 Obstacle-detect module

  Creato il 18/2/2019 da Adriano Gandolfo
  Sito web http://www.adrirobot.it
  Blog http://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
  #################################################################### */

// Definizione dei pin di collegamento
#define sclk 13
#define mosi 11
#define cs   10
#define rst  9
#define dc   8

#define sensor 17 // seleziona il pin per il sensore KY-032
#define buzzer 3 // seleziona il pin per il buzzer KY-006

// Definizione dei colori
#define BLACK           0x0000
#define BLUE            0x001F
#define RED             0xF800
#define GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0
#define WHITE           0xFFFF

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>

Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);

void setup()   {
  Serial.begin(9600); // Initialization serial output
  display.begin();
  pinMode(sensor, INPUT); // Initialization sensor pin
  pinMode(buzzer, OUTPUT); // Initialization buzzer pin

  // Messaggio iniziale
  display.fillScreen(BLACK);
  display.setTextSize(1);
  display.setTextColor(BLUE);
  display.setRotation(2); //Ruota display
  display.setCursor(0, 0);
  display.println("www.adrirobot.it");
  display.println("");
  display.setTextColor(GREEN);
  display.println("Multitest shield");
  display.println("");
  display.println("    TEST FOR   ");
  display.println(" 37 IN 1 SENSOR ");
  delay(2000);
  display.fillScreen(BLACK);
  display.setTextColor(YELLOW);
  display.setCursor(0, 0);
  display.println("   TEST MODULO  ");
  display.println("");
  display.println("     KY-032 ");
  delay (200);
}

void loop()
{
  bool val = digitalRead (sensor) ; // The current signal at the sensor will be read

  if (val == HIGH) // If a signal is detected, the LED will light up.
  {
    Serial.println("Nessun ostacolo");
    display.fillRect(0, 45, 96, 15, BLACK);
    display.setCursor(0, 45);
    display.setTextColor(GREEN);
    display.print("Nessun ostacolo");
  }
  else
  {
    Serial.println("Trovato ostacolo");
    display.fillRect(0, 45, 96, 15, BLACK);
    display.setCursor(0, 45);
    display.setTextColor(RED);
    display.print("TROVATO OSTACOLO");
    tone(buzzer, 1000);   //suona una nota alla frequenza di 1000Hz
    delay (500);        // Attende 1/2 secondo
    noTone(buzzer);      //Arresta l'emisisone della nota
  }
  Serial.println("------------------------------------");
  delay(500); // Pausa di 500 ms

}

 

Elenco revisioni:

23/02/2019

Inserito schema e programma di test

17/02/2019

Emissione preliminare
Private Policy Cookie Policy Termini e Condizioni