Multi test shield

Ultimo aggiornamento 23 marzo 2019


JLCPCB - 10 PCB per $ 2 (100 * 100 mm, 2-layer)
Il più grande produttore di PCB in Cina, oltre 600.000 clienti e oltre 10.000 ordini online al giorno
Produzione veloce in sole 24 ore e preventivo online gratuito: https://jlcpcb.com/quote


Indice

Descrizione

Per testare la serie di sensori contenuti nella confezione "37 in 1 Sensor Module Board Set" che è venduta da molti siti è possibile utilizzare questo shield 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.
Lo schema è lo stampato sono stati realizzati con il programma free EasyEDA, il progetto può essere Se si desidera, è possibile clonare lo schema dello Shield e del PCB, questo è possibile da questo link per la realizzazione si è utilizzato il servizio di realizzazione fornito da JLCPCB

 

Schema elettrico

 

Sigla Denominazione Quantità
1 R1,R3 100 Ω 1/4W 5% 2
2 R2,R4 220 Ω 1/4W 5% 2
3 R5 150 Ω 1/4W 5% 1
4 JP1,JP3,JP2,JP4,JP6,JP8 Header-Female-2.54_1x3 6
5 JP5,JP7,JP12,JP13,JP15,JP9,JP16,JP14 Header-Female-2.54_1x4 8
6 JP10,JP11 Header-Female-2.54_1x5 2
7 DISP1 Header-Female-2.54_1x4 1
8   Header-Male-2.54_1x8 2
9   Header-Male-2.54_1x6 1
10   Header-Male-2.54_1x10 1

 

Sensori compatibili con lo shield

Connettore Sensore/Modulo
JP1 (D2)
JP2 (D4)
JP3 (D3)
KY-001 Temperature sensor module, KY-002 Vibration switch module, KY-003 Hall magnetic sensor module, KY-004 Key switch module, KY-005 Infrared emission sensor module, KY-006 Small passive buzzer module, KY-010 Optical broken module, KY-012 Active buzzer module KY-015 Temperature and humidity sensor module, KY-017 Mercury open optical module,  KY-019 5V relay module, KY-020 Tilt switch module, KY-021 Mini magnetic reed modules, KY-022 Infrared sensor receiver module, KY-031 Knock Sensor module, KY-033 Hunt sensor module, KY-035 Class Bihor magnetic sensor, KY-039 Detect the heartbeat module
JP4 Capacitive touch sensor, HC-SR501 (PIR sensor)
JP5 KY-009 3-color full-color LED SMD modules
JP6 KY-011 2-color LED module, KY-029 Yin Yi 2-color LED module 3mm
JP7 KY-016 3-color LED module
JP8 KY-034 Automatic flashing colorful LED module
JP9 KY-032 Obstacle avoidance sensor module
JP10 KY-023 XY-axis joystick module
JP11 KY-040 Rotary encoder module
JP12 KY-024 Linear magnetic Hall sensors, KY-025 Reed module, KY-026 Flame sensor module, KY-028 Temperature sensor module, KY-036 Metal touch sensor module, KY-037 Sensitive microphone sensor module, KY-038 Microphone sound sensor module,
JP13 KY-027 Magic light cup module
JP14 Sensori MQ-2, MQ-3, MQ-4 MQ-5, MQ-6, MQ-7, MQ-8, MQ-9, MQ-135
JP15 Connettore I2C, KY-018 Photo resistor module, KY-013 Temperature sensor module
JP16 Sonar HC-SR04
DISP1 display OLED utilizzato ha una diagonale di 0.95", una risoluzione di 96x64 pixel, 65536 Colori

NOTA: I moduli con link sono stati correttamente testati

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

Sensori e moduli già testati con i Multi test shield

KY-003
 Hall magnetic sensor module
KY-009
RGB full color LED SMD modules
KY-010
Optical broken module
KY-011
2 color LED module

KY-013
Temperature sensor module

KY-029
Yin Yi 2-color LED module 3mm

KY-012
Active buzzer module
KY-015
Temperature and humidity sensor module
KY-032
Obstacle avoidance sensor module
KY-034
Automatic flashing colorful
  Display 65k Colori OLED 96x64
interfaccia SPI
 

Il display OLED

Il display OLED utilizzato ha una diagonale di 0.95", una risoluzione di 96x64 pixel, 65536 Colori ed è basato sul driver SSD1331 è dotato di interfaccia di comando SPI e può essere alimentato con una tensione compresa tra i 3.3V - 5V.
Per atre informazioni vedere questa pagina.

GND  Power ground
VCC  2.8-5.5V power supply
SCL (SCLK)  Serial Clock (emesso dal master)
SDA (MOSI)  Serial Data Output, Master Output Slave Input (uscita dal master)
RES  Reset
DC  Data / command
CS Chip Select, Slave Select, emesso dal master per scegliere con quale dispositivo slave vuole comunicare

Libreria per Arduino

Per utilizzare il display OLED è necessario installare l'apposita libreria, questa può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo "SSD1331".
In questo caso si è scelta quella fornita dalla Adafruit nella versione 1.0.2, una volta caricata sarà mostrata la dicitura "INSTALLED"
Per maggiori informazioni vedere il link.

Analogamente, sempre per gestire la parte grafica occorre caricare la libreria grafica "Adafruit GFX Library", in questo caso si è scelta la versione 1.2.9, una volta caricata sarà mostrata la dicitura "INSTALLED".
Per maggiori informazioni vedere il link.

 

