Finalmente oggi mi è arrivato Arduino PRO MINI ordinato la settimana scorsa e ho voluto assolutamente scrivere una guida su come programmarlo tramite Arduino UNO.
Esistono 2 versioni della Pro Mini:
- Versione ufficiale con ATmega168
- Versione con ATmega328 (quella che uso io per il tutorial)
Caratteristiche tecniche per la versione ATmega168:
Microcontroller | ATmega168 |
Operating Voltage | 3.3V or 5V (depending on model) |
Input Voltage | 3.35 -12 V (3.3V model) or 5 – 12 V (5V model) |
Digital I/O Pins | 14 (of which 6 provide PWM output) |
Analog Input Pins | 8 |
DC Current per I/O Pin | 40 mA |
Flash Memory | 16 KB (of which 2 KB used by bootloader) |
SRAM | 1 KB |
EEPROM | 512 bytes |
Clock Speed | 8 MHz (3.3V model) or 16 MHz (5V model) |
Caratteristiche tecniche per la versione ATmega328:
Microcontroller | ATmega328 |
Operating Voltage | 3.3V or 5V (depending on model) |
Input Voltage | 3.35 -12 V (3.3V model) or 5 – 12 V (5V model) |
Digital I/O Pins | 14 (of which 6 provide PWM output) |
Analog Input Pins | 8 |
DC Current per I/O Pin | 40 mA |
Flash Memory | 32 KB (of which 2 KB used by bootloader) |
SRAM | 2 KB |
EEPROM | 1 KB |
Clock Speed | 8 MHz (3.3V model) or 16 MHz (5V model) |
Come vedere nella foto successiva Arduino PRO MINI non ha un ingresso USB, per connetterlo al pc e trasferirci su un programma, ma ha solo I/O seriali. Quindi l’unico modo per programmarlo è quello di usare un convertitore Serial/USB oppure un Arduino UNO (in modo da risparmiare qualche soldino 🙂 ).
Arduino Pro mini si presenta così:
Quindi prima di procedere alla programmazione bisogna saldare gli header maschi in questo modo:
Per utilizzare i pin d’alimentazione, TX e RX (header piegati) ho costruito un cavetto con degli header femmina e dei cavi.
Ecco alcune foto 😉
In questo modo è più facile collegare il PRO MINI ad Arduino UNO o Convertitore.
Ora vi illustro tutti e due i metodi per programmare Arduino PRO MINI:
Utilizzando Convertitori Serial/USB
Se avete intenzione di utilizzare un convertitore per programmare un Pro Mini consiglio di usare uno tra l’Arduino USB2Serial Light e il DFrobot.
Se utilizzate Arduino USB2Serial Light lo schema di collegamento da utilizzare è il seguente (in questo schema viene usato Arduino Mini ma i collegamenti sono gli stessi anche con il PRO MINI cambiano solo le posizioni dei pin sulla board) :
Il circuito è molto semplice da realizzare ma bisogna assicurarsi di inserire il condensatore C da 100 nF per poter resettare il Mini e caricare il nuovo sketch. Da notare anche che il TX del convertitore è collegato all’RX del Mini mentre l’RX del convertitore è collegato all’TX del Mini.
Mentre se volete utilizzare il convertitore DFrobot lo schema elettrico è identico, cambia solo la sigla dove va collegato il reset.
Una volta collegati correttamente tutti i pin basta aprire l’IDE, selezionare la nostra board, la porta COM dove è collegato il convertitore e caricare lo sketch (lo svolgimento è identico e preciso a quando carichiamo gli sketch su Arduino UNO )
Utilizzando Arduino UNO
Se invece non volete spendere altri soldi per un convertitore e siete in possesso di un Arduino Uno potete benissimo utilizzare quest’ultimo per programmare Arduino Pro Mini.
Ora vi spiego come:
Prima di tutto scaricate l’ultimo Arduino IDE a questo LINK.
Successivamente rimuovete l’AtMega328 dalla board Arduino UNO (SE NON EFFETTUATE QUESTO PASSAGGIO RISCHIATE DI BRUCIARE L’INTEGRATO), una volta rimosso passiamo ai collegamenti:
Arduino PRO MINI | Arduino UNO | |
PIN +5V | al | PIN +5V |
PIN GND | al | PIN GND |
PIN RESET | al | PIN RESET |
PIN TX | al | PIN TX |
PIN RX | al | PIN RX |
Ecco alcune foto:
Come vedete ho rimosso l’ATMEGA328 dalla board Arduino UNO!
Quindi dopo aver collegato correttamente i pin possiamo passare alla programmazione (molto semplice). Innanzitutto collegate Arduino Uno al pc tramite il cavo usb ed aprite l’IDE, selezioniamo la porta COM dov’è collegato arduino, poi andate su Tools->board e selezionate Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega328 oppure se avete l’altra versione Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega168.
A questo punto non dobbiamo far altro che caricare uno sketch per verificare il corretto funzionamento della board.
Io ho provato utilizzando lo sketch d’esempio Fade (luminosità led in dissolvenza):
/* Fade This example shows how to fade an LED on pin 9 using the analogWrite() function. This example code is in the public domain. */ int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by void setup() { // declare pin 9 to be an output: pinMode(9, OUTPUT); } void loop() { // set the brightness of pin 9: analogWrite(9, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(30); }
Come vedete il risultato è stato positivo 😀 …
Se avete dubbi su qualcosa non esitate a contattarmi!