Les points à développer :

1-Les ATtiny

2-Câblage avec Arduino

3-Le simple code pour teste

Les ATtiny

Les Attiny sont des microcontrôleurs très intéressants car même s’ils ne sont pas très puissants (enfin certains seulement … comme celui que j’utilise pour cet article), ils ont l’avantage de ne pas être chers, de consommer peu d’énergie et de prendre peu de place.

Ils peuvent être utilisés pour réaliser des capteurs de mesure de la température, de l’hygrométrie ou de toute autre grandeur physico-chimique dans le cadre de l’internet des objets par exemple … Ou plus simplement pour  fabriquer par exemple une carte d’anniversaire qui joue de la musique tout en faisant clignoter des Leds.

Ils sont fabriqués par Atmel (la compagnie qui fabrique aussi les microcontrôleurs Atmega utilisés dans les Arduino)

Cet article montre comment il est possible de programmer facilement un Attiny85 à l’aide d’un Arduino UNO transformé en programmateur ISP.

NB : ISP signifie « In-System Programming » qui se traduit par programmation in-situ. C’est un procédé permettant de programmer un microcontrôleur (ici l’Attiny) alors qu’il est déjà en place sur la carte qu’il doit piloter.

Présentation de l’Attiny 85

Les caractéristiques techniques de ce micro-contrôleur sont les suivantes:

Taille de la mémoire Flash 8 Ko (pour les programmes)
Mémoire SRAM 512 Octets
Mémoire EEPROM 512 Octets
Nombre d’entrées/sorties: Jusqu’à 6 (5 en pratique)
Courant maximal en sortie: 40 mA
Courant maximal total 200 mA

Tension d’alimentation : 2.7 à 5.5V
Fréquence d’utilisation : 0 à 20Mhz

 

Photo de l’Attiny85 
Brochage de l’Attiny85

Préparation IDE Arduino

La préparation de l’IDE Arduino en version 1.6.9 est décrite ci-dessous :

Aller dans les préférences et saisir l’URL  suivante: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards manager/package_damellis_attiny_index.json dans la zone « Additional board URL » en bas de l’écran, puis cliquer sur OK :

Aller ensuite dans le menu « Type de carte » / « Boards Manager », cliquer sur attiny et un bouton « Install » doit apparaître désormais.

Cliquer dessus.

Le message « INSTALLED » doit apparaître à la fin de l’installation comme on peut le voir ci-dessous :

… et dans le menu « Outil » / « Type de carte » il doit désormais y avoir Attiny… Votre IDE Arduino est désormais pret pour programmer des Attiny.

Dans le menu « Outil », sélectionner :

  • Type de carte : Attiny,
  • Processor : Attiny85,
  • Programmateur : Arduino as ISP.

Ensuite ouvrir le sketch ArduinoISP disponible via les menus dans les exemples et le téléverser dans votre Arduino.

Votre Arduino est désormais capable de programmer des Attiny.

Rappel du brochage de l’Attiny85 :

Il faut connecter MISO, MOSI, SCK, RESET, VCC, et GND de l’Arduino vers l’Attiny de la manière suivante :

  • RESET : Arduino Pin 10 -> ATtiny Reset Pin (patte 1)
  • MOSI   : Arduino Pin 11 -> ATtiny Pin 0 (patte 5)
  • MISO   : Arduino Pin 12 -> ATtiny Pin 1 (patte 6)
  • SCK      : Arduino Pin 13 -> ATtiny Pin 2 (patte 7)

Ensuite, sur l’Arduino placer un condensateur chimique de 10 uF entre la broche Reset et la masse (GND) de l’Arduino (pole négatif avec un trait sur le condensateur).

Ce condensateur empêche la carte Arduino de faire un reset et de redémarrer ainsi le bootloader lors des téléversements destinés à l’Attiny. De cette façon en effet on est sûr que l’IDE Arduino rentre en communication avec ArduinoISP (et non le bootloader) durant le téléversement du croquis qui est destiné à l’Attiny et pas à l’Arduino.

Câblage avec Arduino

Configuration de l’Attiny à 8 MHz (optionnel) 

Par défaut, l’Attiny tourne à 1 Mhz. Pour pouvoir utiliser la bibliothèque SoftwareSerial (si vous en avez le besoin), il faut le programmer pour qu’il tourne à 8 Mhz.

