Com apenas duas portas do arduino A5 e A4 expandi para mais 16 portas.
Usei 2 PCF8574AP
Tags:
Comentar
// include the library code:
#include <LiquidCrystal.h>
#include <TimerOne.h>
const int analogInPin = A0;
int valor = 0;
int decseg;
int tempo;
byte MAP[10]={};
char retorno;
char retornolast;
int count=0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void scaneia ()
{
valor = analogRead(analogInPin);
if ((valor>236)&(valor<245))//241
{
retorno='D';
}
if ((valor>225)&(valor<235))//229
{
retorno='C';
}
if ((valor>215)&(valor<225))//218
{
retorno='B';
}
if ((valor>202)&(valor<212))//207
{
retorno='A';
}
if ((valor>312)&(valor<322))//317
{
retorno='#';
}
if ((valor>291)&(valor<301))//296
{
retorno='9';
}
if ((valor>272)&(valor<282))//277
{
retorno='6';
}
if ((valor>256)&(valor<266))//261
{
retorno='3';
}
if ((valor>457)&(valor<467))//462
{
retorno='0';
}
if ((valor>413)&(valor<423))//418
{
retorno='8';
}
if ((valor>377)&(valor<387))//382
{
retorno='5';
}
if ((valor>347)&(valor<357))//352
{
retorno='2';
}
if ((valor>829)&(valor<839))//834
{
retorno='*';
}
if ((valor>697)&(valor<707))//702
{
retorno='7';
}
if ((valor>602)&(valor<612))//607
{
retorno='4';
}
if ((valor>529)&(valor<539))//534
{
retorno='1';
}
if (valor<50)//534
{
retorno='N';
}
}
void setup()
{
lcd.begin(16, 2);
lcd.clear();
Timer1.initialize(100000);
Timer1.attachInterrupt( timerIsr );
}
void loop()
{
scaneia();
if ((retorno != retornolast)&&(retorno!='N'))
{
if (count<17)
{
lcd.setCursor(count,0);
lcd.print(retorno);
count++;
}
if (count>16)
{
lcd.setCursor((count-17),1);
lcd.print(retorno);
count++;
}
if (count>33)
{
lcd.clear();
count=0;
lcd.setCursor(0,0);
}
}
retornolast = retorno;
delay(10);
}
void timerIsr()
{ decseg++;
if (decseg>5)
{
decseg=0;
tempo++;
}
if (tempo>5)
{
tempo=0;
}
}
Alex e como tu fez isso?
Eu uso apenas um pino do arduino para fazer leitura de um teclado 4x4. Fiz um esquema com resistores, e uso entrada analógica.
vlw brother.. seria explorar muito pedir um esquema dele com teclado, sou novato e gostaria de ver como é na pratica. obrigado brother!
Marlon, esse expansor, serve tanto para leitura como escrita, então ele deve funcionar para um teclado..
Hoje a noite finalizo esse expansor.. provavelmente na sexta envio tudo completo de como que ele funciona e o esquema dele.. com codigo de demonstração.
teria como disponibilizar os codigos e o esquema? consegui fazer as 16 I/O... esse esquema funciona bem com um teclado?
To devendo isso a todos, ate essa sexta feira dia 17/05/2013 eu envio o expansor para 64 portas digitais. :)
Marlon, são digitais, estamos trabalhando pra expandir pra 64 e também criar um expansor de 64 analógicas.
essas 16 I/o são digitais?
qual é a lista de material para confecção dessa placa?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)