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 newsletter, alí em cima à direita e receba novos posts por email.
Siga-nos no Do bit Ao Byte no Facebook.
Prefere twitter? @DobitAoByte.
Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.
Nossos grupos:
Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/
Projetos Arduino e Eletrônica – https://www.facebook.com/groups/projetosarduinoeletronica/
ESP8266 BR – https://www.facebook.com/groups/ESP8266BR/
Próximo post a caminho!
2 thoughts on “Mais dicas sobre o Digispark Attiny85”