Digispark ATtiny85 e AT24C256 (Base para Projetos com ESP32)
Aprenda como criar um dispositivo USB inteligente com Digispark ATtiny85 capaz de armazenar e exibir automaticamente uma lista de medicamentos no computador utilizando a memória AT24C256.
![]() |
| Projeto com Digispark ATtiny85 e memória AT24C256 que exibe automaticamente uma lista de medicamentos no computador via USB utilizando protocolo I2C. |
👉 Um projeto simples, útil e perfeito para automação pessoal!
📌 Introdução
Manter o controle dos horários de medicamentos é essencial, mas na correria do dia a dia isso pode ser difícil.
Com este projeto, você cria um lembrete automático via USB:
✔ Conectou no PC → funciona sozinho
✔ Abre o bloco de notas
✔ Exibe sua lista de remédios automaticamente
💡 Ideal para uso pessoal, idosos ou automação doméstica.
⚙️ Como funciona o projeto
O Digispark ATtiny85 atua como um teclado USB (HID), digitando automaticamente no computador.
🔄 Fluxo do sistema:
- Os dados são armazenados na AT24C256
- O Digispark lê via I2C
- Ao conectar no PC:
- Abre o Notepad
- Digita a lista automaticamente
🔌 Componentes necessários
- Digispark ATtiny85
- EEPROM AT24C256 (32KB)
- 2 resistores 4.7kΩ
- Jumpers
- Placa ilhada (dupla face)
🔧 Ligações do circuito
📍 Conexões principais
| AT24C256 | Digispark |
|---|---|
| VCC → | 5V |
| GND → | GND |
| SDA → | P0 |
| SCL → | P2 |
| WP → | GND |
⚠️ Resistores Pull-up (OBRIGATÓRIO)
- SDA → resistor 4.7kΩ para VCC
- SCL → resistor 4.7kΩ para VCC
👉 Garantem:
- Comunicação estável
- Evitam falhas no I2C
- Melhor desempenho
💊 Exemplo de lista de remédios
Paracetamol - 08:00
Ibuprofeno - 12:00
Omeprazol - 07:00
Dipirona - 18:00
Vitamina D - 09:00
Losartana - 10:00
Aspirina - 14:00
Amoxicilina - 16:00
Loratadina - 20:00
Metformina - 22:00
💾 Memória AT24C256 + I2C
![]() |
| Diagrama dos pinos da memória EEPROM AT24C256, barramento I2C e seleção de endereço (A0, A1, A2). |
🔍 Características:
- Capacidade: 32 KB
- Interface: I2C
- Endereçamento: 0x0000 a 0x7FFF
- Ciclos de escrita: ~1 milhão
👉 Permite armazenar 50 a 200 remédios facilmente
🔌 Entendendo o I2C (rápido e direto)
O I2C usa apenas 2 fios:
- SDA → dados
- SCL → clock
🧠 Conceitos:
✔ Mestre e escravo
✔ Endereço único por dispositivo
✔ Comunicação simples e eficiente
🧠 Endereço da AT24C256
- Faixa: 0x50 a 0x57
- Com A0=A1=A2=0 → 0x50
👉 #define EEPROM_ADDR 0x50
🤖 Memória do Digispark ATtiny85
| Tipo | Tamanho |
|---|---|
| Flash → | ~6 KB úteis |
| SRAM → | 512 bytes |
| EEPROM → | 512 bytes |
👉 Comparação:
| Memória | Tamanho |
|---|---|
| EEPROM interna → | 512 bytes |
| AT24C256 → | 32.768 bytes |
🚀 A AT24C256 é 64x maior!
💻 Código para gravar na EEPROM
/* ========================================================= Projeto: Gravador de Dados na EEPROM AT24C256 Plataforma: Digispark ATtiny85 Autor: RodRobot Descrição: Este código grava uma lista de medicamentos com horários na memória EEPROM AT24C256 utilizando comunicação I2C. Hardware: - Digispark ATtiny85 - EEPROM AT24C256 - Resistores 4.7kΩ (pull-up em SDA e SCL) Ligações: SDA -> P0 SCL -> P2 VCC -> 5V GND -> GND Observação: Execute este código apenas uma vez para gravar os dados. ========================================================= */ #include <TinyWireM.h> #define EEPROM_ADDR 0x50 const char dados[] = "Paracetamol - 08.00h\n" "Ibuprofeno - 12.00h\n" "Omeprazol - 07.00h\n" "Dipirona - 18.00h\n" "Vitamina D - 09.00h\n" "Losartana - 10.00h\n" "Aspirina - 14.00h\n" "Amoxicilina - 16.00h\n" "Loratadina - 20.00h\n" "Metformina - 22.00h\n"; void setup() { TinyWireM.begin(); for (unsigned int i = 0; i < sizeof(dados); i++) { escreverEEPROM(i, dados[i]); delay(5); // tempo necessário para escrita } } void loop() {} void escreverEEPROM(unsigned int endereco, char dado) { TinyWireM.beginTransmission(EEPROM_ADDR); TinyWireM.write((int)(endereco >> 8)); TinyWireM.write((int)(endereco & 0xFF)); TinyWireM.write(dado); TinyWireM.endTransmission(); }
💻 Código para leitura e envio ao PC
/* ========================================================= Projeto: Dispositivo USB Lembrete de Remédios Plataforma: Digispark ATtiny85 Autor: RodRobot Descrição: Este projeto utiliza o Digispark como teclado USB (HID) para exibir automaticamente uma lista de medicamentos armazenados na EEPROM AT24C256. Funcionamento: - Ao conectar no PC - Abre o Bloco de Notas - Exibe a lista de remédios automaticamente Hardware: - Digispark ATtiny85 - EEPROM AT24C256 - Resistores 4.7kΩ (SDA e SCL) Ligações: SDA -> P0 SCL -> P2 VCC -> 5V GND -> GND Aviso: Uso apenas educacional. Não utilize sem autorização. ========================================================= */ #include <TinyWireM.h> #include <DigiKeyboard.h> #define EEPROM_ADDR 0x50 void setup() { TinyWireM.begin(); // Aguarda reconhecimento USB DigiKeyboard.delay(3000); abrirNotepad(); mostrarDados(); } void loop() {} void abrirNotepad() { DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(500); DigiKeyboard.print("notepad"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(1000); } void mostrarDados() { DigiKeyboard.println("Lembrete de Remedios"); DigiKeyboard.println("---------------------"); for (int i = 0; i < 400; i++) { char c = lerEEPROM(i); if (c == 0xFF) break; DigiKeyboard.print(c); } } char lerEEPROM(unsigned int endereco) { TinyWireM.beginTransmission(EEPROM_ADDR); TinyWireM.write((int)(endereco >> 8)); TinyWireM.write((int)(endereco & 0xFF)); TinyWireM.endTransmission(); TinyWireM.requestFrom(EEPROM_ADDR, 1); return TinyWireM.read(); }
📈 Vantagens do projeto
✔ Baixo custo
✔ Fácil de montar
✔ Portátil (USB)
✔ Alta utilidade
✔ Expansão de memória
🚀 Possíveis melhorias
- Display OLED
- Buzzer para alertas
- Botões de navegação
- Versão com Wi-Fi (ESP32)
- Interface para editar dados
⚠️ Aviso importante
Este projeto é apenas para fins educacionais.
👉 Não utilize dispositivos USB automatizados sem autorização.
👉 Sempre siga orientação médica para uso de medicamentos.
🧭 Conclusão
Com o Digispark ATtiny85 e a AT24C256, você cria um sistema simples, eficiente e extremamente útil.
💡 Um ótimo exemplo de como a eletrônica pode resolver problemas reais do dia a dia!
🔧 Acompanhe o RodRobot
Projetos maker com ESP32, Arduino, eletrônica e programação.
RodRobot – Projetos maker, eletrônica e programação na prática.



Comentários
Postar um comentário