KY-010
Optical broken module

ultimo aggiornamento 10 marzo 2019


 

Indice

Descrizione

Il modulo KY-010 Optical broken module o photo interrupter module fa parte della serie "37 In 1 Sensor Module Board Set Kit For Arduino" il modulo è formato nella parte anteriore  da un Photomicrosensor tipo EE-SX1103 (al cui interno è presente una coppia di LED IR trasmettitore e da un fototransistor. ricevitore ottico), e due resistori (1 kΩ e 33 Ω) nella parte posteriore.

Quando il fascio luminoso emesso dal LED IR è bloccato a causa per esempio dall'alternanza slot del livello logico disco un encoder sia hanno dei cambiamenti di luminosità sul fototransistor. Questo cambiamento nel livello di logica può essere percepito dal microcontrollore.

 

homotix

 

Foto del modulo

Caratteristiche del modulo

Tensione di alimentazione

 3.3 ~ 5V

Dimensioni

18.5mm x 15mm

Circuito elettrico del modulo

Lo schema elettrico è formato essenzialmente dal foto micro sensore tipo EE-SX1103, questo tipo di sensore si compone di LED IR e un fototransistor montati uno di fronte all'altro racchiusi in un contenitore plastico, viene usato un fascio di raggi infrarossi, in quanto questa radiazione difficilmente si confonde con i disturbi generati da fonti luminose ambientali.

Il LED IR è un diodo ad emissione luminosa (acronimo inglese di Light Emitting Diode) in pratica è un dispositivo optoelettronico che sfrutta le proprietà ottiche di alcuni materiali semiconduttori per produrre fotoni attraverso il fenomeno dell'emissione spontanea ovvero a partire dalla ricombinazione di coppie elettrone-lacuna.   In questo caso l'emissione avviene nel campo delle radiazioni infrarosse.   Nel sensore EE-SX1103 il picco è a 950 nm.
Un fototransistor in sostanza è un transistor a giunzione bipolare realizzato in modo che la luce possa raggiungere la giunzione del collettore di base.
l fototransistor hanno prestazioni simili a quelle di un fotodiodo, ma con una sensibilità alla luce molto maggiore, grazie al fatto che gli elettroni che sono generati dai fotoni nella giunzione del collettore di base sono iniettati nella base e la corrente così prodotta viene successivamente amplificata dalle funzioni del transistor. Per contro un fototransistor ha una risposta nel tempo molto meno rapida del fotodiodo.
Sono presenti due resistenze, R2 del valore di 33 Ω limita la corrente di alimentazione che scorre sul led IR mentre R1 dal valore di 1 kΩ ha la funzione di pull-up per evitare fluttuazioni di valori di tensione in uscita sul collettore del fotodiodo.

EE-SX1103 Photomicrosensor (Transmissive)

Piedinatura Datasheet Foto

 

KY-010 Schema di collegamento

Collegare la linea di alimentazione (centrale) e GND (sinistra) a + 5 V e GND rispettivamente. Collegare il segnale (S) ad un pin digitale di Arduino.

 

Pin Modulo Pin Arduino
- GND
+5V (pin centrale) +5V
S D3

Test del modulo

Lo schizzo seguente accenderà il LED (pin 13) su Arduino quando c'è un oggetto che blocca il raggio di luce tra lo spazio del sensore.

 

Programma 

 


code_KY-010.ino

 
/*
   Programma:code_KY-010.ino
   Collaudo KY-010 Optical broken module

   Su Arduino sono utilizzati i seguenti pin
   Pin GND -> Pin GND modulo , KY-010
   Pin +5V -> Pin +5V Modulo KY-010
   Pin  3 -> Pin segnale modulo KY-010
   Pin  13 -> Pin led

   Ultima modifica il 8/8/2017

   Applicazione realizzata da Adriano Gandolfo
   Sito 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.
*/

int Led = 13; // define LED pin
int signalpin = 3; // define photo interrupter signal pin
int val; //define a numeric variable

void setup()
{
  pinMode(Led, OUTPUT); // LED pin as output
  pinMode(signalpin, INPUT); //photo interrupter pin as input
}

void loop()
{
  val = digitalRead(signalpin); //read the value of the sensor
  if (val == HIGH) // turn on LED when sensor is blocked
  {
    digitalWrite(Led, HIGH);
  }
  else
  {
    digitalWrite(Led, LOW);
  }
}

Test con Multi Test Shield

Componenti utilizzati

KY-010 Optical broken module KY-006 Small passive buzzer module KY-011 2 color LED 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 dei moduli sullo Shield

Per l'utilizzo occorrerà semplicemente posizionare i moduli nei relativi connettori, per quanto riguarda il sensore KY-010 su utilizzerà un cavo a 3 poli Maschio-Femmina. Si utilizzano i seguenti connettori:

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

Schema equivalente

Sketch del programma

Sketch di prova del modulo tramite il Multi test shield, il programma verifica ciclicamente lo stato del sensore, se il raggio infrarosso nonè  interrotto, vene acceso il led verde. Ne caso il raggio infrarosso venga interrotto, inserendo per esempio un cartoncino nella fessura, si accende il led rosso e viene emesso un suono tramite il buzzer. Lo stato viene riportato anche sul display OLED .

 

 

 

 

 

 


shield_test_code_KY-010.ino

 

/*####################################################################
  FILE: shield_test_code_KY-010.ino
  VERSION: 1.0
  Descrizione: Programma per test modulo
  KY-010 Optical broken module

  Creato il 27/1/2019 da Adriano Gandolfo
  Sito web https://www.adrirobot.it
  Blog https://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 greenpin 5 // seleziona il pin per il LED verde KY-011
#define redpin 6 // seleziona il pin per il LED rosso
#define sensor 2 // seleziona il pin per il sensore ottico KY-010
#define buzzer 4 // seleziona il pin per il buzzer KY-006
int val ;// Definisce una variabile numerica val

// 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);
  display.begin();
  pinMode(greenpin, OUTPUT);
  pinMode(redpin, OUTPUT);
  pinMode(sensor, INPUT);
  pinMode(buzzer, OUTPUT);

  // 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-010 ");
  delay (200);
}

void loop()
{
  val = digitalRead (sensor) ;// assegna il valore letto dal sensore alla variabile val
  if (val == HIGH) // Se il sensore e attivo
  {
    display.fillRect(0, 45, 96, 15, BLACK);
    display.setCursor(0, 45);
    display.setTextColor(RED);
    display.print("SENSORE ATTIVO");
    digitalWrite (redpin, HIGH); // Accende led rosso
    digitalWrite (greenpin, LOW); // Spegne led verde
    tone(buzzer, 1000);   //suona una nota alla frequenza di 1000Hz
    delay (500);        // Attende 1/2 secondo
    noTone(buzzer);      //Arresta l'emisisone della nota
  }
  else
  {
    display.fillRect(0, 45, 96, 15, BLACK);
    display.setCursor(0, 45);
    display.setTextColor(GREEN);
    display.print("SENSORE DISATT.");
    delay (200);
    digitalWrite (redpin, LOW); // Spegne led rosso
    digitalWrite (greenpin, HIGH); // Accende led verde
  }
}

 

Elenco revisioni:

10/03/2019

Aggiornato pagina, inserito schema elettrico e caratteristiche sensore

27/01/2019

Emissione preliminare
Private Policy Cookie Policy