Skip to the content
PCBKitNew board
2 layers43.8 × 45 mmThermal Shield, the printed circuit board in 3D

An Arduino 💻 project for temperature 🌡️ control using a thermal board and a fan ♨️🌪️

Size
43.8 × 45 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
16
Pads
50
Tracks, vias
115, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
21 Jan 2026
Updated
16 Mar 2026

Overview

Thermal Shield is an open-source printed circuit board by Nataso08, from the Nataso08/Thermal_Shield repository on GitHub. It is a 2-layer board of 43.8 × 45 mm with 19 parts on 16 nets, routed with 115 tracks and 0 vias.

It is built around the LM311 and BC337. Its parts include 8 resistors, 3 diodes, 3 transistors, 2 ICs and 2 connectors.

Main components

2

README

README.md

💻 Thermal_Shield 🌡️

Un progetto Arduino per il controllo della temperatura tramite una scheda termica e una ventola.

🧾 Materiali necessari:

  • Arduino UNO
  • Scheda termica
  • Ventola 12 V
  • Ponte H

🌡️ Scheda termica:

La scheda termica utilizzata nel nostro sistema è stata realizzata dalla nostra scuola, Istituto Max Planck (Villorba, TV).

📐 Struttura:

La scheda termica è strutturata su un PCB e si presenta come riportato nelle seguenti immagini.

Scheda, sopra Scheda, sotto

🖇️ Schema

Di seguito è riportato lo schema elettrico della scheda.
Schema elettrico della scheda

Progetto Kicad

🔌 Collegamenti:

  • Alimentare la scheda (jack DC) ad una tensione di 12 V
  • Collegare Arduino UNO tramite la morsettiera:
    • GND → GND
    • $V_T$ → Ingresso Analogico di Arduino (A0 - A5)
    • PWM → Uscita PWM di Arduino (pin 3, 5, 6, 9, 10 o 11)

💨 Ventola:

Generica ventola 12 V (es. ventola da PC).

Ventola 12 V

🔌 Collegamenti:

  • Power → alimentazione 12 V (tramite ponte H)
  • GND → GND (comune tra Arduino e alimentazione 12 V)
  • RPM → Pin interrupt di Arudino (2, 3)

⚠️ Non collegare GND all'uscita del ponte H, altrimenti l'encoder non funziona correttamente.
❗ Nel codice allegato non è presente la misurazione della velocità (RPM) ma è facilmente integrabile.

❗ Collegare 5 V del ponte H a $V_{in}$ di Arduino se si vuole far funzionare il sistema indipendente dall'alimentazione USB.
⚠️ In questo caso, alimentare il ponte H prima di collegare Arduino con USB per evitare problemi di alimentazione.

🔌 Ponte H:

È possibile usare un qualsiasi ponte H.
Nel mio caso ho utilizzato un L298N, utilizzando esclusivamente il "ramo" B.

Scheda, sopra

Collegare il pin IN3 (se si utilizza il "ramo" B) ad un'uscita PWM di Arduino (pin 3, 5, 6, 9, 10 o 11).
⚠️ Si può verificare se il l'alimentazione ha polarizzazione corretta cortocircuitando il pin IN3 con i 5 V di Arduino: se la ventola inizia a girare il pin è corretto, altrimenti collegare il pin IN4 (o il complementare della coppia del "ramo" scelto).

❗ Alternative:

Se non si dispone di un ponte H è possibile sostituirlo con un circuito a transistor con dovuto dimensionamento.

⚙️ Filtro segnale PWM:

Poiché il segnale PWM potrebbe non essere propriamente adatto alla tua ventola è consigliabile realizzare un filtro RC come quello di seguito riportato.
...

🛠️ Setup:

  1. Effettuare i collegamenti sopra descritti
  2. Adattare i pin impostati nel codice allegato sulla base delle proprie necessità
  3. Impostare i propri valori di T_min e T_max
  4. Se necessario, modificare il kp e q (nella funzione FTU) affinché la ventola riesca ad abbassare la temperatura fino a T_min
  5. Caricare il codice allegato e aggiornato (vedi punto 2) su Arduino tramite Arduino IDE