Vista del PCB lato TOP

Vista del PCB lato BOTTOM

Vista 3D del PCB lato TOP

Foto del PCB realizzato da  JLCPCB

I componenti necessari

Fasi di montaggio

Componenti necessari, PCB, connettori e resistenze

Si inizia con la saldatura delle resistenze

Si passa poi alle pin strip femmine: 3, 4, 5 pin

Si passa poi alle pin strip maschio per il collegamento con la scheda Arduno: 6, 8, 10 pin

Il montaggio e concluso non resta che da installare lo schield sulla scheda Arduino e il display sullo shield

Il montaggio è definitivamente concluso

 

Foto del montaggio

Test dello shield montato

Ora possiamo passare al collaudo dello shield appena realizzato. Per fare questo utilizzeremo il modulo KY-009 RGB full color LED SMD module, che si presenta come una piccolo circuito che misura 18,5 millimetri x 15mm, su di esso è montato un LED RGB tipo 5050 SMD e un connettore a 4 pin.
Il LED può emette una ampia gamma di colori mescolando rosso, verde e blu.

La quantità di ciascun colore primario può venire regolata tramite un pilotaggio di tipo PWM, il modulo deve essere montato sul connettore JP3 come mostrato in figura.

la limitazione della corrente che scorre verso i led contenuti nel led RGB tipo 5050, viene fatto dalle resistenze già presenti sullo shield.
Se disponibile inserire il display nel connettore come mostrato in figura, il suo utilizzo non è indispensabile all'esecuzione del programma.
Ora si dovrà collegare la scheda Arduino UNO al PC e compilare il programma (scaricabile da questo link) nella memoria dell'Arduino che lo eseguirà.

/*####################################################################
  FILE: shield_test_code_KY-009.ino
  VERSION: 1.0
  Descrizione: Programma per test modulo
  KY-009 RGB full color LED SMD modules

  Creato il 16/8/2018 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 bluepin 5 // seleziona il pin per il LED blu
#define greenpin 7 // seleziona il pin per il LED verde
#define redpin 6 // seleziona il pin per il LED rosso


// 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(bluepin, OUTPUT);
  pinMode(greenpin, OUTPUT);
  pinMode(redpin, OUTPUT);

  // Messaggio iniziale
  display.fillScreen(BLACK);
  display.setTextSize(1);
  display.setTextColor(BLUE);
  display.setRotation(2); //Ruota display
  display.setCursor(0, 0);
  display.println(" ADRIROBOT");
  display.setTextColor(GREEN);
  display.println("  SHIELD  ");
  display.println(" TEST FOR ");
  display.println("  37 IN 1 ");
  display.println("  SENSOR  ");
  delay(2000);
  display.fillScreen(BLACK);
  display.setTextColor(YELLOW);
  display.setCursor(0, 0);
  display.println("   TEST   ");
  display.println("  MODULO  ");
  display.println("  KY-009  ");
}

void loop()
{
  display.setTextColor(MAGENTA);
  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led ROSSO");
  delay (200);
  digitalWrite(redpin, HIGH);  //Accende il led rosso
  delay (1000);
  digitalWrite(redpin, LOW);  //Spegne il led rosso

  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led BLU");
  delay (200);
  digitalWrite(bluepin, HIGH);  //Accende led blu
  delay (1000);
  digitalWrite(bluepin, LOW);  //Spegne led blu

  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led VERDE");
  delay (200);
  digitalWrite(greenpin, HIGH);  //Accende led verde
  delay (1000);

  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led BIANCO");
  delay (200);

  digitalWrite(redpin, HIGH);  //Accende il led rosso
  digitalWrite(bluepin, HIGH);  //Accende il led blu
  // Essendo accesi i tre led il colore emesso è il bianco
  delay (1000);

  // Spegne tutti i tre led
  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("SPENTO");
  delay (200);
  digitalWrite(redpin, LOW);
  digitalWrite(greenpin, LOW);
  digitalWrite(bluepin, LOW);
  delay (2000);
}

Breve Filmato del test

 

Modifiche

Sostituzione pin D12 con pin D17

Effettuando i collaudi ho notato che collegando un modulo, come il sensore sonar HC-SR04 su connettore JP16 che ha un pin collegato alla porta D12: non funzionava.
La ricerca del motivo ha evidenziato che anche se non utilizzato direttamente dal Modulo display , questo pin risulta riservato dalla libreria SPI che lo gestisce,per la funzione è MISO (Master In Slave Out)  per cui non può utilizzato per altre funzioni.
Per cui, non avendo altri pin digitali liberi, non volendo utilizzare i pin D0 e D1 utilizzati per la programmazione, ho pensato di utilizzare uno dei pin analogici in particolare A3, che è in realtà D17.
Per cui avendo già il PCB, ho tagliato la pista sul lato TOP nei pressi di D12 e ho fatto un collegamento colante tra il pin A3 con il pin centrale di JP4, in questo modo i connettori  JP4, JP12 e JP16 risultano collegati a D17 invece di D12.
Nel caso realizzaste il PCB prelevando lo schema dal sito EasyEDA questo risulta già corretto e la modifica non è da effettuarsi

Elenco revisioni

08/02/2019

Aggiornato pagina, inserito test KY-003

02/02/2019

Aggiornato pagina, inserito indicazione modifica pin JP4, JP12 e JP16

01/11/2018

Aggiornato pagina

10/10/2018

Emissione preliminare