1602 LCDKeypad Shield
作者:互联网
LCD Keypad Shield 是一款提供2行16字符液晶显示的Arduino扩展板。扩展了多个按键输入,可供用户作为LCD显示屏的菜单选择按键或者操控按键使用。
具有对比度调节和背光灯,使用1个模拟口便完成5个按键的输入,1个复位按键,未使用的IO口都扩展出来备用,充分利用IO口。占用数字端口:PIN4(DB4),5(DB5),6(DB6),7(DB7),8(RS),9(E),10(背光控制),模拟按键端口A0。
按键控制
1 #include <LiquidCrystal.h> 2 3 /******************************************************* 4 5 这个程序用来测试LCD液晶显示模块和5个按键。 6 7 ********************************************************/ 8 9 // 选择LCD上使用到的引脚 10 LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 11 12 // 定义各按键 13 int lcd_key = 0; 14 int adc_key_in = 0; 15 16 #define btnRIGHT 0 17 #define btnUP 1 18 #define btnDOWN 2 19 #define btnLEFT 3 20 #define btnSELECT 4 21 #define btnNONE 5 22 23 //读取按键值 24 int read_LCD_buttons() 25 { 26 adc_key_in = analogRead(0); // 从模拟口0读值 27 // 直接读到的5个按键值在以下值附近:0,144,329,504,741 28 // 通过设定不同的阀值,就可以对应读到相应的按键 29 if (adc_key_in > 1000) return btnNONE; 30 if (adc_key_in < 50) return btnRIGHT; 31 if (adc_key_in < 250) return btnUP; 32 if (adc_key_in < 450) return btnDOWN; 33 if (adc_key_in < 650) return btnLEFT; 34 if (adc_key_in < 850) return btnSELECT; 35 36 // V1.0的版本使用以下的阀值: 37 /* 38 if (adc_key_in < 50) return btnRIGHT; 39 if (adc_key_in < 195) return btnUP; 40 if (adc_key_in < 380) return btnDOWN; 41 if (adc_key_in < 555) return btnLEFT; 42 if (adc_key_in < 790) return btnSELECT; 43 */ 44 45 return btnNONE; 46 } 47 48 void setup() 49 { 50 lcd.begin(16, 2); // 开始 51 lcd.setCursor(0,0); 52 lcd.print("Push the buttons"); // 输出“Push the buttons” 53 } 54 55 void loop() 56 { 57 lcd.setCursor(9,1); // 光标定在第二行,空开9格 58 lcd.print(millis()/1000); // 输出等待时间 59 60 61 lcd.setCursor(0,1); // 光标移动到第二行开头 62 lcd_key = read_LCD_buttons(); // 读取按键 63 64 switch (lcd_key) // 选择按键 65 { 66 case btnRIGHT: 67 { 68 lcd.print("RIGHT "); 69 break; 70 } 71 case btnLEFT: 72 { 73 lcd.print("LEFT "); 74 break; 75 } 76 case btnUP: 77 { 78 lcd.print("UP "); 79 break; 80 } 81 case btnDOWN: 82 { 83 lcd.print("DOWN "); 84 break; 85 } 86 case btnSELECT: 87 { 88 lcd.print("SELECT"); 89 break; 90 } 91 case btnNONE: 92 { 93 lcd.print("NONE "); 94 break; 95 } 96 } 97 }按键控制
标签:return,Shield,1602,LCDKeypad,lcd,adc,key,按键,print 来源: https://www.cnblogs.com/bymeet/p/15143621.html