💻 Utilizzo:

🟢 Azionamento:

Si può azionare il sistema tramite:

  1. Pressione del pulsante Start
  2. Scrittura '1' su Seriale

A seguito di una delle 2 azioni il sistema inizierà il suo ciclo di riscaldamento/raffreddamento.

🔴 Spegnimento:

Si può fermare il sistema tramite:

  1. Pressione del pulsante Stop
  2. Scrittura '0' su Seriale

A seguito di una delle 2 azioni il sistema si fermerà togliendo alimentazione a resistenza riscaldante e ventola (non svolge però la funzione di freno alla ventola, che continuerà a ruotare per inerzia).

📊 Misurazione / rappresentazione grafica:

È possibile osservare il variare della temperatura tramite la lettura della comunicazione seriale. In particolare:

  • Monitor Seriale: Permette una facile lettura dei dati "grezzi" 📄
  • Plotter Seriale: Permette una facile visualizzazione grafica del variare dei valori 📉

Grafico Temperatura

Credits:

Tools I used:

Find Me on:

Github

Parts

19
QtyValueFootprintReferences
31kResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR3, R4, R7
3BC337Package_TO_SOT_THT:TO-92_Inline_WideQ1, Q2, Q3
3LEDLED_THT:LED_D4.0mmD1, D2, D3
2560Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR1, R2
1100Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR5
1150Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P20.32mm_HorizontalR8
1220Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR6
168nCapacitor_THT:C_Rect_L7.2mm_W2.5mm_P5.00mm_FKS2_FKP2_MKS2_MKP2C1
1Barrel_Jack_SwitchConnector_BarrelJack:BarrelJack_HorizontalJ2
1LM311Package_DIP:DIP-8_W7.62mmU2
1LM35-LPPackage_TO_SOT_THT:TO-92_Inline_WideU1
1Screw_Terminal_01x03TerminalBlock:TerminalBlock_MaiXu_MX126-5.0-03P_1x03_P5.00mmJ1

Questions

How big is the Thermal Shield PCB?

It measures 43.8 × 45 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Thermal Shield use?

19 parts, built around the LM311 and BC337. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Thermal Shield KiCad files?

From the Nataso08/Thermal_Shield repository on GitHub, at the commit this page was made from: the board is Thermal_Shield/Thermal_Shield.kicad_pcb and its schematic Thermal_Shield/Thermal_Shield.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Thermal Shield design in my own project?

Its repository states no licence, so its author keeps all rights: ask Nataso08 before reusing the design.

Similar boards

  • 2 layers58 × 110 mmVco core, the printed circuit board in 3D

    Vco core

    shmoergh/moduleur

    Fully analog DIY-friendly modular synth

    146 parts222
  • 2 layers215 × 100 mmCore, the printed circuit board in 3D

    Core

    shmoergh/hog

    Fully analog two-voice monophonic synth for live performances

    370 parts124
  • 4 layers80 × 80 mmZ5524, the printed circuit board in 3D

    Z5524

    brer-rabbit/zoxnoxious

    Analog synth / software interface

    234 parts68GPL-3.0
  • 2 layers216 × 150 mmMotherboard-101, the printed circuit board in 3D

    Motherboard-101

    artemisamsx/artemisa

    Schematics, PCB designs and HDL simulations to build a 8-bits MSX computer

    124 parts67
  • 2 layers101.6 × 147.3 mmKarabas pro revER, the printed circuit board in 3D

    Karabas pro revER

    andykarpov/karabas-pro

    FPGA based retrocomputer with FDD and HDD controllers

    223 parts37MIT
  • 2 layers44 × 100 mmHP45 Standalone V4.02, the printed circuit board in 3D

    HP45 Standalone V4.02

    yvodehaas/HP45-standalone-controller-V4.02

    HP45 standalone controller V4.02

    90 parts36GPL-3.0
  • 4 layers55.9 × 78.7 mmSSI2130 VCO, the printed circuit board in 3D

    SSI2130 VCO

    JordanAceto/SSI2130_VCO

    VCO core built around the SSI2130 chip

    106 parts22CC-BY-4.0