Multi test shield per moduli e sensori compatibile Arduino

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 96×64 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, schema dello Shield e PCB, può essere trovato a questo link per la realizzazione si è utilizzato il servizio di realizzazione fornito da JLCPCB.

Schema elettrico

Elenco dei componenti necessari

SiglaDenominazioneQuantità
1R1,R3100 Ω 1/4W 5%2
2R2,R4220 Ω 1/4W 5%2
3R5150 Ω 1/4W 5%1
4JP1, JP3, JP2, JP4, JP6, JP8Header-Female-2.54_1x36
5JP5, JP7, JP12, JP13, JP15, JP9, JP16, JP14Header-Female-2.54_1x48
6JP10,JP11Header-Female-2.54_1x52
7DISP1Header-Female-2.54_1x41
8Header-Male-2.54_1x82
9Header-Male-2.54_1x61
10Header-Male-2.54_1x101

Sensori compatibili con lo shield

ConnettoreSensore/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
JP4Capacitive touch sensor, HC-SR501 (PIR sensor)
JP5KY-009 3-color full-color LED SMD modules
JP6KY-011 2-color LED module, KY-029 Yin Yi 2-color LED module 3mm
JP7KY-016 3-color LED module
JP8KY-034 Automatic flashing colorful LED module
JP9KY-032 Obstacle avoidance sensor module
JP10KY-023 XY-axis joystick module
JP11KY-040 Rotary encoder module
JP12KY-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,
JP13KY-027 Magic light cup module
JP14Sensori MQ-2, MQ-3, MQ-4 MQ-5, MQ-6, MQ-7, MQ-8, MQ-9, MQ-135
JP15Connettore I2C, KY-018 Photo resistor module, KY-013 Temperature sensor module
JP16Sonar HC-SR04
DISP1display OLED utilizzato ha una diagonale di 0.95", una risoluzione di 96x64 pixel, 65536 Colori

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 96×64
interfaccia SPI
Sensore infrarosso passivo
PIR HC-SR501
 
OurPCB, your most reliable PCB and PCBA supplier.

Test sensore KY-003 Hall magnetic sensor

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

Test modulo KY-009 RGB full color LED SMD

One-Stop Wire Harness & Cable Assemblies Solution

Test sensore KY-010 Optical broken module

Test modulo KY-011 2 color LED

Test modulo KY-012 Active buzzer

Test sensore KY-013 Temperature sensor

Test sensore KY-015 Temperature and humidity

Test modulo KY-029 Yin Yi 2-color LED  3mm

Test modulo KY-032 Obstacle avoidance sensor

Test modulo KY-034 Automatic flashing colorful

Test sensore infrarosso passivo PIR HC-SR501

Il display OLED

Il display OLED utilizzato ha una diagonale di 0.95″, una risoluzione di 96×64 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)  S erial  Cl oc k  (emesso dal master)
SDA (MOSI)  S erial  D ata  O utput,  M aster  O utput  S lave  I nput (uscita dal master)
RES Reset
DC Data / command
CSC hip  S elect,  S lave  S elect, emesso dal master per scegliere con quale dispositivo slave vuole comunicare

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.

PCB lato TOP

PCB lato BOTTOM

Vista 3D del PCB lato TOP

Foto del PCB realizzato da  JLCPCB

Foto dei componenti necessari

Componenti necessari, PCB, connettori e resistenze

Fasi di montaggio

Si inizia con la saldatura delle resistenze

Proseguiamo poi alle pin strip femmine: 3, 4, 5 pin

Quindi 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  il display sullo shield e questo sulla scheda Arduino

Il montaggio è definitivamente concluso

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à

Sketch utilizzato per il test

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

//Il modulo va montato su JP5
#define greenpin 7  // G - seleziona il pin per il LED verde
#define redpin 6    // R - seleziona il pin per il LED rosso
#define bluepin 5   // B - seleziona il pin per il LED blu

// 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

 

Visualizza questo post su Instagram

 

Un post condiviso da Adriano Gandolfo (@adrirobot) in data:

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 SlaveOut)  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

Lascia un commento

Your email address will not be published.