Manual

do

Maker

.

com

Mais dicas sobre o Digispark Attiny85

Mais dicas sobre o Digispark Attiny85

O Digispark é bastante diferente de um Arduino. O Atinny85 é uma MCU Atmel também, mas com muita limitação em relação a um Arduino. Mas existem muitas vantagens em utilizá-lo e você sempre deve lembrar-se de que cada coisa tem um propósito específico. Existem muitas vantagens nesse hardware minimalístico, mas é necessário entender as diferenças entre ele e o Arduino para facilitar as coisas quando for manipulá-lo.

Notas primárias

O Attiny85 é uma MCU Atmel, mas não é um Arduino, mesmo que em uma board como a Digispark.

O Digispark contém apenas 6KB de memória flash para armazenamento de código; não dá pra fazer um servidor web nele, ok?

Os pinos 3 r 4 (P3 e P4 respectivamente) são usados para a comunicação e programação USB. É permissivo para uso quando não estiver servindo a nenhum destes outros 2 propósitos.

O pino P3 tem um resistor pull-up de 1.5kOhms conectado a ele, devido ao seu propósito de utilização na USB e isso deve ser considerado ao utilizar esse pino.

O Digispark não tem hardserial e nem conversor serial-usb.

Diversas bibliotecas feitas para Arduino não funcionarão nele por razões óbvias.

Onde comprar

Assim que disponível no nosso parceiro, coloco o link aqui, mas não anteceda a compra, aguarde pelo preço especial oferecido pela Autocore Robótica.

Programação

Nesse outro tutorial mostrei como manipular o LED da board, e esse LED será utilizado para o sensor de nível d'água, de forma que poderei ater-me apenas aos 2 fios do sensor (delícia de liberdade - acompanhe o site).

digitalWrite

Todos os pinos estão aptos a escrita digital de saída (digitalWrite e OUTPUT), mas o pino P5 tem 3V quando seu estado for HIGH. Pode ser até que bastante bom esse recurso, veremos em outro artigo.

 pinMode

A ordem dos pinos digitais são bastante simples, sendo 0 para P0, 1 para P1 e assim port diante.

Exemplo

Então, um exemplo básico de uso do digitalWrite configurando o pino 0 para OUTPUT seria:

int INVERTER = 0;
void setup(){
    pinMode(0,OUTPUT);
}

void loop(){
    digitalWrite(0,INVERTER);
    delay(800);
    INVERTER = !INVERTER;
}

Esse código muda o estado do pino P0 a cada 800ms.

digitalRead

Aqui temos uma situação interessante. O resistor de pull-up interno (ligado quando chamando digitalWrite(0) após configurar o pino como OUTPUT) são muito mais fracos em um Attiny do que em um Arduino, de modo que o LED onboard interfere neles. Se precisar realmente dos pull-up,  não utilize o P0 ou então interrompa a trilha do LED. Para o modelo A isso se aplica ao pino P1, enquanto no modelo B se aplica ao P0.

Um exemplo de leitura sem muito mistério:

int val = 0;

void setup(){
    pinMode(2,INPUT);
}

void loop(){
    val = digitalRead(2);
    ...
}

A leitura analógica também é possível e assim como no Arduino, não é necessário configurar o pino para a leitura analógica. Caso o pino tenha sido previamente configurado como OUTPUT, retroceda o processo configurando-o para INPUT e pronto.

int val = 0;
void setup(){

}

void loop(){
    /*
    P2 = 1 analogico
    P4 = 2 analogico
    P3 = 3 analogico
    P5 = 0 analogico
    */
    val = analogRead(1);
    ...
}
PWM (analogWrite)

Pensou que o Attiny não tinha, né? Bem, eu pensei. Mas tem, então vejamos como é simples uma escrita, considerando que a resolução é de 8 bits:

void setup(){
    pinMode(2,OUTPUT); // para PWM os pinos casam com a ordem (P2)
}

void loop(){
    analogWrite(2,128); //50% do duty cycle
}
analogRead

Agora uma coisa legal; a leitura analógica! Mais simples que a leitura digital, simplesmente leia o pino sem configurá-lo:

valor = analogRead(1); //le P2

Mas suponhamos que previamente você houvesse colocado em alguma parte do código um "pinMode(2,OUTPUT)", bastaria que previamente você configurasse o pino como INPUT:

//configura o pino
pinMode(2, INPUT);
//le do pino 2
value = analogRead(1);

Como você pode ter reparado, os pinos mudam a sequência. A relação entre os pinos é:

  • 1 para o pino 2
  • 2 para o pino 4
  • 3 para o pino 3
  • 5 para o pino 5

Já é o suficiente para você se sentir confiante e tocar seu primeiro projeto com um Digispark, hum?

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.