Skip to main content

Č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:

ShellMicroPython
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 DE2120

Stvara 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

TipNazivOpis
UARTuartGotov objekt machine.UART. Neobavezno.
inttxPin kontrolera koji šalje, spojen na RX skenera. Primjer koristi 5.
intrxPin kontrolera koji prima, spojen na TX skenera. Primjer koristi 4.
intuart_idKoji UART treba stvoriti kada zadate tx i rx. Zadano je 1.
scanner.begin()returns bool

Provjerava 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 None

Prikuplja 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.