Feu arrière de vélo 2 plus petit !

ATTiny 85.

Pour réduire la place des composants et du microcontrôleur on utilise un ATTiny 85.

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

 Taille de la mémoire Flash

 8 Ko (pour stocker les programmes, elle est conservée même lorsque vous coupez l’alimentation)

 Mémoire SRAM

 512 Octets (Mémoire temporaire permettant de stocker vos variables par exemple. Elle est à la coupure de l’alimentation)

 Mémoire EEPROM

 512 Octets (Mémoire permettant de stocker des informations qui sont conservées après une coupure de l’alimentation Attention elle possède un nombre limité d’écriture environ 100 000).

Brochage

  • Jusqu’à 6 I/O numériques PB0 à PB5 (5 en pratique, en effet la broche 1 (PB5) sert aussi au RESET

  • Jusqu’à 3 entrées analogiques (Analog input : Broche 7 ADC1, Broche 3 ADC2, Broche 2 ADC3)

  • Jusqu’à 2 sorties en PWM (MLI en français) : Broches 5 et 6

 Tension d’alimentation

 2.7 à 5.5 V

 Fréquence d’utilisation

 0 à 20 MHz

Le petit rond gravé permet de repérer la broche 1.

Programmation du feu vélo sous Tinkerkad

Saisir le montage correspondant sous tinkercad

1
// C++ code
2
//
3
void setup()
4
{  
5
  pinMode(3, INPUT);
6
  pinMode(0, OUTPUT);
7
}
8
9
void loop()
10
{
11
  if(digitalRead(3) == HIGH)
12
  {
13
  	digitalWrite(0, HIGH);
14
  	delay(10); // Wait for 1000 millisecond(s)
15
  }
16
  else
17
  {
18
    digitalWrite(0, LOW);
19
    delay(10); // Wait for 1000 millisecond(s)
20
21
  }
22
}

Tester ce programme qui permet d'allumer une LED lorsqu'on appuie sur le Bouton poussoir.

Adapter le programme du feu vélo au nouveau circuit.

Préparation IDE et programmation Arduino

Lancer Zrduino IDE et ouvrir les préférences dans Fichier.

Copier le lien ci-dessous :

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Programmation Arduino UNO

Dans le menu « Outil », sélectionner :

  • Type de carte : Arduino UNO,

  • Indiquer votre port COM.

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 ATtiny85.

Vérification Arduino comme ISP

Avant de passer à une première programmation d’un ATtiny, nous allons tout d’abord vérifier que le programme ArduinoISP est bien installé.

Pour cela, il faut relier les broches E/S numériques de l’Arduino ci-dessous à des LEDs via des résistances d’environ 250 ohms de la manière suivante (voir schéma et photo du montage en bas de page) :

  • Broche D7 Arduino > LED bleue

  • Broche D8 Arduino > LED rouge

  • Broche D9 Arduino > LED verte

Brancher ensuite votre Arduino sur le port USB de votre PC et si tout se passe bien, la LED verte doit s’allumer et s’éteindre progressivement.

Les autres LEDs indiquent servent à indiquer :

  • LED bleue : Programmation en cours,

  • LED rouge : Erreur.

Débrancher le câble USB.

Connexion de l’ATtiny

Pour pouvoir programmer un ATtiny85, il faut connecter MISO, MOSI, SCK, RESET, VCC, et GND de l’Arduino vers l’ATtiny de la manière suivante (voir schéma et photo du montage en bas de page) :

  • RESET : Arduino Broche D10 -> ATtiny Reset (Broche 1)

  • MOSI   : Arduino Broche D11 -> ATtiny PB0 (Broche 5)

  • MISO   : Arduino Broche D12 -> ATtiny PB1 (Broche 6)

  • SCK      : Arduino Broche D13 -> ATtiny PB2 (Broche 7)

Ensuite, sur l’Arduino placer un condensateur chimique de 10 uF entre la broche RESET et la masse (GND) en respectant la polarité du condensateur. Le pôle négatif du condensateur est indiqué avec un trait.

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 le programme ArduinoISP (et non le bootloader) durant le téléversement du croquis qui est destiné à l’ATtiny et pas à l’Arduino qui doit rester chargé avec le programme ArduinoISP 🙂

En complément pour pouvoir tester la programmation de l’ATtiny85 avec notre premier programme de test blink, il faut ajouter une LED ici bleue entre PB4 de l’ATtiny et la masse en série avec une résistance d’environ 250 ohms.

Le schéma final complet est le suivant :

Premier test de programmation ATtiny avec l’Arduino

Premier test de programmation ATtiny avec l’Arduino

Une fois les connexions réalisées vous pouvez rebrancher votre Arduino sur le port USB de votre PC.

Nous allons maintenant réaliser un programme de test Blink qui permet de faire clignoter une LED et téléverser ce programme dans l’ATtiny à l’aide de l’Arduino comme programmateur ISP puis pour finir  nous réaliserons ensuite un chenillard.

Configuration IDE

Dans le menu « Outil », sélectionner désormais:

  • Type de carte : ATtiny,

  • Processeur : Attiny85,

  • Programmateur : Arduino as ISP.

Configuration complémentaire de l’ATtiny à 8 MHz (optionnel)

Par défaut, l’ATtiny tourne à 1 Mhz. Pour pouvoir utiliser la bibliothèque SoftwareSerial par exemple (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ésenté 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 ».

Le code blink

Le code à saisir dans l’IDE Arduino est le suivant :

1
/*
2
  Programme : Blink
3
  Auteur : PHMARDUINO
4
  Date : Le 22/01/2020
5
  Description : Fait clignoter une LED sur un ATtiny85 branchée sur PB4 (broche 3)
6
 */
7
8
9
// Initialisations
10
void setup() {
11
  // Initialise digital pin ATtiny PB4 en sortie.
12
  pinMode(4, OUTPUT);
13
}
14
15
// Boucle infinie
16
void loop() {
17
  digitalWrite(4, HIGH);   // Allume la LED 
18
  delay(5000);             // Tempo
19
  digitalWrite(4, LOW);    // Eteint la LED
20
  delay(5000);             // Tempo
21
}