Kit OpenM128 com teclado A/D

Olá,

Um excelente kit de desenvolvimento é o OpenM128 da Waveshare , com este kit poderemos aprender a fazer inúmeros projectos, trata-se de um kit que é composto por muitos periféricos do qual irei aqui abordar, um dos periféricos que achei bastante interessante é um teclado com 16 teclas, em que com apenas 1 linha A/D conseguimos enviar a tecla que foi pressionada.

A construção e o código é bastante simples, em cada switch esta acoplada 1 resistência com um determinado valor, no código lê-mos o valor correspondente a esse switch e atribuímos a função que pretendemos, muito mais simples do que o teclado convencional.

Na Imagem anexa, exemplifico de forma como podemos construir um teclado ADC artesanal:

 

O video demonstrativo não esta muito famoso, pois com o reflexo não consegui mostrar o valor da tecla que esta a ser pressionada, mas o importante é ver que cada tecla que pressiono mostra esse valor no LCD.

 

aqui apresento a função que permite seleccionar qual a tecla pressionada:

KEYPRESS ADC
void key_scanf(unsigned int value)
{
	if((value>=0)&&(value<=50))
	lcd_display_string( "Press Button the KEY 0  ", BLACK, PURPLE, 0, 3 );
	if((value>=50)&&(value<=80))
	lcd_display_string( "Press Button the KEY 1  ", BLACK, PURPLE, 0, 4 );
	if((value>=80)&&(value<=140))
	lcd_display_string( "Press Button the KEY 2  ", BLACK, PURPLE, 0, 5 );
	if((value>=140)&&(value<=200))
	lcd_display_string( "Press Button the KEY 3  ", BLACK, PURPLE, 0, 6 );
	if((value>=200)&&(value<=260))
	lcd_display_string( "Press Button the KEY 4  ", BLACK, PURPLE, 0, 7 );
	if((value>=260)&&(value<=330))
	lcd_display_string( "Press Button the KEY 5  ", BLACK, PURPLE, 0, 8 );
	if((value>=330)&&(value<=400))
	lcd_display_string( "Press Button the KEY 6  ", BLACK, PURPLE, 0, 9 );
	if((value>=400)&&(value<=460))
	lcd_display_string( "Press Button the KEY 7  ", BLACK, PURPLE, 0, 10 );
	if((value>=460)&&(value<=520))
	lcd_display_string( "Press Button the KEY 8  ", BLACK, PURPLE, 0, 11 );
	if((value>=520)&&(value<=590))
	lcd_display_string( "Press Button the KEY 9  ", BLACK, PURPLE, 0, 12 );
	if((value>=590)&&(value<=650))
	lcd_display_string( "Press Button the KEY 10  ", BLACK, PURPLE, 0, 13 );
	if((value>=650)&&(value<=700))
	lcd_display_string( "Press Button the KEY 11  ", BLACK, PURPLE, 0, 14 );
	if((value>=700)&&(value<=770))
	lcd_display_string( "Press Button the KEY 12  ", BLACK, PURPLE, 0, 15 );
	if((value>=770)&&(value<=835))
	lcd_display_string( "Press Button the KEY 13  ", BLACK, PURPLE, 0, 16 );
	if((value>=835)&&(value<=910))
	lcd_display_string( "Press Button the KEY 14  ", BLACK, PURPLE, 0, 17 );
	if((value>=910)&&(value<=999))
	lcd_display_string( "Press Button the KEY 15  ", BLACK, PURPLE, 0, 18 );
}

Deixe uma resposta

Your email address will not be published.

www.000webhost.com