Auteur :

Ça y est, vous avez fini votre montage Arduino !

Si il demande moins de 6 E/S, vous pouvez le monter sur un ATtiny, un petit CI d’Atmel à 8 broches…

Pour cela, il suffit de suivre ce mode d’emploi.

tuto programmation des attiny45 avec un arduino 04 600x337 TUTO : Programmation des ATtiny avec un Arduino

Programmation

Ils vous faut :

Arduino as ISP :

Branchez seulement l’Arduino et lancez le programme « ArduinoISP », trouvable dans le dossier d’exemples.

Câblage :

Une image vaut mieux qu’un long discours…

tuto programmation des attiny45 avec un arduino 01 600x594 TUTO : Programmation des ATtiny avec un Arduino

Les LEDs sont optionnelles.

Compilation :

Sélectionnez votre ATtiny en allant dans Outils>Type de carte>ATtiny XX

Puis cliquez sur Outils>Programmateur>Arduino as ISP

Si c’est la première fois que vous compilez sur un ATtiny spécifique, cliquez sur Outils>Graver la séquence d’initialisation (Burn bootloader)

Vous n’avez plus qu’à compiler votre programme et l’envoyer !


Il y a de fortes chances qu’il vous dise ça :

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny XX

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny XX

Ce n’est pas grave.

Utilitaires

Pinout :

tuto programmation des attiny45 avec un arduino 02 TUTO : Programmation des ATtiny avec un Arduino

Pour utiliser l’I²C (broches 7 : SCL et 5 : SDA), il faut mettre des résistances de pullup.

La plupart des librairies ne sont pas compatible avec les ATtiny, en voici quelques-une bien utiles :

  • DHT
  • I²C
  • Servo (pas compatible avec One Wire)
  • Virtual Wire (malheureusement, je ne trouve pas de librairie compatible …)

Shield programmateur

Vous pouvez simplement vous faire un petit shield en gravant une plaque de cuivre à l’anglaise :

tuto programmation des attiny45 avec un arduino 03 600x337 TUTO : Programmation des ATtiny avec un Arduino

Vous pouvez retrouver un kit ATtiny45 complet dans la boutique :

