Inhoudsopgave:
- Stap 1: Aan de slag
- Stap 2: Een 12-cijferig toetsenbord gebruiken
- Stap 3: Een 16-cijferig toetsenbord gebruiken
- Stap 4: Voorbeeldproject – PIN-toegangssysteem
Video: Numerieke toetsenborden gebruiken met Arduino: 4 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Numerieke toetsenborden kunnen een eenvoudig eindgebruikersalternatief bieden voor verschillende interfaces voor uw projecten. Of als je veel knoppen nodig hebt, kunnen ze je veel tijd besparen met betrekking tot de constructie. We zullen ze doornemen met behulp van de Arduino-bibliotheek en eindigen met een handige voorbeeldschets.
Stap 1: Aan de slag
Het maakt niet uit waar u uw toetsenborden vandaan haalt, zorg ervoor dat u het gegevensblad kunt krijgen - dit zal het leven gemakkelijker maken bij het aansluiten ervan. Bijvoorbeeld: de afbeelding in deze stap.
Het gegevensblad is belangrijk omdat het u zal vertellen welke pinnen of connectoren op het toetsenbord voor de rijen en kolommen zijn. Als u het gegevensblad niet hebt, moet u handmatig bepalen welke contacten voor de rijen en kolommen zijn.
Dit kan met behulp van de continuïteitsfunctie van een multimeter (de zoemer). Begin door een sonde op pin 1 te plaatsen, de andere sonde op pin 2 en druk één voor één op de toetsen. Noteer wanneer een knop het circuit voltooit en ga dan naar de volgende pin. Binnenkort weet je welke wat is. Op het voorbeeld van het toetsenbord zijn pinnen 1 en 5 bijvoorbeeld voor knop "1", 2 en 5 voor "4", enz…
Download en installeer nu de Arduino-bibliotheek van het toetsenbord. Nu zullen we in eenvoudige voorbeelden demonstreren hoe u beide toetsenborden kunt gebruiken.
Stap 2: Een 12-cijferig toetsenbord gebruiken
We gebruiken het kleine zwarte toetsenbord, een Arduino Uno-compatibel en een LCD met een I2C-interface voor weergavedoeleinden. Als u geen LCD heeft, kunt u de tekst altijd naar de seriële monitor sturen.
Sluit uw LCD-scherm aan en sluit het toetsenbord op de volgende manier aan op de Arduino: Toetsenbordrij 1 op Arduino digitaal 5Toetsenbordrij 2 op Arduino digitaal 4Toetsenbordrij 3 op Arduino digitaal 3Toetsenbordrij 4 op Arduino digitaal 2Toetsenbordkolom 1 op Arduino digitaal 8Toetsenbordkolom 2 op Arduino digitaal 7 Toetsenbord kolom 3 naar Arduino digitaal 6 Als uw toetsenbord anders is dan het onze, let dan op de lijnen in de schets van:
// Definitie toetsenbordtype
Aangezien u de getallen in de arrays rowPins[ROWS] en colPins[COLS] moet wijzigen. U voert de digitale pinnummers in die respectievelijk op de rijen en kolommen van het toetsenbord zijn aangesloten.
Bovendien slaan de array-toetsen de waarden op die op het LCD-scherm worden weergegeven wanneer op een bepaalde knop wordt gedrukt. U kunt zien dat we het hebben afgestemd op het gebruikte fysieke toetsenbord, maar u kunt het wijzigen in wat u maar wilt. Maar voor nu, voer en upload de volgende schets zodra u tevreden bent met de toewijzingen van rij-/pinnummers:
/* Numeriek toetsenbord en I2C LCD https://tronixstuff.com Gebruikt toetsenbordbibliotheek voor Arduino https://www.arduino.cc/playground/Code/Keypad door Mark Stanley, Alexander Brevig */
#include "Toetsenblok.h"
#include "Wire.h" // voor I2C LCD #include "LiquidCrystal_I2C.h" // voor I2C bus LCD-module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // stel het LCD-adres in op 0x27 voor een display van 16 tekens en 2 regels
// Definitie toetsenbordtype
const byte RIJEN = 4; // vier rijen const byte COLS = 3; //tekentoetsen met drie kolommen [ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins[ROWS] = {
5, 4, 3, 2}; // maak verbinding met de rij-pinouts van de toetsenbordbyte colPins [COLS] = { 8, 7, 6}; // verbind met de kolom pinouts van het toetsenbord
aantal int=0;
Toetsenbord toetsenbord = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, RIJEN, COLS);
ongeldige setup()
{ lcd.init(); // initialiseer de lcd lcd.backlight(); // schakel LCD-achtergrondverlichting in}
lege lus()
{ char key = toetsenbord.getKey(); if (sleutel! = NO_KEY) { lcd.print (sleutel); tellen++; if (count==17) { lcd.clear(); aantal = 0; } } }
En de resultaten van de schets worden getoond in de video. Zo kun je nu zien hoe het indrukken van de knop vertaald kan worden naar data voor gebruik in een schets. We herhalen deze demonstratie nu met het grotere toetsenbord.
Stap 3: Een 16-cijferig toetsenbord gebruiken
We gebruiken het grotere 4×4-toetsenbord, een Arduino Uno-compatibel en voor de verandering de I2C LCD van Akafugu voor weergavedoeleinden. Nogmaals, als je geen LCD hebt, kun je de tekst altijd naar de seriële monitor sturen. Sluit het LCD-scherm aan en sluit het toetsenbord op de volgende manier aan op de Arduino:
- Toetsenbordrij 1 (pin acht) naar Arduino digitale 5
- Toetsenbordrij 2 (pin 1) naar Arduino digitaal 4
- Toetsenbordrij 3 (pin 2) naar Arduino digitaal 3
- Toetsenbordrij 4 (pin 4) naar Arduino digitaal 2
- Toetsenbordkolom 1 (pin 3) naar Arduino digitaal 9
- Toetsenbordkolom 2 (pin 5) naar Arduino digitaal 8
- Toetsenbord kolom 3 (pin 6) naar Arduino digitale 7
- Toetsenbordkolom 4 (pin 7) naar Arduino digitaal 6
Nu voor de schets - let op hoe we het grotere numerieke toetsenbord hebben ondergebracht: de extra kolom in de array-tekentoetsen de extra pin in de array colPins en de byte COLS = 4.
/* Numeriek toetsenbord en I2C LCD https://tronixstuff.com Gebruikt toetsenbordbibliotheek voor Arduino https://www.arduino.cc/playground/Code/Keypad door Mark Stanley, Alexander Brevig */
#include "Toetsenblok.h"
#include "Wire.h" // voor I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte RIJEN = 4; //vier rijen
constbyte COLS = 4; // vier kolommen char keys [ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = { 5, 4, 3, 2}; // maak verbinding met de rij-pinouts van de toetsenbordbyte colPins [COLS] = {9, 8, 7, 6}; // verbind met de kolom pinouts van het toetsenbord int count = 0;
Toetsenbord toetsenbord = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, RIJEN, COLS);
ongeldige setup()
{ Serieel.begin (9600); lcd.begin (16, 2); lcd.print("Toetsenblok test!"); vertraging (1000); lcd.wissen(); }
lege lus()
{ char key = toetsenbord.getKey(); if (sleutel! = NO_KEY) { lcd.print (sleutel); Serial.print(sleutel); tellen++; if (count==17) { lcd.clear(); aantal = 0; } } }
En nogmaals, je kunt de resultaten van de bovenstaande schets in de video zien.
Nu voor een voorbeeldproject, een dat waarschijnlijk het meest gevraagde gebruik van het numerieke toetsenbord is …
Stap 4: Voorbeeldproject – PIN-toegangssysteem
Het meest gevraagde gebruik voor een numeriek toetsenbord lijkt een "PIN" -achtige toepassing te zijn, waarbij de Arduino wordt geïnstrueerd om iets te doen op basis van een correct nummer dat in het toetsenbord wordt ingevoerd. De volgende schets maakt gebruik van de hardware die is beschreven voor de vorige schets en implementeert een zescijferig pincode-invoersysteem.
De uit te voeren acties kunnen worden ingevoegd in de functies correctPIN() en incorrectPIN(). En de pincode wordt ingesteld in de array char PIN[6]. Met wat extra werk zou je ook je eigen PIN-wijzigingsfunctie kunnen creëren.
// PIN-schakelaar met 16-cijferig numeriek toetsenbord// https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte RIJEN = 4; //vier rijen
constbyte COLS = 4; // vier kolommen char keys [ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; byte rowPins [ROWS] = { 5, 4, 3, 2}; // maak verbinding met de rij-pinouts van de toetsenbordbyte colPins [COLS] = {9, 8, 7, 6}; // verbind met de kolom pinouts van het toetsenbord
Toetsenbord toetsenbord = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, RIJEN, COLS);
char PIN[6]={
'1', '2', 'A', 'D', '5', '6'}; // ons geheime (!) nummer char poging [6]={ '0', '0', '0', '0', '0', '0'}; // gebruikt voor vergelijking int z=0;
ongeldige setup()
{ Serieel.begin (9600); lcd.begin (16, 2); lcd.print("PIN-slot"); vertraging (1000); lcd.wissen(); lcd.print("Voer pincode in…"); }
void correctPIN() // doe dit als de juiste pincode is ingevoerd
{ lcd.print("* Correcte pincode *"); vertraging (1000); lcd.wissen(); lcd.print("Voer pincode in…"); }
ongeldig onjuiste pincode () // doe dit als een onjuiste pincode is ingevoerd
{ lcd.print(" * Probeer het opnieuw *"); vertraging (1000); lcd.wissen(); lcd.print("Voer pincode in…"); }
ongeldige checkPIN()
{ int correct=0; int ik; voor (i = 0; ik < 6; i++) {
if (poging==PIN)
{ juist++; } } if (correct==6) { correctPIN(); } else { incorrecte PIN(); }
for (int zz=0; zz<6; zz++) { poging[zz]='0'; } }
ongeldig leesKeypad()
{ char key = toetsenbord.getKey(); if (key != NO_KEY) {poging[z]=key; z++; switch(key) { case '*': z=0; pauze; geval '#': z=0; vertraging (100); // voor extra debounce lcd.clear(); checkPIN(); pauze; } } }
lege lus()
{ leesKeypad(); }
Het project wordt gedemonstreerd in de video.
Dus nu heb je de mogelijkheid om toetsenborden met twaalf en zestien knoppen te gebruiken met je Arduino-systemen. Ik weet zeker dat je in de nabije toekomst iets nuttigs en interessants zult bedenken met behulp van de toetsenborden.
Dit bericht wordt u aangeboden door pmdway.com - alles voor makers en elektronica-enthousiastelingen, met gratis levering wereldwijd.
Aanbevolen:
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
Hoe de GPIO-pinnen van een Raspberry Pi en Avrdude te gebruiken voor Bit-bang-programma DIMP 2 of DA PIMP 2: Dit zijn stapsgewijze instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude to bit-bang -programmeer een DIMP 2 of DA PIMP 2. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX-opdrachtregel. Je hoeft niet
Numerieke gegevens van de ene Arduino naar de andere verzenden: 16 stappen
Stuur numerieke gegevens van de ene Arduino naar de andere: inleiding door David Palmer, CDIO Tech. aan de Aston University. Heb je ooit een aantal nummers van de ene Arduino naar de andere moeten sturen? Dit Instructable laat zien hoe. U kunt eenvoudig testen of het werkt door simpelweg een reeks cijfers in te typen om te verzenden naar de S
Mac Terminal gebruiken en toetsfuncties gebruiken: 4 stappen
Mac Terminal gebruiken en toetsfuncties gebruiken: We laten u zien hoe u de MAC Terminal opent. We zullen u ook enkele functies binnen de Terminal laten zien, zoals ifconfig, mappen wijzigen, toegang tot bestanden en arp. Met Ifconfig kunt u uw IP-adres en uw MAC-advertentie controleren
Orange Pi gebruiken zonder monitor door SSH en VNC-server te gebruiken - Ajarnpa
Gebruik Orange Pi zonder monitor door SSH en VNC-server te gebruiken: Orange Pi is als een minicomputer. Het heeft alle basispoorten die een normale computer heeft.Zoals HDMIUSBEthernetIT heeft een aantal speciale speciale poorten ZoalsUSB OTGGPIO-headersSD-kaartsleufParallelle camerapoortAls u orange pi wilt bedienen, moet u o
Armor van toetsenborden: 7 stappen
Pantser van toetsenborden: dit is een instructie over het maken van een harnas van een set toetsenborden. Gebruik geen ijzerzagen, want deze zullen hierdoor kapot gaan en aangezien u met allerlei vervelende apparaten en scherpe randen omgaat, moet u heel voorzichtig zijn om uw