Programmare un Attiny85 con Arduino

Ciao!
Oggi vedremo come programmare un Attiny85 con Arduino.
Questi componenti sono come degli Arduini in miniatura, hanno il vantaggio di essere molto piccoli, però hanno delle caratteristiche hardware limitate.
Comunque se dovete realizzare un progetto definitivo ed avete l'esigenza di ridurne al minimo la dimensione questo integrato è quello che fa per voi.


Quello che potete vedere sopra è il pinout dell'Attiny85,
come potete vedere ha pochi pin ma ha sia pin digitali che analogici di ingresso inoltre ha anche pin che supportano la funzione PWM!


Vediamo come programmare questo dispositivo per utilizzarlo in configurazione stand-alone (se vi interessa nel blog trovate anche l'articolo sull'atmega 328, il cuore di Arduino Uno)

Punto 1:

Per prima cosa scaricate questa cartella (valida per le versioni di Arduino 1.0.x),
poi aprite la cartella "hardware" che trovate dove avete l'eseguibile di Arduino
(generalmente la trovate sotto C:/Programmi/Arduino/hardware)

copiate nella cartella "hardware" la cartella "tiny" che avete scaricato prima.

Punto 2:

Ora aprite l'ide di Arduino e collegate al computer il vostro Arduino.
Aprite lo sketch "ArduinoISP" (lo trovate sotto File, Esempi, ArduinoISP)
Caricate lo sketch nel vostro Arduino.

Punto 3:
Ora che avete configurato il vostro Arduino come programmatore realizzate questo collegamento:



Collegate anche il condensatore (minimo 10uF) tra il pin reset e GND, altrimenti non riuscirete a caricare gli sketch!
(il led con resistenza sono opzionali, li ho collegati solo per provare lo sketch che vedremo più avanti)



Con questo metodo potrete anche programmare la scheda Digispark, in questo caso i collegamenti sono:

Pin 10 Arduino:         Pin P5 Digispark
Pin 11 Arduino:         Pin P0 Digispark
Pin 12 Arduino:         Pin P1 Digispark
Pin 13 Arduino;         Pin P2 Digispark
Pin 5V Arduino:        Pin VIN Digispark
Pin GND Arduino:    Pin GND Digispark

Naturalmente anche in questo caso andrà collegato il condensatore da 10uF tra il pin reset e il GND dell'Arduino

Punto 4:

Fatto ciò andate in "Strumenti", "Tipo di Arduino" e selezionate "ATtiny85 @ 8MHz"
(se non ci riuscite tornate al punto 1)

Poi andate il "Strumenti", "Programmatore", e selezionate "Arduino as ISP"

Tornate di nuovo in "Strumenti" e cliccate su "Scrivi il bootloader" (questo va fatto solo la prima volta sugli Attiny85 vergini)

Ora siete pronti per caricare i vostri sketch in questo microcontrollore!

proviamo insieme a caricare lo sketch blink dove ho cambiato il pin 13 di un Arduino standard con il pin 0 per il nostro piccolo Attiny85.

  1. /*
  2.   Blink
  3.   Turns on an LED on for one second, then off for one second, repeatedly.
  4.   Most Arduinos have an on-board LED you can control. On the Uno and
  5.   Leonardo, it is attached to digital pin 13. If you're unsure what
  6.   pin the on-board LED is connected to on your Arduino model, check
  7.   the documentation at http://arduino.cc
  8.   This example code is in the public domain.
  9.   modified 8 May 2014
  10.   by Scott Fitzgerald
  11.  */
  12. // the setup function runs once when you press reset or power the board
  13. void setup() {
  14.   // initialize digital pin 13 as an output.
  15.   pinMode(0, OUTPUT);
  16. }
  17. // the loop function runs over and over again forever
  18. void loop() {
  19.   digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  20.   delay(1000);              // wait for a second
  21.   digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  22.   delay(1000);              // wait for a second
  23. }

Il compilatore vi darà questo warning:

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

Ma non vi preoccupate, è tutto a posto!

Finito! ora potete spremere al massimo questo piccoletto con i vostri progetti, ciao!




Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

12 commenti:

  1. Grazie mille per tutti i tutorial:)

    Una domanda, sono nuovo sia per quanto riguarda l'elettronica che arduino...ma se alimentato separatamente è possibile usare l'Attiny85 in stand-alone senza collegarlo ad arduino?

    RispondiElimina
    Risposte
    1. Grazie del complimento! :)

      Si può essere usato da solo proprio come se fosse un arduino in miniatura!

      Elimina
  2. Ottimo, grazie mille :)

    Altra domanda, e' possibile collegare più' Attiny85 insieme e fare in modo che comunichino e si scambiano dati?
    Sto progettando un sistema modulare i cui elementi devono poter comunicare....idee o suggerimenti? :)

    RispondiElimina
    Risposte
    1. Si puoi farli comunicare via seriale con la libreria virtualserial!

      Elimina
    2. Grazie ancora, gli do un'occhio :)
      Suggerimenti per aumentare il numero di pins utilizzabili?

      Elimina
    3. La soluzione migliore è usare un integrato più grosso, come l'atmega328, trovi come utilizzarlo anche qui sul mio sito. Ciao!

      Elimina
  3. Ciao, un mio dubbio, ma il led lampeggia anche senza aver abbinato un quarzo?

    RispondiElimina
  4. Ciao, è possibile programmate un ATtiny 13.

    RispondiElimina
    Risposte
    1. ciao, non ho mai provato ma penso che il procedimento sia lo stesso. verifica il pinout sul datasheet dell'attiny 13. Ciao!

      Elimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post