Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
elektronik:arduino [2012/04/07 07:13] volkerpelektronik:arduino [2015/04/16 18:51] (aktuell) volkerp
Zeile 9: Zeile 9:
  
  
-===== DFRobot LCD keypad Shield =====+===== meine Uhr =====
  
-Und ein DFRobot LCD keypad Shield (Mai 2011, US $17,75 aus Hongkong) 
  
 {{:elektronik:arduino-uhr.jpg?300|}} {{:elektronik:arduino-uhr.jpg?300|}}
  
- 
-Unterlagen, Schaltplan, Beispielcode: 
- 
-http://www.dfrobot.com/wiki/index.php?title=Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009) 
- 
-etwas in Deutsch: 
- 
-http://www.kriwanek.de/arduino/komponenten/156-lcd-shield.html 
- 
-^ Arduino Pin ^ LCD-Pin ^  
-| Analog 0 | Taste (Up, Down, Left, Right, Select) | 
-| Digital 4 | DB 4 | 
-| Digital 5 | DB 5 | 
-| Digital 6 | DB 6 | 
-| Digital 7 | DB 7 | 
-| Digital 8 | RS (Command or Data) | 
-| Digital 9 | Enable | 
-| Digital 10 | Hintergrundbeleuchtung | 
- 
-Neben einer normalen 2x16-LCD-Anzeige mit Hintergrundbeleuchtung gibt es 5 Tasten, die interessanterweise nicht einzeln auf Digitalports gehen, sondern nur über einen einzigen Analogport abgefragt werden: Die Tasten liefern über einen Widerstands-Spannungsteilerkette unterschiedliche Spannungswerte. 
- 
-Die LCD-Anzeige kann über die Standard-Arduino-Bibliothek **LiquidCrystal** angesteuert werden. Initilaisierung 
-  
-LiquidCrystal lcd(8,9,4,5,6,7); 
- 
-Die Tasten werden so abgefragt: 
- 
-<file> 
-//Sample using LiquidCrystal library 
-#include <LiquidCrystal.h> 
- 
-/******************************************************* 
- 
-This program will test the LCD panel and the buttons 
-Mark Bramwell, July 2010 
- 
-********************************************************/ 
- 
-// select the pins used on the LCD panel 
-LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
- 
-// define some values used by the panel and buttons 
-int lcd_key     = 0; 
-int adc_key_in  = 0; 
-#define btnRIGHT  0 
-#define btnUP     1 
-#define btnDOWN   2 
-#define btnLEFT   3 
-#define btnSELECT 4 
-#define btnNONE   5 
- 
-// read the buttons 
-int read_LCD_buttons() 
-{ 
- adc_key_in = analogRead(0);      // read the value from the sensor  
- // my buttons when read are centered at these valies: 0, 144, 329, 504, 741 
- // we add approx 50 to those values and check to see if we are close 
- if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result 
- if (adc_key_in < 50)   return btnRIGHT;   
- if (adc_key_in < 195)  return btnUP;  
- if (adc_key_in < 380)  return btnDOWN;  
- if (adc_key_in < 555)  return btnLEFT;  
- if (adc_key_in < 790)  return btnSELECT;    
- return btnNONE;  // when all others fail, return this... 
-} 
- 
-void setup() 
-{ 
- lcd.begin(16, 2);              // start the library 
- lcd.setCursor(0,0); 
- lcd.print("Push the buttons"); // print a simple message 
-} 
-  
-void loop() 
-{ 
- lcd.setCursor(9,1);            // move cursor to second line "1" and 9 spaces over 
- lcd.print(millis()/1000);      // display seconds elapsed since power-up 
- 
- 
- lcd.setCursor(0,1);            // move to the begining of the second line 
- lcd_key = read_LCD_buttons();  // read the buttons 
- 
- switch (lcd_key)               // depending on which button was pushed, we perform an action 
- { 
-   case btnRIGHT: 
-     { 
-     lcd.print("RIGHT "); 
-     break; 
-     } 
-   case btnLEFT: 
-     { 
-     lcd.print("LEFT   "); 
-     break; 
-     } 
-   case btnUP: 
-     { 
-     lcd.print("UP    "); 
-     break; 
-     } 
-   case btnDOWN: 
-     { 
-     lcd.print("DOWN  "); 
-     break; 
-     } 
-   case btnSELECT: 
-     { 
-     lcd.print("SELECT"); 
-     break; 
-     } 
-     case btnNONE: 
-     { 
-     lcd.print("NONE  "); 
-     break; 
-     } 
- } 
- 
-} 
-</file> 
  
  
  • elektronik/arduino.1333782836.txt.gz
  • Zuletzt geändert: 2012/04/07 07:13
  • von volkerp