标签:return Shield 1602 LCDKeypad lcd adc key 按键 print
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。