### 3.3.1 Ventilatore intelligente per il controllo della temperatura #### 3.3.1.1 Panoramica ![Img](./media/top1.png) Quando la temperatura interna supera il valore standard preimpostato, il ventilatore intelligente si accende per raffreddare la stanza fino a una temperatura confortevole. Inoltre, l'OLED mostrerà in tempo reale la temperatura interna corrente e lo stato di funzionamento del ventilatore, fornendo agli utenti un feedback intuitivo sul controllo della temperatura. ![Img](./media/bottom1.png) #### 3.3.1.2 Conoscenze sui componenti ![Img](./media/2top.png) **Sensore di temperatura del Microbit** ![Img](./media/j501.png) La scheda principale micro:bit in realtà non è dotata di un sensore di temperatura dedicato, ma utilizza il chip nRF52833 per il rilevamento della temperatura. Pertanto, il valore rilevato è molto più vicino alla temperatura del processore, quindi potrebbe esserci una certa deviazione rispetto al valore ambientale. Il suo intervallo di rilevamento è -40 ~ 105℃. **Display OLED** ![Img](./media/A636.png) La tecnologia OLED presenta notevoli vantaggi come ricca resa dei colori, alto contrasto e ampio angolo di visione, fornendo immagini nitide e vivide, particolarmente eccellente nel nero. Ogni pixel del display OLED emette luce propria senza retroilluminazione, quindi consuma relativamente poca energia. Con le sue dimensioni ridotte (0,96 pollici), l'alta risoluzione (128×64 pixel) e il basso consumo, è molto adatto per dispositivi indossabili. ⚠️ **Nota:** In questo progetto, il modulo display OLED collega l'interfaccia SDA al pin P20 e SCL al pin P19. **Parametri:** - Tensione di esercizio: DC 3.3V-5V - Corrente di lavoro: 30mA - Interfaccia: pin header passo 2.54mm - Modalità di comunicazione: comunicazione I2C - Driver interno: SSD1306 - Risoluzione: 128×64 - Angolo di visione: maggiore di 150° **Motore 130** ![Img](./media/cou710.png) Sul modulo motore 130 è presente un motore DC che funziona basandosi sull'induzione elettromagnetica e sulla forza di Lorentz. È composto principalmente da uno statore, un rotore (indotto) e un commutatore. Lo statore genera un campo magnetico fisso, mentre il rotore, composto da avvolgimenti di bobina, genera un campo magnetico quando è eccitato. Quando la corrente passa attraverso le spazzole e il commutatore e poi entra nella bobina del rotore, il campo magnetico del rotore interagisce con quello dello statore, generando una forza di Lorentz che fa ruotare il rotore. Durante questa rotazione, il commutatore inverte la direzione della corrente, garantendo che il rotore sia continuamente soggetto a una forza nella stessa direzione, mantenendo così la rotazione. Attraverso l'induzione elettromagnetica e la forza di Lorentz, il motore DC converte l'energia elettrica in energia meccanica. Grazie alle sue eccellenti prestazioni di regolazione della velocità e all'elevata coppia di avviamento, i motori DC sono ampiamente utilizzati in utensili elettrici, veicoli e elettrodomestici. ![j124](./media/j124.png) Il motore 130 può essere regolato in velocità tramite PWM. Durante l'uso, è necessario collegare due pin per il controllo. È adatto a scenari applicativi in cui è richiesta la regolazione della velocità del ventilatore, come il raffreddamento di computer e la produzione industriale. È piccolo, leggero e facile da installare, risultando molto pratico. **Schema elettrico:** ![Img](./media/cou712.png) Il chip HR1124S assiste nella guida del motore. Tuttavia, il motore richiede una corrente elevata e non può essere pilotato da un transistor, tantomeno direttamente da una porta IO. Basta applicare tensione ai due poli del motore per farlo ruotare. La direzione di rotazione del motore varia con la direzione della tensione. All'interno dell'intervallo di tensione nominale, maggiore è la tensione, più velocemente ruoterà il motore. Al contrario, minore è la tensione, più lentamente ruoterà il motore, o in alcuni casi potrebbe non ruotare affatto. Ci sono due modalità di controllo: tramite livello alto/basso (controllo accensione/arresto) e tramite PWM (controllo della velocità di rotazione). **Parametri:** - Tensione di lavoro: DC 5V - Corrente di esercizio: (Max)400mA@5V - Potenza massima: 2W - Velocità di rotazione: (16000+10%) turn/min@5V ![Img](./media/2bottom.png) #### 3.3.1.3 Componenti richiesti | ![Img](./media/microbitV2.png)| ![Img](./media/ExpansionBoard.png) |![Img](./media/OLED.png) | | :--: | :--: | :--: | | micro:bit V2 main board ×1 | micro:bit shield ×1 |OLED display ×1 | |![Img](./media/motor.png) |![Img](./media/usb.png) |![Img](./media/4pin.png)| |130 motor ×1| micro USB cable ×1 |4 pin wire ×2 | |![Img](./media/fan.png) |![Img](./media/batterycase.png)| ![Img](./media/AAbattery.png)| |fan ×1|battery holder ×1|AA battery(**fornite dall'utente**) ×6| #### 3.3.1.4 Diagramma di collegamento ⚠️ **Quando effettuate i collegamenti, fate attenzione al colore dei fili.** | 130 motor | wire color | micro:bit shield pin |micro:bit board pin | | :--: | :--: | :--: | :--: | | G | black | G | G | | V | red | V2 | V | | IN+ | blue | 2 | P2 | | IN- | green | 16 | P16 | | OLED display | wire color | micro:bit shield pin |micro:bit board pin | | :--: | :--: | :--: | :--: | | GND | black | G | G | | VCC | red | V2 | V | | SDA | blue | 20 | P20 | | SCL | green | 19 | P19 | ![Img](./media/couj1.png) #### 3.3.1.5 Flusso del codice ![Img](./media/flow-chart-1.png) #### 3.3.1.6 Codice di prova ⚠️ **Si noti che la soglia 28 nella condizione if() può essere modificata in base alla situazione reale.** **Codice completo:** ![Img](./media/couj01.png) ⚠️ **Nota che il codice utilizza C invece di ℃, perché ℃ verrà danneggiato nella visualizzazione sull'OLED.** ![Img](./media/line1.png) **Breve spiegazione:** ① Inizializza i pixel dell'OLED, svuota l'OLED, e la matrice LED 5×5 del Micro:bit mostra ![Img](./media/ab3.png). ![Img](./media/cou00.png) ② L'OLED mostra il valore della temperatura su una riga. ![Img](./media/cou01.png) ③ Inserisce una nuova riga. ![Img](./media/cou02.png) ④ Istruzione di giudizio: if()...else... Quando la temperatura rilevata dal sensore è maggiore o uguale a 28℃, l'OLED visualizza “Fan on” e il ventilatore ruota. Altrimenti, l'OLED mostra “Fan off” e il ventilatore non funziona. ![Img](./media/cou04.png) ⑤ Ritardo 1000ms (1s). ![Img](./media/cou05.png) #### 3.3.1.7 Risultato del test ![Img](./media/4top.png) Dopo aver effettuato i collegamenti e aver alimentato tramite micro USB cable, collegare l'alimentazione esterna (6 batterie AA) per garantire un'alimentazione sufficiente. Per l'app Windows 10, basta cliccare su Download. Per il browser, inviare il file “.hex” alla scheda micro:bit. Dopo aver caricato il codice di prova sulla scheda micro:bit, la matrice LED 5×5 integrata mostra ![Img](./media/ab3.png), e il display OLED rivela la temperatura e lo stato del ventilatore in tempo reale. Quando la temperatura supera i 28℃, il ventilatore ruota. Altrimenti, il ventilatore non funzionerà. ![Img](./media/dongtu-1.gif) ⚠️ **Nota: i blocchi da costruzione nell'esperimento non sono inclusi in questo kit.** (**Suggerimento:** Se non viene osservato alcun risultato, premere il pulsante di reset della scheda micro:bit.) ![Img](./media/4bottom.png)