Inhaltsverzeichnis:
- Schritt 1: Stückliste
- Schritt 2: Schema und Cicruit
- Schritt 3: Der Code
- Schritt 4: Korrektur der Werte
- Schritt 5: Projekt nach Kritik und Überprüfung
- Schritt 6: Nach einigen Lötarbeiten
- Schritt 7: Der Moment der Wahrheit
- Schritt 8: Das Ende
Video: Ein Pin 4×4 Tastatur - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Jedes Mal, wenn ich eine Tastatur sehe, kommt sie mit vielen Pins, es ist eine große Verschwendung Ihrer Arduino-Pins, also können wir eine Tastatur mit einem und nur einem Pin betreiben?. Die Antwort ist hier.
Schritt 1: Stückliste
Hardware:
01 Arduino UNO
02 Steckbretter
01 LCD mit I2C
16 Drucktasten
04 Widerstände 1,5 kΩ
04 Widerstände 620 Ω
04 Widerstände 220 Ω
08 Widerstände 100 Ω
01 Widerstand 1 kΩ
07 Überbrückungsdrähte
Software:
Arduino IDE auf Ihrem PC installiert
Schritt 2: Schema und Cicruit
Die Idee dahinter ist, dass wir eine 4*4-Matrix von Drucktasten haben, die vertikal mit der rechten Leitung und horizontal mit der anderen Leitung (der Tasterleitung) mit der Masse verbunden sind, und Widerstände von 1,5 kΩ, 620Ω, 220Ω und 100Ω, die Enden von die 4 Reihen sind durch vier 100Ω-Widerstände verbunden, wie im Schaltplan gezeigt.
Jedes Mal, wenn Sie eine Taste drücken, schließen Sie den Stromkreis und der Strom fließt durch einen anderen Pfad und eine andere Widerstandskette, weshalb Pin A0 für jeden Taster einen anderen analogen Messwert erhält. Alles, was Sie jetzt brauchen, ist Codieren.
Schritt 3: Der Code
#enthalten
#enthalten
LiquidCrystal_I2C lcd(0x3f, 20, 4);
int-Taste = A0;
int-Lesewert;
Void-Setup ()
{
Serial.begin (9600);
lcd.begin();
pinMode (Taste, EINGANG);
LCD-Rücklicht();
lcd.print("Hallo Welt");
Verzögerung (2000);
lcd.clear();
lcd.print ("Ein Pin 4 * 4 Tastatur");
Verzögerung (2000); }
Leere Schleife ()
{
readvalue = analogRead (Schaltfläche);
Serial.println (readvalue);
if (readvalue==852){lcd.clear();lcd.print("A");}
else{ if (readvalue==763){lcd.clear();lcd.print("B");}
else { if (readvalue==685) {lcd.clear();lcd.print("C");}
else { if (readvalue==965) {lcd.clear();lcd.print("D");}
Else{ if (readvalue==565) {lcd.clear();lcd.print("9");}
else { if (readvalue==614) {lcd.clear();lcd.print("6");}
else{ if (readvalue==360){lcd.clear();lcd.print("3");}
else{ if (readvalue==335){lcd.clear();lcd.print("#");}
else{ if (readvalue==396){lcd.clear();lcd.print("8");}
else { if (readvalue==349) {lcd.clear();lcd.print("5");}
else { if (readvalue==235) {lcd.clear();lcd.print("2");}
else{ if (readvalue==279){lcd.clear();lcd.print("0");}
Else{ if (readvalue==452) {lcd.clear();lcd.print("7");}
else { if (readvalue==271) {lcd.clear();lcd.print("4");}
else{ if (readvalue==170){lcd.clear();lcd.print("1");}
else{ if (readvalue==92){lcd.clear();lcd.print("*");}else{}}}}}}}}}}}}}}}} }
Schritt 4: Korrektur der Werte
Wenn Sie den seriellen Monitor öffnen, wird ein Wert von 1023 angezeigt. Wenn Sie eine Taste drücken, erhalten Sie eine weitere Anzeige. Sie müssen diese Werte nehmen und einige Änderungen am Code vornehmen
Schritt 5: Projekt nach Kritik und Überprüfung
Es besteht kein Zweifel, dass wir alle hier sind, um zu lernen und unser Wissen zu teilen. Dank einiger Kommentare von einigen Leuten aus der Community, die sehr hilfreich waren, habe ich beschlossen, einige Anpassungen und Verbesserungen an meinem Projekt vorzunehmen:
Die Hardware:
Ich beschloss, alle Komponenten in einer Leiterplatte zu löten, um das Problem einer schlechten Verbindung in den Steckbrettern zu vermeiden.
Der Code:
Ein Freund hat mir geraten, eine Software-Entprellung zu verwenden, und es ist nur eine Schleife ("for"-Schleife zum Beispiel), damit das Programm einige Zeit braucht, um einen Lesevorgang auszuwählen nur der letzte.
for (i=1; i<= 500; i++) {// nimm nur den 500. analogread
value = analogRead(Button);} // das hilft, etwas Zeit in Anspruch zu nehmen und schlechte Messwerte zu vermeiden
Ein anderer Freund riet mir dank ihm, "readvalue" mit einem Wertebereich zu vergleichen, nicht mit einem, da "readvalue" viele Werte für denselben Druckknopf benötigt. Das "A" zum Beispiel gibt einen Lesewert von: 849, 850, 851 852, 853, 854, 855, also ein Bereich von 7 Werten: ein Schwellenwert (852) und 3 Werte links und rechts. was wir hier tun müssen, ist den absoluten Wert der Differenz zwischen "readvalue" und "852" mit "3" zu vergleichen.
if(abs(readvalue-852)<=8){lcd.clear();lcd.print("A");}
Schritt 6: Nach einigen Lötarbeiten
Schritt 7: Der Moment der Wahrheit
Wie Sie sehen können, verwirrt das Programm manchmal die Tasten, aber es funktioniert immer noch, theoretisch ist mit der Schaltung nichts falsch, aber der Code benötigt mehr Kalibrierung.
Schritt 8: Das Ende
Ich hoffe, dass Ihnen dieses Projekt gefällt und Sie versuchen, es zu tun, vielleicht werden Sie es besser machen als ich.
Fragen Sie mich, wenn Sie Fragen haben, hinterlassen Sie Kommentare und vergessen Sie nicht, für mich zu stimmen, wenn Sie das mögen.
Empfohlen:
On Off Latch-Schaltung mit UC. Ein Druckknopf. Ein Stift. Diskrete Komponente.: 5 Schritte
On Off Latch-Schaltung mit UC. Ein Druckknopf. Ein Stift. Discrete Component.: Hallo zusammen, habe im Netz nach einer Ein/Aus-Schaltung gesucht. Alles, was ich fand, war nicht das, was ich suchte. Ich habe mit mir selbst gesprochen, es gibt unbedingt einen Weg dazu. Das habe ich gebraucht. - Nur ein Druckknopf zum Ein- und Ausschalten. - Muss nur
EIN ALTES HANDY (NOKIA 6600) IN EIN SUPERGADGET-MIKROCOMPUTER VERWANDELN: 37 Schritte
WIE MAN EIN ALTES HANDY (NOKIA 6600) IN EIN SUPERGADGET-MIKROCOMPUTER VERWANDELT: http://www.internetsecretbook.com https://www.youtube.com/thebibleformulaInmitten der Schwierigkeit liegt die Chance. - Albert Einstein Das Nokia 6600 bietet neue fortschrittliche Bildgebungsfunktionen, darunter ein helles TFT-Display mit 65.536 Farben und ca
So richten Sie ein Heimnetzwerk ein: 6 Schritte
So richten Sie ein Heimnetzwerk ein: Das Einrichten eines Netzwerks kann zunächst entmutigend klingen, aber sobald Sie alles haben, was Sie brauchen, ist es sehr einfach. Die traditionelle Einrichtung erfordert ein Modem und einen Router, aber einige benötigen möglicherweise mehr und andere weniger. Es gibt viele verschiedene
So schließen Sie ein Mini-HiFi-Regalsystem (Soundsystem) richtig an und richten es ein: 8-Schritte (mit Bildern)
So schließen Sie ein Mini-HiFi-Regalsystem (Soundsystem) richtig an und richten es ein: Ich bin ein Mensch, der gerne Elektrotechnik lernt. Ich bin eine High School an der Ann Richards School for Young Women Leaders. Ich mache dies anweisbar, um jedem zu helfen, der seine Musik von einem Mini LG HiFi Shelf Syste genießen möchte
Wie konvertiert man ein physisches Buch in ein E-Book?: 7 Schritte (mit Bildern)
Wie wandelt man ein physisches Buch in ein E-Book um?: Als Student im Hauptfach Chemieingenieurwesen habe ich normalerweise umfangreiche Lehrbücher, technische Bücher und Notizen zum Scannen (manchmal drucken) Ich habe seit einiger Zeit nach einem effizienten Buchscanner gesucht, aber die meisten sind es teuer, extrem groß. Es dauerte nicht lange