domingo, 10 de agosto de 2008

Botões "Touch" (baseado no Arduino's Playground)

Pessoal esse é o primeiro tutorial do blog! vou mostrar como desenvolver botões "touch" utilizando o arduino:

Conhecimento necessário:

Programação básica em C
Funções do Arduino

Itens necessários:

1 Arduino (preferencialmente Diecimilia, mas NG ou Severino esta ok)
1 Cabo USB tipo A/B (para ligar o arduino)
Fio
Algo metálico para usar como touch (moeda, chave, latinha de refrigerante, use a imaginação!)

Ok, agora para o projeto que, em si, é muito simples de fazer, mas um pouco mais difícil de entender...
O que o programa faz é:
  • Colocar o pino do botao para leitura
  • Mandar o sinal HIGH para ele
  • Verificar quanto tempo ele demora para carregar (verifica a capacitância dele)
  • Imprime pela serial o valor encontrado
Aqui esta a foto do materia necessário















A montagem é muito simples: engate o objeto metálico em uma ponta do fio e o outro lado no pino digital a sua escolha (no meu caso pino 9);















A parte de hardware esta pronta!

Vamos agora para o software do sistema, como dito antes vamos verificar a capacitância do pino pelo tempo que ele demora para carregar,

O Código:

#define buttonPin 9 //O botão ficara no pino 9

void setup(){
Serial.begin(9600); //Inicia a comunicação serial
}

void loop(){
int i;
pinMode(buttonPin, INPUT); //Coloca o pino do botão para INPUT
digitalWrite(buttonPin, HIGH); //Coloca o pino do botao HIGH
for(i = 0; i < 16;i++)
if (PINB & B10)
break;
digitalWrite(buttonPin, LOW); //Coloca o pino do botao LOW
pinMode(buttonPin, OUTPUT); //Coloca o pino do botão para OUTPUT
Serial.println(i); //Escreve o tempo até o pino carregar (um modo de medir a capacitância)
Delay(500);// Meio segundo até a proxima medição
}

Ok, o código é bem simples tirando a parte if(PINB & B10), mas em um tópico futuro abordarei manipulação de portas...Agora é só compilar

Até a próxima e espero que tenham gostado!
Carlos Massera Filho

2 comentários:

Unknown disse...

muito bom..gostei mesmo..ate agora n tinha visto nenhum site falando de butoes pro arduino i eu tava precisando...
abraços

Perceptra disse...

Boa noite Carlos.
funciona no leonardo?
eu não estou conseguindo fazer funcionar. o serial monitor só mostra o valor 16. qq moeda serve?
abraços