Barcodes mit der Trigger-Taste lesen
Was dieses Beispiel zeigt
Der Scanner bleibt im Standard-Manuellmodus: Drücken Sie die Trigger-Taste am
Board, und der gelesene Code wird in der Shell ausgegeben. Das Beispiel fragt nur
readBarcode() ab; die Taste startet jeden Scan.
Verbinden Sie Pin 5 (TX) des Controllers mit RX des Scanners und Pin 4 (RX) mit
TX des Scanners, dazu 3V3 und GND, oder passen Sie tx und rx an Ihre
Verdrahtung an. Schalten Sie den Scanner zuerst auf UART um, indem Sie den
Konfigurations-Barcode POR232 scannen.
Der Beispielcode
from machine import UART
from de2120 import DE2120
import time
# Adjust tx and rx to match the pins you have wired on your board.
scanner = DE2120(tx=5, rx=4)
if not scanner.begin():
print("DE2120 not detected. Check wiring.")
raise SystemExit
print("DE2120 ready. Press the button on the scanner to read a barcode.")
while True:
barcode = scanner.readBarcode()
if barcode:
print("Scanned:", barcode)
time.sleep_ms(20)
🔗Vollständiges Beispiel öffnen
Examples/de2120-readBarcode.py im Commit 848e03e
Erwartetes Ergebnis:
DE2120 ready. Press the button on the scanner to read a barcode.
Jeder Code, den Sie scannen, wird danach als Scanned: gefolgt vom Inhalt des Codes ausgegeben.
Antwortet der Scanner nicht, gibt das Beispiel
DE2120 not detected. Check wiring. aus und hält an.
Verwendete Funktionen
DE2120(uart=None, tx=None, rx=None, uart_id=1)returns DE2120Erstellt das Scanner-Objekt. Übergeben Sie einen selbst erstellten UART als uart, oder übergeben Sie die Pin-Nummern tx und rx, dann erstellt das Modul UART(uart_id) mit 9600 Baud auf diesen Pins. Wird keines von beiden übergeben, löst es einen ValueError aus.
ReturnsDas Scanner-Objekt.
Parameter
| Typ | Name | Beschreibung |
|---|---|---|
UART | uart | Ein fertiges machine.UART-Objekt. Optional. |
int | tx | Der sendende Pin des Controllers, verbunden mit RX des Scanners. Das Beispiel verwendet 5. |
int | rx | Der empfangende Pin des Controllers, verbunden mit TX des Scanners. Das Beispiel verwendet 4. |
int | uart_id | Welcher UART erstellt wird, wenn Sie tx und rx übergeben. Standardmäßig 1. |
scanner.begin()returns boolPrüft, ob der Scanner antwortet. Die Funktion setzt den UART auf 9600 Baud und fragt die Firmware-Version ab. Bleibt die Antwort aus, versucht sie es erneut mit 115200 Baud, weist den Scanner an, auf 9600 Baud umzuschalten, und fragt erneut ab. Bei Erfolg leert sie den Empfangspuffer.
ReturnsTrue, wenn der Scanner geantwortet hat, False, wenn nicht.
scanner.readBarcode()returns str or NoneSammelt die vom Scanner wartenden Bytes. Ein Scan endet mit einem Wagenrücklauf (Carriage Return); sobald einer eintrifft, gibt die Funktion den Code ohne ihn zurück. Rufen Sie sie wiederholt in einer Schleife auf. Ein einzelner Code umfasst höchstens 256 Bytes.
ReturnsDer gescannte Code oder None, wenn noch kein vollständiger Scan eingetroffen ist.
Zusammenfassung
DE2120(tx=5, rx=4) richtet den UART ein, und begin() stellt sicher, dass der Scanner
vorhanden ist und mit 9600 Baud läuft. Die Schleife ruft dann alle
20 ms readBarcode() auf. Die Funktion gibt None zurück, bis ein vollständiger Code eingetroffen ist, sodass die Prüfung
if barcode: jeden Code nur einmal ausgibt.
Um ohne Tastendruck zu lesen, siehe Barcodes kontinuierlich lesen.