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
Letzte ÜberarbeitungBeide Seiten der Revision
elektronik:arduino [2012/04/05 16:06] volkerpelektronik:arduino [2013/06/05 09:53] – angelegt admin
Zeile 1: Zeile 1:
 ====== Arduino ====== ====== Arduino ======
 +
 +===== Arduino Duemilanove =====
 +
  
 Man kaufe bei ebay einen Arduino Duemilanove 2009 - Nachbau. (April 2011, EUR 15,99 aus Hongkong) Man kaufe bei ebay einen Arduino Duemilanove 2009 - Nachbau. (April 2011, EUR 15,99 aus Hongkong)
Zeile 5: Zeile 8:
 {{:elektronik:arduino.jpg?300|}} {{:elektronik:arduino.jpg?300|}}
  
-Und ein LCD keypad Shield (Mai 2011, US $17,75 aus Hongkong)+ 
 +===== DFRobot LCD keypad Shield ===== 
 + 
 +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.txt
  • Zuletzt geändert: 2015/04/16 18:51
  • von volkerp