Programando ATtiny85 com Arduino Uno
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Estou trabalhando em um projeto que requer a leitura de dados de vários sensores em locais diferentes. Eles exigem apenas alguns pinos PWM, portanto, usar vários Arduino Uno seria caro e desnecessário. Portanto, decidi usar o microcontrolador ATtiny85 no lugar das placas de desenvolvimento Arduino Uno. ATtiny85 é uma alternativa barata e poderosa quando você não precisa de muitos pinos PWM. Como o ATtiny85 é apenas um microcontrolador, precisamos de um Arduino Uno para programá-lo. Neste projeto irei explicar como fazer isso. Abaixo está a configuração de pinos do ATtiny85 e a folha de dados pode ser encontrada aqui http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf.
Configurando o Arduino Uno como um ISP (Programação no sistema)
Para programar o ATtiny85, primeiro precisamos definir o Arduino Uno no modo ISP. Conecte seu Arduino Uno ao PC. Abra o IDE do Arduino e o arquivo de exemplo do ArduinoISP (Arquivo -> Exemplos -> ArduinoISP) e faça o upload.
Adicionando suporte ATtiny85 ao Arduino IDE
Por padrão, o Arduino IDE não suporta ATtiny85, então devemos adicionar placas ATtiny ao Arduino IDE. Abra Arquivo -> Preferências e nos URLs do Gerenciador de placas adicionais forneça este url https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json.
Depois de fazer isso, abra Ferramentas -> Quadro -> Gerenciador de Quadro
Depois de abrir o Board Manager, role para baixo na lista onde diz "attiny by Davis A. Mellis". Clique nele e instale-o.
Depois de instalar agora, você poderá ver uma nova entrada no menu do Conselho
Conectando ATtiny85 com Arduino Uno
Agora, com todas as coisas acima prontas, começaremos a programar o attiny85. Conecte o arduino uno ao attiny85 usando a placa de ensaio como abaixo.
Arduino Uno - ATtiny85
- 5V - Vcc
- Gnd - Gnd
- Pino 13 - Pino 2
- Pino 12 - Pino 1
- Pino 11 - Pino 0
- Pino 10 - Redefinir
Adicione um capacitor de 10uF entre RESET e GND no Arduino. Isso evita que o arduino seja redefinido automaticamente quando carregamos o programa para attiny85. Se você estiver usando um capacitor eletrolítico, certifique-se de que o ânodo vá em GND de uno.
Carregando programa para ATtiny85
Agora, de volta ao Arduino IDE. Selecione ATtiny em Ferramentas -> Placa. Em seguida, selecione ATtiny85 em Ferramentas -> Processador. E selecione 8 MHz (interno) em Ferramentas -> Relógio.
Em seguida, certifique-se de que Arduino como ISP esteja selecionado em Ferramentas -> Programador
Por padrão, o ATtiny85 funciona a 1 MHz. Para fazê-lo funcionar a 8 MHz, selecione Ferramentas -> Gravar bootloader.
Você receberá a mensagem acima se a gravação do bootloader for bem-sucedida.
Agora abra o exemplo Blink dos exemplos do Arduino e mude o número do pino de 13 para 0 e faça o upload.
Você pode ver a mensagem acima se tudo deu certo. Agora carregamos o programa blink para ATtiny85 e agora vamos testá-lo.
Testando ATtiny85 Blink
Agora é hora de testar. Remova todas as conexões do Arduino e pegue uma fonte de alimentação. Aqui, usarei uma célula-botão para alimentar o ATtiny85.
Lá está o programa blink rodando em um ATtiny85 com apenas uma célula de bateria para alimentá-lo. Você pode fazer muitos projetos com baixo custo, baixo consumo de energia e pouco espaço. Apenas sua imaginação é o limite aqui e o número de pinos PWM, é claro.
Tornando-se um escudo
Converti o circuito acima em um escudo compatível com Arduino Uno.
(Observação:como desenvolvedor de software, este é meu primeiro projeto em eletrônica. Dê suas sugestões para me ajudar a fazer mais.)
Código
- Programa Blink
Programa Blink C / C ++
/ * Blink Acende um LED por um segundo e depois apaga por um segundo, repetidamente. A maioria dos Arduinos tem um LED integrado que você pode controlar. No Uno e no Leonardo, ele é conectado ao pino digital 13. Se você não tiver certeza de qual pino o LED on-board está conectado em seu modelo Arduino, verifique a documentação em http://arduino.cc Este código de exemplo está em o domínio público. modificado em 8 de maio de 2014 por Scott Fitzgerald * /// a função de configuração é executada uma vez quando você pressiona reset ou liga o boardvoid setup () {// inicializa o pino digital 13 como uma saída. pinMode (0, OUTPUT);} // a função de loop é executada continuamente forevervoid loop () {digitalWrite (0, HIGH); // liga o LED (HIGH é o nível de tensão) delay (1000); // espera por um segundo digitalWrite (0, LOW); // desliga o LED tornando a voltagem LOW delay (1000); // espere um segundo}
Esquemas
Processo de manufatura
- Python - Programação de extensão com C
- Relógio Arduino com horas de oração islâmica
- Aceitar moeda de controle com Arduino
- Arduino com Bluetooth para controlar um LED!
- Calculadora UNO simples
- Exibindo uma imagem em uma tela LCD TFT com o Arduino UNO!
- Persistência da visão
- Controlando uma matriz de LED com Arduino Uno
- Cubo de LED 4x4x4 com Arduino Uno e 1sheeld
- Controle de ventilador PWM de 4 pinos de 25 kHz com Arduino Uno