Čitanje barkodova tipkom okidača
Što prikazuje ovaj primjer
Skener ostaje u zadanom ručnom načinu rada: pritisnite tipku okidača na pločici, a kod koji skener pročita ispisuje se u shellu. Primjer samo ciklički poziva readBarcode(); tipka pokreće svako skeniranje.
Povežite pin 5 (TX) kontrolera na RX skenera, a njegov pin 4 (RX) na TX skenera, uz 3V3 i GND, ili promijenite tx i rx prema svojem spoju. Prvo prebacite skener na UART skeniranjem konfiguracijskog barkoda POR232.
Kod primjera
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)
🔗Otvorite cijeli primjer
Examples/de2120-readBarcode.py u commitu 848e03e
Očekivani rezultat:
DE2120 ready. Press the button on the scanner to read a barcode.
Svaki kod koji skenirate zatim se ispisuje kao Scanned:, a iza toga slijedi sadržaj koda.
Kada skener ne odgovara, primjer ispisuje
DE2120 not detected. Check wiring. i zaustavlja se.
Korištene funkcije
DE2120(uart=None, tx=None, rx=None, uart_id=1)returns DE2120Stvara objekt skenera. Zadajte UART koji ste sami stvorili kao uart ili zadajte brojeve pinova tx i rx, pa modul na njima stvara UART(uart_id) na 9600 baud. Ako nije zadano ništa od toga, javlja ValueError.
ReturnsObjekt skenera.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
UART | uart | Gotov objekt machine.UART. Neobavezno. |
int | tx | Pin kontrolera koji šalje, spojen na RX skenera. Primjer koristi 5. |
int | rx | Pin kontrolera koji prima, spojen na TX skenera. Primjer koristi 4. |
int | uart_id | Koji UART treba stvoriti kada zadate tx i rx. Zadano je 1. |
scanner.begin()returns boolProvjerava odgovara li skener. Postavlja UART na 9600 baud i traži verziju firmwarea. Ako nema odgovora, ponovno pokušava na 115200 baud, nalaže skeneru da se prebaci na 9600 baud i ponovno pita. Nakon uspjeha prazni prijemni međuspremnik.
ReturnsTrue kada je skener odgovorio, False kada nije.
scanner.readBarcode()returns str or NonePrikuplja bajtove koje je skener poslao i koji čekaju na čitanje. Skeniranje završava znakom carriage return; kada on stigne, funkcija vraća kod bez tog znaka. Pozivajte je opetovano u petlji. Jedan kod može imati najviše 256 bajtova.
ReturnsSkenirani kod ili None kada još nije stiglo potpuno skeniranje.
Sve zajedno
DE2120(tx=5, rx=4) postavlja UART, a begin() provjerava da je skener prisutan i da radi na 9600 baud.
Petlja zatim poziva readBarcode() svakih
20 ms. Funkcija vraća None dok ne stigne cijeli kod, pa
provjera if barcode: ispisuje svaki kod samo jednom.
Za čitanje bez pritiskanja tipke pogledajte Kontinuirano čitanje barkodova.