KY-021
Mini magnetic reed module

ultimo aggiornamento 31 marzo 2019


JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Recati presso la JLCPCB, riceverai regali e coupon gratuiti
presso Maker Faire Rome il 18-20 ottobre


Indice

Descrizione

Il modulo KY-021 Mini magnetic reed module fa parte della serie "37 In 1 Sensor Module Board Set Kit For Arduino" il sensore è rappresentato da un contatto-Reed (vedere approfondimento) , formato un interruttore a lamina (normalmente aperto) che si chiude in presenza di un campo magnetico.

VEDERE NOTA APPLICATIVA

Il contatto-Reed è anche montato sul sensore KY-025 Reed module . Il modulo fornisce un valore logico sul suo piedino d'uscita in funzione della presenza o meno di un campo magnetico.
Per il collegamento, il polo negativo GND, si trova a destra in corrispondenza del pin "-", mentre il polo positivo (5V) corrisponde al pin centrale. L'uscita si trova in corrispondenza del pin con la sigla "S" e deve essere collegata a un PIN digitale.

Nella serie esiste anche il modulo
KY-025 Reed module  che utilizza lo stesso tipo di sensore.

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

KY-021 Mini magnetic reed module KY-025 Reed module 

 

Il sensore

Questo è un piccolo dispositivo chiamato Reed switch, quando il dispositivo è esposto a un campo magnetico, i due materiali ferrosi all'interno dell'interruttore si uniscono e l'interruttore si chiude. Quando il campo magnetico viene rimosso, le ance si separano e l'interruttore si apre. Questo lo rende un interruttore senza contatto, in grado di trasportare fino a 1,2 A.

Circuito elettrico del modulo

Lo schema elettrico è formato essenzialmente dal sensore Reed switch S1 e dalla resistenza R1 di pull-up SMD dal valore di 10 kΩ, questa serve per garantire che l'uscita quando il contatto è aperto resti a livello alto.

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

 

Test con Multi Test Shield

Componenti utilizzati

 

Scheda Arduino UNO o equivalente Multi test Shield Display OLED da 0.95"
 
KY-021 Mini magnetic reed 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  attenderà che un magnete sia posto nelle vicinanze del sensore, quando rileverà un campo magnetico, il led presente sul sensore si illuminerà, in buzzer emetterà un suono e sul display OLED apparirà una scritta.

 

Programma

shield_test_code_KY-021.ino

/*####################################################################
  FILE: shield_test-code_KY-021.ino
  VERSION: 1.0
  Descrizione: Programma per test modulo
  KY-021 Mini magnetic reed module

  Creato il 31/3/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

//Definizione pin a cui è collegato il sensore
#define sensore 2 //Pin collegamento sensore KY-021 
#define buzzer 4  //Pin collegamento buzzer KY-006
int val ; // define numeric variables val

long duration, distance; // variabile utilizzata per calcolare la distanza

// 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(buzzer, OUTPUT);
  pinMode(sensore, INPUT);

  // 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("     KY-021    ");
  display.println(" Mini magnetic ");
  display.println(" sensor module ");
  delay(2000);
  display.fillScreen(BLACK);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.print("Campo magnetico");
  delay (200);
}

void loop()
{
  val = digitalRead (sensore) ; // lettura sensore
  if (val == LOW) // quando il sensore rileva un campo magnetico, il buzzer emette un suono
  {
    display.setCursor(0, 10);
    display.setTextColor(RED);
    display.print("RILEVATO");

    delay (200);
    tone(buzzer, 500);   //suona una nota alla frequenza di 1000Hz
    delay (500);        // Attende 1/2 secondo
  }
  {
    display.fillRect(0, 10, 96, 15, BLACK);
    delay (200);
    noTone(buzzer);      //Arresta l'emisisone della nota
  }
}

 

Elenco revisioni:

31/03/2019

Emissione preliminare