Pour cela, une fois le montage réalisé présenter précédemment, il faut choisir dans le menu « Outil » / « Clock » / « 8Mhz INTERNAL ».

Ensuite sélectionner dans le menu « Outil » « Graver la séquence d’initialisation ».

Test du programmateur d’Attiny avec l’Arduino 

Nous allons maintenant réaliser un programme de test et téléverser ce programme dans l’Attiny à l’aide de l’Arduino comme programmateur ISP puis un chenillard.

Le simple code pour le test

Programme de test 1 

Pour le premier test on peut simplement utiliser l’exemple classique blink disponible via les menus  en remplaçant ensuite, pour la Led à faire clignoter, la patte 13 indiquée dans le sketch par la patte 3 et brancher ensuite sur l’Attiny (pin 3) une Led en série avec une résistance de 150 ohms environ.

Code :

/* Blink Turns on an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the Uno and Leonardo, it is attached to digital pin 13. If you’re unsure what pin the on-board LED is connected to on your Arduino model, check the documentation at http://www.arduino.cc This example code is in the public domain. by Scott Fitzgerald */

// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin 13 as an output.

pinMode(3, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(3, HIGH);   // turn the LED on (HIGH is the voltage level)

delay(1000);              // wait for a second

digitalWrite(3, LOW);    // turn the LED off by making the voltage LOW

delay(5000);              // wait for a second

}

Programme chenillard à quatre LEDs 

Le programme ci-dessous développé pour l’Attiny est un chenillard avec quatre Leds connectées de la manière suivante :

  • Pin 0 Attiny : led verte
  • Pin 1 Attiny : led jaune
  • Pin 2 Attiny : led bleue
  • Pin 3 Attiny : led rouge

Rappel brochage Attiny 85 :

Saisir ce programme dans l’IDE Arduino puis demander son téléversement.

/* Chenillard avec un ATTINY 85 programmé en ISP avec un Arduino UNO Fait le 11 12 2015 */ #define VERT 0    // La led verte est sur la brohe 0 de l’ATTINY

#define ROUGE 3   // La led rouge est sur la brohe 3 de l’ATTINY

#define BLEU 2    // La led bleue est sur la brohe 2 de l’ATTINY

#define JAUNE 1   // La led jaune est sur la brohe 1 de l’ATTINY // Initialisation en sortie des pattes et extinction des LEDs

void setup() {

pinMode(VERT, OUTPUT);

pinMode(ROUGE, OUTPUT);

pinMode(BLEU, OUTPUT);

pinMode(JAUNE, OUTPUT);

digitalWrite(VERT, LOW);

digitalWrite(ROUGE, LOW);

digitalWrite(BLEU, LOW);

digitalWrite(JAUNE, LOW);

}

// Boucle d allumage et extinction des LEDs en série

void loop() {

digitalWrite(BLEU, HIGH); // allumage led bleue

delay(1000); // attente une seconde

digitalWrite(BLEU, LOW); // extinction de la led bleue

delay(1000); // attente une seconde

digitalWrite(JAUNE, HIGH);

delay(1000);

digitalWrite(JAUNE, LOW);

delay(1000);

digitalWrite(VERT, HIGH);

delay(1000);

digitalWrite(VERT, LOW);

delay(1000);

digitalWrite(ROUGE, HIGH);

delay(1000);

digitalWrite(ROUGE, LOW);

delay(1000);

}

Référence 

Pour info, les ordres Arduino ne sont pas tous utilisables pour un programme destiné à l’Attiny. Seuls les ordres Arduino ci-dessous sont disponibles pour les programmes Attiny :

Montage 

Une fois la programmation de l’Attiny terminée, celui-ci peut fonctionner de manière autonome.

Dans le montage ci-dessous, l’Attiny est  connecté à l’Arduino pour juste l’alimentation pendant les tests (fils noir et rouge) mais il peut bien sur être alimenté à l’aide d’une simple pile et fonctionner ainsi de manière complètement autonome.

Merci pour votre attention !

Les détails ne sont pas renseignés

0.00 average based on 0 ratings

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Course Features

  • Duration : 10 week
  • Max Students : 1000
  • Enrolled : 0
  • Assessments : Self
Price :
Gratuit

Rating

Average Rating: 0.00

Star
0%
Star
0%
Star
0%
Star
0%
Star
0%