Arduino Nano - Keypad - LCD

Deze handleiding legt uit hoe u de Arduino Nano gebruikt om invoer vanaf een keypad op een LCD-display weer te geven.

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×LCD I2C
1×Toetsenbord 3x4 en 4x4 Kit
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Keypad en LCD

Als u nog niet vertrouwd bent met keypad en LCD (pinout, werking, programmeren, enz.), kunnen de volgende tutorials u helpen:

Bedradingsschema

Arduino Nano Keypad LCD bedrading schema

This image is created using Fritzing. Click to enlarge image

Arduino Nano Code

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-keypad-lcd */ #include <Keypad.h> #include <LiquidCrystal_I2C.h> const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //four columns const byte pin_rows[ROW_NUM] = {10, 9, 8, 7}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {6, 5, 4}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows int cursorColumn = 0; void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); } void loop() { char key = keypad.getKey(); if (key) { lcd.setCursor(cursorColumn, 0); // move cursor to (cursorColumn, 0) lcd.print(key); // print key at (cursorColumn, 0) cursorColumn++; // move cursor to next position if (cursorColumn == 16) { // if reaching limit, clear LCD lcd.clear(); cursorColumn = 0; } } }

※ Notiz:

Het adres van de LCD kan verschillen afhankelijk van de fabrikant. In onze code gebruiken we 0x27, zoals aangegeven door DIYables.

Snelle Stappen

  • Sluit een USB-kabel aan op de Arduino Nano en de pc.
  • Open de Arduino IDE, selecteer het juiste board en poort.
  • Klik op het Libraries-icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek naar “keypad” en vind de keypad library van Mark Stanley en Alexander Brevig.
  • Klik op de Installeren-knop om de keypad library te installeren.
Arduino Nano keypad library
  • Zoek naar “LiquidCrystal I2C” en vind de LiquidCrystal_I2C library gemaakt door Frank de Brabander.
  • Klik vervolgens op de Installeren-knop om deze library te installeren.
Arduino Nano LiquidCrystal I2C library
  • Kopieer de code en open deze in de Arduino IDE.
  • Klik op de Uploaden-knop in de Arduino IDE om de code te compileren en te uploaden naar de Arduino Nano.
Arduino IDE Upload Code
  • Druk op bepaalde toetsen op het keypad.
  • Bekijk het resultaat op het LCD-display.

Als het LCD niets weergeeft, raadpleeg dan Probleemoplossing bij LCD I2C voor hulp.

Code Uitleg

Bekijk de regel-voor-regel uitleg in de commentaren van de broncode!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!