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
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 9Ok, 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
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
}
Até a próxima e espero que tenham gostado!
Carlos Massera Filho
2 comentários:
muito bom..gostei mesmo..ate agora n tinha visto nenhum site falando de butoes pro arduino i eu tava precisando...
abraços
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
Postar um comentário