.. note::
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
**Warum beitreten?**
- **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
- **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
- **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
- **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
- **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei!
.. _2.1.8_js:
2.1.8 Tastatur
==============
Einführung
----------
Eine Tastatur ist ein rechteckiges Feld aus Tasten. In diesem Projekt werden wir sie nutzen, um Zeichen einzugeben.
Benötigte Komponenten
-------------------------
Für dieses Projekt benötigen wir die folgenden Komponenten.
.. image:: ../img/list_2.1.5_keypad.png
Es ist definitiv praktisch, ein ganzes Set zu kaufen. Hier ist der Link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Name
- ARTIKEL IN DIESEM KIT
- LINK
* - Raphael Kit
- 337
- |link_Raphael_kit|
Sie können diese auch einzeln über die untenstehenden Links kaufen.
.. list-table::
:widths: 30 20
:header-rows: 1
* - KOMPONENTENBESCHREIBUNG
- KAUF-LINK
* - :ref:`cpn_gpio_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_keypad`
- \-
Schaltplan
----------
.. image:: ../img/image315.png
.. image:: ../img/image316.png
Experimentelle Verfahren
-----------------------------
**Schritt 1:** Bauen Sie den Schaltkreis.
.. image:: ../img/image186.png
**Schritt 2:** Öffnen Sie die Code-Datei.
.. raw:: html
.. code-block::
cd ~/raphael-kit/nodejs/
**Schritt 3:** Ausführen.
.. raw:: html
.. code-block::
sudo node keypad.js
Nachdem der Code ausgeführt wurde, werden die Werte der auf der Tastatur gedrückten Tasten (Tastenwert) auf dem Bildschirm angezeigt.
**Code**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
var rowsPins = [18,23,24,25];
var colsPins = [10,6,27,17];
var keys = ["1","2","3","A",
"4","5","6","B",
"7","8","9","C",
"*","0","#","D"];
for(let i=0;i{
col=i;
pressed_keys=keys[row*colsPins.length+col];
if(last_key_pressed!=pressed_keys){
console.log(`${pressed_keys}`);
}
last_key_pressed = pressed_keys;
});
}
var row=-1;
setInterval(() => {
row=(row+1)%rowsPins.length;
for(let i=0;i {
row=(row+1)%rowsPins.length;
for(let i=0;i{
col=i;
// pressed_keys=keys[row*colsPins.length+col];
// if(last_key_pressed!=pressed_keys){
// console.log(`${pressed_keys}`);
// }
// last_key_pressed = pressed_keys;
});
}
Richten Sie Interrupt-Funktionen für die vier Spalten-Pins ein,
und die Variable ``col`` wird verwendet, um die Spalten-Pins zu lokalisieren, die das Ereignis des Interrupts der steigenden Flanke auslösen.
.. code-block:: js
pressed_keys=keys[row*colsPins.length+col];
if(last_key_pressed!=pressed_keys){
console.log(`${pressed_keys}`);
}
last_key_pressed = pressed_keys;
Es gibt auch ein Stück Code in der Break-Funktion, um den spezifischen Tastenwert aus der ``keys`` Matrix entsprechend ``row`` und ``col`` zu erhalten.
Und jedes Mal, wenn Sie einen neuen Tastenwert erhalten, drucken Sie den Wert.
Phänomen-Bild
--------------------
.. image:: ../img/image188.jpeg