Como aumentar o número de entradas de um Attiny85?

Precisava registrar alguns dados de entrada e exibir em um LCD, para isso preciso de uns 10 inputs.

Já usei o SN74HC165 para fazer isso no arduino, mas no Attiny não vai rolar, precisaria de 4 portas + 2 portas do LCD I2C e o Attiny85 só tem 5 disponíveis.

Quais são as melhores alternativas? Tem algum componente que use menos pinos para registrar os inputs?

Se não penso em utilizar o reset do arduino como pino, mas já sei que não é coisa tão fácil.

Exibições: 210

Responder esta

Respostas a este tópico

Olá João!

Além do LCD, o que mais pretende ligar no Attiny? São botões, sensores ou o que?

Descreva os componentes (analógicos ou digitais) que deseja conectar, pois assim fica mais fácil sugerir as alternativas...

As vezes dá pra economizar algumas portas sem precisar colocar um dispositivo expansor.

Olá.

Desculpe, são só botoes digitais, 0 ou 1.

São uns 10 inputs digitais (0 ou 1) e o LCD I2C.

Testei com o chip enable jumpeado com o ground, ao que tudo indica não altera o funcionamento e liberou um pino.

boa noite João.

       Depois de gravado seu código no Attiny85, você estará usando a USB? ou os pinos correspondentes (pino D3 e D4) estarão livres?

       Outra questão:  a I2C estará nos pinos tradicionais D0 (o "SDA") e D2 (o "SCL")

      Estou supondo que sua placa seja algo como uma das que mostro a seguir:

      Ou esta:

      Caso você não use o USB após gravado o código, e o seu I2C seja nos pinos tradicionais do Attiny85, talvez você possa usar uma implementação que criei para o Attiny85 e que expande os I/Os para "N" ports (tanto entradas como saídas). E claro, o I2C fica livre para vc usar também. É muito simples e totalmente confiável, além do baixíssimo custo.

      Fico no aguardo,

      Abrçs

      Elcids

Olá João,

    Pra mim a resposta parece obvia,  MUDAR O CHIP,  tipo, a linha de microcontroladores da atmel envolvem chips que eu conheço que vão dos 8 pinos do attiny85 aos 100 pinos do atmega2560, o ideal ao meu ver é utilizar o CI mais indicado ao seu projeto.

   Que eu lembro assim de cabeça vamos a alguns modelos

ATTINY85(13) : 8 Pinos

ATTINY2313 - 20 Pinos

ATMEGA328 - 28 Pinos

ATMEGA1284 - 40 Pinos

ATMEGA2560 - 100 Pinos.

    Obviamente, existem muitos mais, porem, que podem ser programados com arduino, que eu conheça são esses ai.

Maaaaaas, se por algum motivo você insiste no attiny, veja esse artigo

http://www.instructables.com/id/Getting-more-IO-pins-on-ATTiny-with...

O 74H595 é muito bom, mas utiliza 3 pinos, você pode utilizar também o PCF8574 (que utiliza i2c).

Com a lib LiquidCrystal_PCF8574 (que já está na IDE do Arduino) e a PCF8574.h encontrada em:

https://github.com/skywodd/pcf8574_arduino_library

Olá João, concordo com o Weider. Existem outras alternativas compactas com mais portas disponíveis que podem ser usadas. 

Uma curiosidade: Os 10 inputs digitais seriam o que?

O problema é que o chip não fará praticamente nada, os 512 kb de EEPROM são mais do que suficientes, o tamanho do programa não usa nem 40% do espaço. O único gargalo era a falta de um pino.

Consegui fazer com o Attiny85 mesmo, funcionou bem.

Boa noite, consegui, o chip select sempre ativado não da problema nenhum, então deixei ele jumpeado com o terra.

Funcionou e já estou testando, acabei usando todos os pinos.

Valeu!

Passei o dia fora e não pude acompanhar o tópico, então respondendo de modo geral:

Consegui fazer funcionar, o chip select sempre ativado não da problema nenhum, então deixei ele jumpeado com o terra.

Funcionou e já estou testando, acabei usando todos os pinos.

oi João.

    Legal que resolveu. Mas vc poderia ter nos dado mais detalhes sobre sua dúvida. Sem isso fica mais difícil pro pessoal mais técnico te auxiliar aqui.

    Apenas agora lendo seu post logo acima (e com algum esforço de dedução), é que ficou evidente que vc estava se referindo ao sinal "CLKINH" do 74HC165. Mas vc poderia ter deixado isso totalmente evidente.

    O "CLKINH", que vc chama de "chip select", não é um "chip select" (um sinal de "chip select" é outro conceito). Você estava falando do pino 15 do 74HC165, que é uma "OR" com o sinal "CLK". Por isso ele é intercambiável com o CLK. E caso vc não precise dele, basta colocá-lo em "0" (que foi o que vc acabou fazendo).

    No diagrama lógico a seguir, vemos isso claramente:

    De fato vc só precisa do CLK (cadência de leitura dos bits), SH/LD# (acionado em "0" para fazer a carga paralela assíncrona nos Flip-Flops), e do QH (saída dos bits para leitura serial).  O sinal de entrada "SER", obviamente basta ligar em "0" ou "1", se não for usado para expansão de bits.

    Vamos ajudar a todos por aqui, procurando elucidar melhor as questões e dúvidas.

    Abrçs

    Elcids

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço