 |
KY-010
Optical broken module
ultimo aggiornamento 27 gennaio 2019 |

|
JLCPCB
- 10 PCB per $ 2 (100 * 100 mm, 2-layer)
Il più grande produttore
di PCB in Cina, oltre 300.000 clienti e oltre 10.000 ordini online al giorno
Vedi l'interno della fabbrica di PCB:
https://www.youtube.com/watch?v=_XCznQFV-Mw

Indice
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 include una
coppia di trasmettitore e ricevitore ottico nella parte anteriore e due
resistori (1 kΩ e 33 Ω) nella parte posteriore.
Il
sensore utilizza un raggio di luce tra l'emettitore e un rivelatore per
verificare se il percorso tra entrambi viene bloccato da un oggetto opaco.



Tensione di
alimentazione |
3.3 ~ 5V |
Dimensioni |
18.5mm x 15mm |
|

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 |
|
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);
}
} |
|
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.

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:
-
JP1 - KY-010 Optical broken module
-
JP6 - KY-011 2 color LED module
-
JP8 - KY-006 Small passive buzzer module
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: |
27/01/2019 |
Emissione preliminare |