boutique.semageek.com/fr/144-kit-attiny45

 

  • http://twitter.com/Ainonyme Ainonyme

    Une seule petite question, l’attiny c’est le même language qu’arduino ou c’est un autre dérivé du language c

    • semageek

      Cela reste du C

    • elriri

      les deux sont possibles en pure C ou via les lib Arduino.

  • Simon

    Merci pour ce tuto. Très intéressant !

  • Fabien

    Et on peu utiliser v-usb avec ce montage, et dans ce cas là vous auriez des liens ?

  • Monstercrunch

    Peut on programmer des processeurs plus gros (plus d’i/o) avec l’arduino ?

    • http://www.facebook.com/maurice.zotan Zûr Ingénieur

      Oui bien sur, c’est effectivement possible (et bien pratique :D).

    • Monstercrunch

      Il suffit de brancher les mêmes pinout ? (pb0,1,2, VCC, Reset, qui ne sont pas au même endroit, on est d’accord ;) )

  • http://www.facebook.com/maurice.zotan Zûr Ingénieur

    Je suis un novice ^^ »
    Mais les résistances présentent ici servent à protéger les LEDs, c’est bien ça ?
    A quoi servent les 2 résistance vendues avec le ATTiny dans la boutique ?
    A quoi sert le condensateur également présent ?
    Merci

    • Monstercrunch

      Il me semble (je suis pas sûr du tout) que le condensateur empêche le reset auto de la carte arduino au moment de programmer l’attiny, sans quoi ça ne fonctionnerait pas. Mais à vérifier ^^’

    • Telec16

      Exacte ^^

    • Telec16

      Les résistances servent en effet à protéger les LEDs.
      Les 2 résistances vendus dans la boutiques servent pour l’I²C.

    • Monstercrunch

      I²C ?

    • Telec16

      C’est un protocole de communication

  • Ignacio Franzone

    faut-il enlevait le attmega pour programme le attiny ?

    • Calexo

      Non !

  • benoît

    Le lien vers la librairie i2C est mort. Avez vous un autre lien pour la télécharger ?

  • Monstercrunch

    J’ai reçu le kit de la boutique cependant une chose m’interpelle: à quoi servent les deux résistances ? Dans ce tuto on en utilise 3 pour les leds, mais ce ne sont même pas les mêmes que dans le kit =/

    • semageek

      Je crois que tu avait déjà posé la question, mais ces deux résistances de pull-up souvent utilisées pour la com I2C avec l’ATTiny45

    • Monstercrunch

      Ah, je ne m’en souviens pas… Merci pour la réponse !

  • skc

    Bonjour,

    Le concept est extrêmement intéressant, hélas, la réalisation n’est pas aussi simple.

    Je pense que cette page, si elle est destinée à servir de référence, devrait être retravaillée un peu. Ci-dessous, vous trouverez les points qui me semble importants et les questions que je me pose. Merci de m’indiquer si je fais des erreurs.

    Pour l’instant je ne parviens pas à jouer le test de la LED clignotante.

    J’ai compris qu’il y avait trois étapes:

    1. Préparer l’ATtiny
    2. Programmer l’ATtiny
    3. Faire fonctionner l’ATtiny

    Chapitre 1: Préparer l’ATtiny.

    – Il faut un Arduino que l’on programme en mode « Arduino as ISP », on trouve le programme dans les exemples de l’environnement de développement sous le nom « ArduinoISP ».

    J’ai un Arduino Leonardo, est-il compatible ?

    – Ensuite il faut charger le ATtiny avec un code de démarrage, on réalise le montage décrit dans l’image qui permet d’utiliser notre ArduinoISP. On exécute « Tools>Burn Bootloader » ou « Outils>Graver la séquence d’initialisation » en français.

    Premier problème: Je constate un reset à chaque « Burn Bootloader », j’ai remplacé le condensateur de 10µF par un 100µF qui semble avoir réglé le problème (je ne constate plus le clignotement caractéristique du démarrage sur la LED intégrée).

    Second problème, lorsque je lance la gravure du bootloader, j’ai l’erreur suivante:
    avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
    avrdude: Device signature = 0x000000 (en mode debug)
    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override this check.

    Est-ce qu’une gravure raté peut avoir ce genre de conséquences ?

    Chapitre 2 : Programmer l’ATtiny

    – Il faut dézipper l’archive indiquée dans le répertoire hardware/attiny; ce qui donne les fichiers suivants:
    hardware/attiny/variants/tiny8/pins_arduino.h
    hardware/attiny/variants/tiny14/pins_arduino.h
    hardware/attiny/boards.txt

    – Redémarrer l’environnement, et choisir « Tools>Board>ATtinyXX (internal X MHz clock) »

    Est-ce que l’on a le choix de la fréquence interne ? Pour les fréquences externes, j’imagine qu’il faut installer un quartz (peut-être l’indiquer)

    Là, le pinout est utile.

    On écrit son code (ça serait bien de donner un exemple tout simple, comme la LED qui clignote). Comment le grave-t’on dans l’ATtiny ? On conserve le montage arduinoISP à l’identique comme pour graver le firmware ?

    Dans l’environnement, il y a une entrée « File>Upload using Programmer », est-ce que c’est ce qu’il faut utiliser, ou bien il faut utiliser le bouton d’upload classique ?

    Chapitre 3 : Faire fonctionner l’ATtiny

    Quels conditions particulières ? Il faut connecter GND à la masse, Vcc au +5 volts, que faire du pin « Reset » ? Un condensateur de 100nF en découplage sur l’alimentation comme d’habitude ? Combien peut-on consommer sur les pins ?

    • skc

      Après de nombreuses recherche, d’analyse du code de l’ArduinoISP, j’ai découverts que le Leonardo n’a pas les ports au même endroit. Il utilise les registres SPI et ces registres n’agissent sur des pin qui ne sont connectés qu’au port ICSP.

      J’ai réussi à utiliser le Leonardo de la façon suivante:

      – Modifier le code pour remplacer le « #define RESET SS » en « #define RESET 10″
      – Uploader cette version modifiée dans le Leonardo
      – A la place des pins 11, 12 et 13 du Leonardo, utiliser respectivement les pins 4 (MOSI), 1 (MISO) et 3 (SCL) du connecteur ICSP.

  • KZL

    Bonjour, je n’ai pas testé à la maison, mais cela me plait bien comme système.
    Vous pouvez me dire si il arrive que 2 led fonctionnent en même temps ou je peux utiliser une led RGB? (histoire d’éviter de mélanger les couleurs)

  • Frédéric

    Problème !!!!!! Quand j’essaie de programmer le code « Blink » (sur une broche respective de l’ATtiny85), Le programme arduino affiche ceci comme erreur :

    Blink.ino:13:21: error: Arduino.h: No such file or directory

    Blink.ino: In function ‘void setup()':

    Blink:18: error: ‘OUTPUT’ was not declared in this scope

    Blink:18: error: ‘pinMode’ was not declared in this scope

    Blink.ino: In function ‘void loop()':

    Blink:23: error: ‘HIGH’ was not declared in this scope

    Blink:23: error: ‘digitalWrite’ was not declared in this scope

    Blink:24: error: ‘delay’ was not declared in this scope

    Blink:25: error: ‘LOW’ was not declared in this scope

    Blink.ino:13:21: error: Arduino.h: No such file or directory

    Blink.ino: In function ‘void setup()':

    Blink:18: error: ‘OUTPUT’ was not declared in this scope

    Blink:18: error: ‘pinMode’ was not declared in this scope

    Blink.ino: In function ‘void loop()':

    Blink:23: error: ‘HIGH’ was not declared in this scope

    Blink:23: error: ‘digitalWrite’ was not declared in this scope

    Blink:24: error: ‘delay’ was not declared in this scope

    Blink:25: error: ‘LOW’ was not declared in this scope

    [fin de citation]. Et la broche de l’ATtiny ne clignote pas comme elle devrait :(
    Quelqu’un peut m’aider ???