# Introduzione

Dopo aver approfondito in maniera esaustiva le componenti di un sistema a microprocessore, i componenti elettronici e tutto ciò che riguarda l'acquisizione dati, è utile creare degli esempi pratici nei quali un microcontrollore può essere utilizzato, per gestire autonomamente e automaticamente un ambiente o una situazione senza la presenza umana (certo, l'uomo interviene con la programmazione del microcontrollore).
Vedremo perciò due esempi pratici: la gestione di una serra e l'alimentazione di un motore passo passo, dato che ne abbiamo parlato abbondantemente in Un po' di elettronica.

## Gestione serra

Una serra è un ambiente chiuso costruito appositamente per coltivare piante e fiori ricreando in loro habitat naturale in un ambiente nel quale altrimenti morirebbero.
Supponiamo perciò di voler coltivare pomodori in Siberia, un ambiente freddo e ostile, con temperature che possono scendere sotto i -50 °C. I pomodori sono piante annuali coltivate regolarmente in aree con clima temperato. Non sopravvivono a temperature inferiori a 12 °C e devono essere periodicamente irrigati. Come fare? Innanzitutto la costruzione di una serra è cosa opportuna, ma la serra a sé stante non riesce a fornire il calore necessario ai pomodori per sopravvivere, considerando che gli inverni Siberiani sono molto rigidi e il sole non è perpendicolare al terreno. Si può quindi progettare una serra gestita completamente da un microcontrollore che sappia misurare la temperatura, l'umidità del terreno e la luce dell'ambiente circostante tramite dei sensori. I dati verranno poi elaborati dalla CPU ed essa attiverà:
* Il riscaldamento, se la temperatura scende sotto ad una certa soglia, ad esempio 15 °C;
* Il sistema di irrigazione, se l'umidità del terreno rimane inferiore ad un certo valore per un intervallo di tempo prestabilito (si eviterà perciò di sprecare troppa acqua e di far morire i pomodori per eccessiva irrigazione);
* Luci ultraviolette, se la luce ambientale giornaliera non è sufficiente per un corretto sviluppo e maturazione dei pomodori (in questo modo si eviterà di sprecare energia se le giornate sono più lunghe, attivando le lampade solo quando le giornate sono più corte e meno illuminate);
Inoltre, se la temperatura interna è troppo elevata, cosa che capita molto di rado, sarebbe opportuno attivare il sistema di ventilazione per raffreddare l'ambiente.
* Non meno importante è una ventilazione giornaliera per permettere alle piante di fotosintetizzare le sostanze nutritive partendo dall'anidride carbonica e dall'acqua.
Per risparmiare il riscaldamento si potrebbe inserire un codice che ogni giorno registra i valori della temperatura esterna e il giorno seguente, attiva il sistema di ventilazione in quel preciso momento della giornata.
Servirà una centrale nucleare per alimentare la serra, ma almeno i pomodori prodotti saranno di ottima qualità.

## Motore passo passo

Dopo aver descritto il funzionamento del motore passo passo, è giunta l'ora di farne funzionare uno! Per farlo girare basterà semplicemente disporre di un motore passo passo e di un microcontroller, oltre ad alcuni transistor, per amplificare il segnale di uscita del microcontroller. Come controllore ho utilizzato un Arduino UNO con l'Atmega328 come μC, ma se ne possono utilizzare benissimo altri, come ad esempio i PIC. Ora, bisogna individuare nel motore passo passo i giusti piedini di alimentazione e collegarli alle uscite digitali del microcontrollore, attraverso dei transistor. I transistor sono necessari per due motivi:
* Per evitare di sovraccaricare le uscite del μC, e di bruciarlo;
* Siccome, nel nostro caso, il μC emette segnali digitali dove 1 corrisponde a 5 volt e 0 a 0 volt, ma il motore passo passo deve essere alimentato a 12 volt, i transistor servono per amplificare il segnale da 5 volt a 12 volt.
L'ultima cosa, ma non la meno importante, è il codice da caricare nella Flash del μC. Arduino è molto più semplice da utilizzare rispetto agli altri microcontrollori, dato che dispone già di librerie atte allo scopo. Ora basterà compilare il programma, caricarlo ed il gioco è fatto.