Programmare Arduino PRO MINI con Arduino UNO

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ì:

2014-02-20 18.52.24 2014-02-20 18.53.49

Quindi prima di procedere alla programmazione bisogna saldare gli header maschi in questo modo:

2014-02-20 20.06.15 2014-02-20 20.05.39

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 😉

2014-02-20 18.54.38

2014-02-20 18.54.462014-02-20 19.01.21

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

ArduinoMiniUsbSerial

 

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.

ArduinoMiniUsbSerial2

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:

2014-02-20 20.47.50

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.

arduinopromini

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 😀 …

2014-02-21 18.24.53

Se avete dubbi su qualcosa non esitate a contattarmi!