Un ATtiny85 è un microcontrollore dell' Atmel. Per chi già conosce Arduino (ATmega) non è errato affermare che è uno dei fratellini minori di un Arduino.
Per informazioni sulle sigle e sulle funzionalità vedere il sommario del datasheet o il datasheet completo.
Quando ho scoperto l' ATtiny85 non avevo in mente nessuna domanda e nessuna esigenza particolare, l'ho scoperto per caso e mi ha incuriosito. Dopo qualche minuto di lettura le domande che mi sono fatto (e relative risposte) sono le seguenti:
Perche dovrei utilizzare un ATtiny invece di un Arduino? Per risparmiare soldi e spazio visto che non utilizzerei appieno le funzionalità dell' ATmega328.
Perchè dovrei utilizzare un Arduino invece di un ATtiny? Perchè ho bisogno di più "potenza".
ATtiny VS Arduino
Confrontare un ATtiny con un Arduino non è corretto perchè per Arduino non si intente solo il microcontrollere della serie ATmega, ma tutta la scheda di sviluppo.
A grandi linee le differenze tra un ATtiny84,85 e un ATmega328 sono le seguenti :
ATtiny84 | ATtiny85 | ATmega328 | |
Pin Count |
14 |
8 |
32 |
Max IO pins |
12 |
6 |
23 |
Flash Memory |
8 Kb |
8 Kb |
32 Kb |
EEPROM |
512 bytes |
512 bytes |
1 Kb |
ADC channels |
8 |
4 |
6 (8 on SMD) |
PWM channels |
4 |
6 |
6 |
Timers |
1 8bit 1 16bit |
2 8bit |
2 8bit 1 16bit |
SRAM |
512 bytes |
512 bytes |
2 Kb |
Hardware Serial |
No |
No |
Yes – 1 |
Hardware I2C |
No |
No |
Yes |
External Interrupts |
1 (12PCINT) |
1 (6 PCINT) |
2 (23 PCINT) |
Anche il costo è abbastanza differente. Per un ATtiny85 si aggira intorno ai 2.5 euro.
Per programmare un ATtiny serve un programmatore.
E' possibile acquistarne uno oppure se si ha già un Arduino UNO nel cassetto possiamo trasformarlo in un programmatore con un po di pazienza.
Come programmare un ATtiny85?
Il primo passo è preparare l'Arduino Uno in modo da farlo funzionare come ISP.
Le schermate successive si riferiscono ad Arduino IDE 2.0
Dal menu "File" -> "Examples" -> "11.ArduinoISP" apri il file ArduinoOSP.ino e carica il codice sull'Arduino Uno.

Appena terminato il caricamento, scollega l'Arduino Uno.
Adesso che l'Arduino Uno è diventato un programmatore ISP puoi collegarlo all' ATtiny85.
Puoi utilizzare una breadboard e fare i seguenti collegamenti:

Nota: il condensatore elettrolitico è da 10uF
Adesso puoi procedere alla configurazione dell' Arduino IDE.
Prima di tutto è necessario aggiungere la board.
Dal menu "File" -> "Preferences..." imposta il campo "Additional boards manager URLS:" a:
Successivamente clicca sul tasto "Board" dalla barra a sinistra e installa la board "attint" di David Mellis:

NOTA: Se la board "attiny" non dovesse essere visibile riavvia Arduino IDE.
A questo punti sono necessari altri tre passi per consentire il caricamento del codice all'interno dell' ATtiny.
1. Selezione della board

2. Selezione della frequenza di clock

3.Selezione del processore

4.Selezione del programmatore

5. Caricamento del bootloader

Il solito Blink
Bene, se tutto è andato per il verso giusto puoi caricare il codice sull' ATtiny85.
Supponendo di voler far lampeggiare il led sul piedino n°5 che corrisponde a D0, il codice da caricare è il seguente:
void setup() {
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(1000);
}
Per caricare il codice sull' ATtiny85 la procedura è leggermente diversa. E' necessario cliccare su "Sketch" -> "Upload using programmer":

Adesso puoi estrarre l'ATtiny85 e fare i seguenti collegamenti per veder lampeggiare il led:

Nota: se ricevi l'errore: "Error: Request uploadUsingProgrammer failed with message: Upload using programmer error: Failed programming: no upload port provided" significa che hai sbagliato qualche collegamento, hai cliccato "Upload" invece di "Upload using programmer" o probabilmente ti basta disconnettere e riconnetere l'Arduino e verificare che l'Arduino sia connesso:

Per la diagnosi degli errori è possibile abilitare il logging più dettagliato:

Buon divertimento!
Se hai voglia di lasciarmi un commento mi trovi su Linkedin.