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.
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!
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.
- /*
- 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://arduino.cc
- This example code is in the public domain.
- modified 8 May 2014
- 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(0, OUTPUT);
- }
- // the loop function runs over and over again forever
- void loop() {
- digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(1000); // wait for a second
- digitalWrite(0, LOW); // turn the LED off by making the voltage LOW
- delay(1000); // wait for a second
- }
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!
grazie Daniele!!!!!!!!.........
RispondiEliminaNon c'è di che ! :)
EliminaGrazie mille per tutti i tutorial:)
RispondiEliminaUna 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?
Grazie del complimento! :)
EliminaSi può essere usato da solo proprio come se fosse un arduino in miniatura!
Ottimo, grazie mille :)
RispondiEliminaAltra 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? :)
Si puoi farli comunicare via seriale con la libreria virtualserial!
EliminaGrazie ancora, gli do un'occhio :)
EliminaSuggerimenti per aumentare il numero di pins utilizzabili?
La soluzione migliore è usare un integrato più grosso, come l'atmega328, trovi come utilizzarlo anche qui sul mio sito. Ciao!
EliminaCiao, un mio dubbio, ma il led lampeggia anche senza aver abbinato un quarzo?
RispondiEliminaSi è questo il bello, ha un oscillatore interno!
EliminaCiao, è possibile programmate un ATtiny 13.
RispondiEliminaciao, non ho mai provato ma penso che il procedimento sia lo stesso. verifica il pinout sul datasheet dell'attiny 13. Ciao!
Elimina