X

Programando a Digispark ATtiny85 com a IDE do Arduino

Primeiros passos para iniciar a programação da placa de desenvolvimento Digispark (ATtiny85).

Digispark Attiny85

A Digispark é uma placa de desenvolvimento baseada no microcontrolador ATtiny85 fabricado pela Atmel.
É uma placa muito pequena e de baixo custo, sendo ideal para projetos compactos, onde a economia de espaço é requisito.
Além disso, não é necessário aprender outra linguagem de programação. Você pode usar a própria IDE e linguagem do Arduino.

Vejamos suas principais características:

  • Programável pela IDE do Arduino (1.0+);
  • Pode ser alimentada pela  USB ou fonte externa;
  • Regulador 5V on-board
  • 6 Pinos de I/O
  • Memória Flash 8k (6k disponíveis);
  • I2C e SPI
  • PWM
  • LED indicativo para testes

Veja que a Digispark é compatível com o Arduino, mas isso não significa que, tudo que você faz no Arduino, você pode fazer com ela!
Vejamos alguns pontos:

  • O processador utilizado é o Atmel Attiny85 MCU. Ou seja, algums bibliotecas do Arduino podem não ser compatíveis;
  • A memória de programas é bem menor (6 KB);
  • A comunicação I2C é feita I2C nos pinos 0 (SDA) e 2 (SCL);
  • Leitura analógicas podem ser feitas pelos pinos 2 (ADC 1), 3 (ADC 3), 4 (ADC 2) e 5 (ADC 0).
  • O pino 5 possui algumas limitações de corrente
  • O pino VIN suporta tensões entre 7 a 12v.
Digispark Pinagem

Usando a IDE Arduino

Vejamos agora como configurar a IDE do Arduino para programar a Digispark no Windows:

  1. Primeiramente, você deve baixar e instalar os drivers para Windows AQUI
  2. Na IDE do Arduino, no menu Preferências, opção Placas adicionais, acrescente o endereço: http://digistump.com/package_digistump_index.json e pressione OK.
  3. No menu Ferramentas, submenu Placas, selecione Gerenciador de placas. Filtre por Contribui, selecione Digistump AVR Boards e clique em Instalar
  4. No menu Ferramentas, selecione a placa Digispark (Default – 16.5mhz)

Pronto agora, você pode digitar e compilar seu primeiro programa. Sugiro usar o Hello World do Mundo Arduino, o Blink que vem com os programas de exemplo:

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(0, OUTPUT); //LED on Model B
  pinMode(1, OUTPUT); //LED on Model A   
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(1, HIGH);
  delay(1000);               // wait for a second
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(1, LOW); 
  delay(1000);               // wait for a second
}

Obs: Para fazer o upload da aplicação para a placa, o processo é um pouco diferente:

  1. Desconecte o cabo USB
  2. Faça o upload
  3. Quando for solicitado, conecte novamente o cabo

Programa de exemplo

Vejamos mais um programa de exemplo que fiz para testar a placa. Vamos usar o Digispark para controlar um LED RGB conectado às portas 0 (Red), 1 (Green) e 2 (Blue):

#define R 0
#define G 1
#define B 2
void setup() {                
  
  pinMode(R, OUTPUT); 
  pinMode(G, OUTPUT);    
  pinMode(B, OUTPUT);      
}

void loop() {
  digitalWrite(R, HIGH); // WHITE
  digitalWrite(G, HIGH);
  digitalWrite(B, HIGH);
  delay(5000);               
  digitalWrite(R, HIGH); // RED
  digitalWrite(G, LOW);
  digitalWrite(B, LOW);
  delay(5000);               
  digitalWrite(R, LOW);   // GREEN
  digitalWrite(G, HIGH);
  digitalWrite(B, LOW);
  delay(5000);
  digitalWrite(R, LOW);   // BLUE
  digitalWrite(G, LOW);
  digitalWrite(B, HIGH);
  delay(5000);               
}

Saiba mais…

 

José Cintra:
Related Post