Prise en main ATTiny85

On m’a souvent parlé des attiny85 comme de petits arduino programmable consommant très peu de courant (< 1uA en deep sleep). On va donc voir comment programmer ces petites bêtes !

Découverte de l’ATTiny85

L’attiny85 est un microcontroleur à 8 pattes qui se programme avec des commandes types Arduino. C’est un modèle réduit de l’atmega328.

Mémoire Flash8 Ko
Mémoire SRam0,5 Ko
Mémoire EEProm0,5 Ko
Broches8
E/S numériques max6
Entrées analogiques4
Alimentation2,7 – 5,5V
Brochage

Pour pouvoir programmer l’attiny85, on va passer par un arduino uno qui servira de programmateur.

Paramétrer l’Arduino Uno

Il faut d’abord aller dans les préférences de l’Arduino (Arduino -> Préférences et lui rajouter l’url de gestionnaire de cartes suivante : https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Puis on va aller dans le gestionnaire de cartes pour installer la attiny. Aller dans outils -> type de carte -> gestionnaire de carte.

Chercher attiny, sélectionner celui de David A. Mellis et cliquer sur installer.

Ensuite, il faut charger le programme ISP sur l’Arduino pour pouvoir ensuite programmer les ATTiny. Lancer le programme d’exemple ArduinoISP via Fichier -> Exemples -> 11. Arduino ISP -> Arduino ISP

Puis téléverser le programme sur l’Arduino.

Câblage de l’ATTiny85

Pour pouvoir programmer l’attiny85, il est nécessaire de le raccorder à l’Arduino comme suit :

Il faut un condensateur 10 uF, entre RESET et GND. La bande blanche sera connectée au GND. Si vous pensez programmer souvent des attiny85, je vous conseille de vous fabriquer une carte d’interface sur plaque perforée. Voici la mienne ci dessous (le condensateur est sur le dessous de la carte).

J’ai rajouté sur la pin D7 une led pour le heartbeat, sur la pin D8 une led rouge d’erreur, et en D9 une led verte d’activité de téléversement. Ces leds sont déclarées dans le programme ISP.

Préparation de l’ATTiny

Pour pouvoir téléverser un programme sur l’attiny85, il faut au préalable le préparer. On va tout d’abord graver la séquence d’initialisation. Pour ce faire, brancher votre attiny sur votre arduino puis, sélectionner Outils -> Type de carte -> Attiny 25/45/85

Vérifier que vous êtes bien en 8MHz et ATTiny85 comme ci dessous

Puis, très important, il faut choisir le programmateur. Dans outils -> programmateur, sélection Arduino as ISP.

Attention : il faut bien choisir Arduino as ISP et non pas ArduinoISP car cela ne fonctionne pas !

Puis nous allons graver la séquence d’initialisation. Aller dans outils puis Graver la séquence d’initialisation. Cette manipulation n’est à faire qu’une seule fois par attiny !

Mon premier programme

Ca y est, l’attiny est prêt à recevoir son premier programme. Je vous propose de coder un feu tricolore, avec 3 leds : vert, jaune rouge. Vert sera allumé 5 sec, jaune 2 sec et rouge 8 sec, soit des cycles de 15 secondes.

/*
  Attiny85 - programme démo feu tricolore
  avec : 
     - Attiny85
     - led rouge
     - led jaune
     - led verte
     - resistance 560 ohms
  Source :     https://www.sla99.fr
  30/11/2019  v0    version initiale

*/

const int LED_ROUGE = 0;
const int LED_JAUNE = 1;
const int LED_VERTE = 2;



void setup() {
  pinMode(LED_ROUGE, OUTPUT);
  pinMode(LED_JAUNE, OUTPUT);
  pinMode(LED_VERTE, OUTPUT);
}

void loop() {
  //feu vert, 5 sec
  digitalWrite(LED_VERTE, HIGH);
  digitalWrite(LED_JAUNE, LOW);
  digitalWrite(LED_ROUGE, LOW);
  delay(5000);

  //feu jaune, 2 sec
  digitalWrite(LED_VERTE, LOW);
  digitalWrite(LED_JAUNE, HIGH);
  digitalWrite(LED_ROUGE, LOW);
  delay(2000);

  //feu rouge, 8 sec
  digitalWrite(LED_VERTE, LOW);
  digitalWrite(LED_JAUNE, LOW);
  digitalWrite(LED_ROUGE, HIGH);
  delay(8000);
}

Copier le programme puis téléverser-le.

Conclusion

Une prise en main rapide et efficace. La fabrication de la platine de programmation prend un peu de temps mais en fait gagner beaucoup ensuite.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.