La Pro Mini Atmega168 est une carte Arduino réduite à l’essentiel : pas de port USB, pas de prise jack, pas de connecteurs soudés d’avance. Il ne reste que le microcontrôleur, un quartz de 16 MHz et deux rangées de trous à souder. Résultat : une carte de 33 mm sur 18 mm, plus légère qu’une pièce de monnaie, prévue pour rester vissée à l’intérieur d’un boîtier une fois le projet terminé.
La puce embarquée est un ATmega168PA en boîtier TQFP à 32 broches, la même famille que l’ATmega328 de la Uno, en version 16 Ko de mémoire programme. Le brochage est celui de la Pro Mini, compatible avec la Arduino Mini et avec les shields de prototypage prévus pour ce format.
Atmega168 ou Atmega328 : laquelle choisir ?
La différence tient en un tableau, et elle compte au moment de compiler.
| Atmega168 | Atmega328 | |
|---|---|---|
| Mémoire programme (flash) | 16 Ko, dont 2 Ko réservés au chargeur d’amorçage | 32 Ko, dont 2 Ko réservés au chargeur d’amorçage |
| Mémoire vive (SRAM) | 1 Ko | 2 Ko |
| Mémoire EEPROM | 512 octets | 1 Ko |
| Broches, timers, convertisseur | Identiques | Identiques |
En pratique, l’ATmega168 suffit très largement pour piloter des capteurs, un afficheur, un relais ou un servomoteur : un programme de ce genre occupe quelques kilo-octets. Il devient juste quand on empile plusieurs bibliothèques lourdes (écran graphique, carte SD, communication sans fil). Dans ce cas, la Pro Mini Atmega328 offre le double de mémoire sans changer ni le brochage, ni le format.
Caractéristiques techniques
| Microcontrôleur | ATmega168PA — AVR 8 bits, boîtier TQFP 32 broches |
|---|---|
| Tension d’exploitation | 5 V — plage utile 4,5 à 5,5 V à 16 MHz |
| Fréquence | 16 MHz, résonateur céramique soudé sur la carte |
| Mémoire programme | 16 Ko de flash, dont 2 Ko utilisés par le chargeur d’amorçage |
| Mémoire vive | 1 Ko de SRAM — 512 octets d’EEPROM |
| Entrées / sorties | 23 E/S au total : 14 numériques (D0 à D13) et 8 entrées analogiques |
| Sorties PWM | 6 broches : D3, D5, D6, D9, D10 et D11 |
| Convertisseur analogique | 8 canaux, résolution 10 bits (1024 valeurs) |
| Interfaces | UART sur RXI / TXO, I2C sur A4 (SDA) et A5 (SCL), SPI sur D11, D12 et D13 |
| LED témoin | Une LED reliée à D13, comme sur la Uno |
| Programmation | Par l’en-tête 6 trous, avec un adaptateur USB-TTL — aucun port USB sur la carte |
| Réinitialisation | Broche RST sur le connecteur ; certaines séries ajoutent un petit bouton tactile |
| Dimensions | 33 mm sur 18 mm, deux rangées de 12 trous espacés de 2,54 mm |
Le brochage, rangée par rangée
Les 24 trous des bords sont répartis en deux rangées de 12. Le repère le plus simple : chercher la broche RAW, elle commence une rangée ; l’autre rangée commence par TXO.
| Rangée d’alimentation | RAW, GND, RST, VCC, A3, A2, A1, A0, 13, 12, 11, 10 |
|---|---|
| Rangée des signaux | TXO (D1), RXI (D0), RST, GND, 2, 3, 4, 5, 6, 7, 8, 9 |
| En-tête de programmation | 6 trous alignés sur un bord : la masse, l’alimentation, les deux lignes série et la ligne DTR |
Deux trous isolés à l’intérieur de la carte portent A4 et A5 : ce sont les broches du bus I2C (SDA et SCL), précieuses pour un afficheur ou un capteur I2C sans occuper les broches du bord. Les entrées A6 et A7 du boîtier TQFP servent uniquement de conversion analogique : elles ne peuvent pas piloter une sortie numérique.
Une précaution qui évite bien des téléversements ratés : sur l’en-tête de 6 trous, repérez la sérigraphie de la carte avant de brancher l’adaptateur. Un en-tête monté à l’envers n’abîme rien, mais la communication série ne s’établit pas, et on cherche longtemps une panne qui n’existe pas.
Alimentation : rester en 5 V régulé
L’ATmega168PA accepte de 1,8 à 5,5 V, mais pas à n’importe quelle fréquence : à 16 MHz, la tension d’alimentation doit rester dans la plage 4,5 à 5,5 V. Concrètement :
- Alimentez la broche
VCCen 5 V régulé. L’adaptateur USB-TTL fournit ce 5 V pendant la programmation, une alimentation 5V 2A le fournit pour un montage fixe. - Ne branchez pas un pack de 4 piles AA (6 V) directement sur
VCC: la tension à vide dépasse la limite du microcontrôleur. Passez par une régulation 5 V. - Le trou
RAWest destiné à une tension non régulée sur les cartes qui embarquent un régulateur (c’est le cas de la version 3,3 V). - Pour un montage sur pile où la tension baisse en fin de vie, la version 3,3 V à 8 MHz est mieux adaptée : elle fonctionne jusqu’à 2,7 V et consomme moins.
Applications typiques
- Montage définitif — une carte qui reste vissée dans un boîtier, un tableau ou un meuble, une fois le prototypage terminé sur Uno.
- Objets portables — moins de 2 grammes, aucun connecteur inutile, alimentation par piles.
- Mesure et journalisation — température, humidité, luminosité, relevés sur une carte SD ou par le port série.
- Pilotage moteur et servo — six sorties PWM disponibles dans un encombrement minimal.
- Projet en série — la même carte reprogrammable pour plusieurs exemplaires d’un même montage.
- Apprentissage — le même langage et les mêmes bibliothèques que la Uno, avec la contrainte de taille en plus.
Mini-projet : une station de mesure de température et d’humidité
Un montage autonome qui affiche ses relevés sur le moniteur série : la Pro Mini interroge un capteur DHT11, et sa petite LED clignote à chaque mesure pour montrer que la carte travaille.
Ce qu’il faut
| La carte | La Pro Mini Atmega168 de cette page |
|---|---|
| Le capteur | DHT11 Capteur de Température et humidité |
| La programmation | Convertisseur USB to TTL, réglé sur 5 V |
| Les liaisons | Fil souple, soudé directement dans les trous — la carte est livrée sans connecteurs |
| Pour tester à l’aise | Uno R3 + câble USB : le programme s’y essaie avant d’être téléversé sur la Pro Mini |
Le câblage
DHT11 VCC (broche 1) | → Pro Mini VCC (5 V) |
|---|---|
DHT11 DATA (broche 2) | → Pro Mini D2, sur la rangée TXO / RXI |
DHT11 NC (broche 3) | → rien, broche laissée libre |
DHT11 GND (broche 4) | → Pro Mini GND |
L’ordre des broches du DHT11 se lit quand la grille du capteur est face à vous : de gauche à droite, l’alimentation, la donnée, puis la masse. Si vous utilisez un capteur nu, sans sa petite carte, ajoutez une résistance de 10 kΩ entre la broche de donnée et le 5 V : les modules vendus montés la portent déjà.
Le réglage de l’IDE et le programme
Il faut d’abord installer la bibliothèque du capteur : dans l’IDE Arduino, Croquis → Inclure une bibliothèque → Gérer les bibliothèques, puis chercher DHT sensor library. Côté carte, choisissez le type correspondant à l’ATmega168 : Arduino Duemilanove or Diecimila (les versions anciennes de l’IDE l’affichent sous le nom Arduino Diecimila, Duemilanove, or Nano w/ ATmega168), puis le port série de votre adaptateur USB-TTL.
/*
* Station de mesure temperature et humidite - Pro Mini ATmega168
* Carte : Arduino Pro Mini 5 V / 16 MHz
* Montage : capteur DHT11 sur D2, LED temoin de la carte sur D13
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "DHT.h"
const byte PIN_DHT = 2; // broche de donnee du DHT11
const byte PIN_LED = 13; // LED presente sur la carte
DHT dht(PIN_DHT, DHT11);
void setup() {
Serial.begin(9600);
pinMode(PIN_LED, OUTPUT);
dht.begin();
Serial.println("Station de mesure prete");
}
void loop() {
float humidite = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidite) || isnan(temperature)) {
Serial.println("Lecture impossible : verifiez le cablage du DHT11");
} else {
Serial.print("Temperature : ");
Serial.print(temperature);
Serial.println(" C");
Serial.print("Humidite : ");
Serial.print(humidite);
Serial.println(" %");
}
// Le DHT11 ne fournit qu'une mesure par seconde environ :
// inutile de l'interroger plus vite.
digitalWrite(PIN_LED, HIGH);
delay(500);
digitalWrite(PIN_LED, LOW);
delay(1500);
}Pour lire les relevés, ouvrez le moniteur série (Outils → Moniteur série) et réglez la vitesse sur 9600 bauds — c’est la valeur passée à Serial.begin().
Comment ça marche
dht.readTemperature()etdht.readHumidity()renvoient un nombre à virgule, ouNaNsi le capteur ne répond pas. Tester ce cas évite d’afficher une valeur absurde quand un fil est desserré.- Le DHT11 est un capteur d’entrée de gamme : précision de ±2 °C sur la température et ±5 % sur l’humidité, une mesure par seconde environ. Pour une précision supérieure, le DS18B20 travaille au dixième de degré sur un bus OneWire.
- La LED de D13 sert ici de témoin de vie : elle confirme au premier coup d’œil que la carte est alimentée et que la boucle tourne, sans avoir à ouvrir le moniteur série.
- Aucun composant supplémentaire n’est nécessaire : le DHT11 se contente d’une résistance de tirage, déjà présente sur les modules montés.
Pour aller plus loin
- Rendre la mesure visible sans ordinateur — un afficheur LCD 16×02 I2C se branche sur les trous intérieurs
A4etA5, sans occuper de broche du bord. - Commander un ventilateur — un Module 1 relais 5v sur
D7déclenche la ventilation au-delà d’un seuil de température. - Faire tourner un indicateur — le même programme avec un Servomoteur SG90 sur une sortie PWM donne un cadran physique.
- Comparer avec un capteur linéaire — le capteur de température LM35 se lit sur une entrée analogique et permet de comprendre la conversion 10 bits.
Questions fréquentes
Pourquoi n’y a-t-il pas de port USB ?
C’est le choix qui a permis de réduire la taille et le nombre de composants : le circuit d’interface USB est déporté dans un adaptateur externe. On y perd un câble à transporter, on y gagne une carte beaucoup plus plate, qui se glisse dans n’importe quel boîtier. Une fois le projet en place, l’adaptateur n’est plus nécessaire.
Comment téléverser un programme sans bouton de réinitialisation ?
L’adaptateur USB-TTL utilise la ligne DTR pour redémarrer la carte au bon moment, et le téléversement se fait seul. Si votre adaptateur ne gère pas cette ligne, appuyez sur le bouton de réinitialisation de la carte — ou reliez brièvement RST à GND — juste au moment où l’IDE affiche Téléversement… : la fenêtre du chargeur d’amorçage dure moins d’une seconde.
Peut-on l’alimenter en 3,3 V ?
Non, pas à 16 MHz. Le microcontrôleur accepte 1,8 V à basse fréquence, mais à 16 MHz il lui faut au minimum 4,5 V. Pour un projet en 3,3 V, il existe une Pro Mini 8 MHz prévue pour cette tension.
Ma carte chauffe-t-elle anormalement ?
Une légère tiédeur est normale, surtout si la carte alimente un module. Une chaleur franche qui monte en quelques secondes signale presque toujours une inversion d’alimentation ou une sortie qui débite trop : chaque broche d’E/S se limite à 40 mA, et le total de la puce à 200 mA. Pour un moteur, un relais ou une bande de LED, passez par un transistor ou un module de puissance.
Mes téléversements échouent une fois sur deux, pourquoi ?
Trois causes couvrent la quasi-totalité des cas : l’en-tête de 6 trous est branché à l’envers (vérifiez la sérigraphie), l’adaptateur USB-TTL est réglé sur 3,3 V au lieu de 5 V, ou le type de carte sélectionné dans l’IDE n’est pas celui de l’ATmega168. Corrigez ces trois points et la carte se programme de façon fiable.
À combiner avec
Pour la mise au point, la Uno R3 ou la Nano sont plus confortables : on prototypera le montage dessus, puis on le transposera sur la Pro Mini, dont le programme est identique. La programmation passe par le Convertisseur USB to TTL, et pour intervenir directement sur les fusibles ou le chargeur d’amorçage, le Programmateur USBasp AVR fait le travail. Si le programme grossit au point de ne plus tenir dans 16 Ko, la Pro Mini Atmega328 prend la relève au même brochage.











