Cytron Technologies

Giờ làm việc: 8:00 - 17:00

Thứ 2 - Thứ 6 (trừ ngày lễ)

Hotline 0362917357 

Đếm Khách Ra Vào 2 Chiều với Maker Nano RP2040

Trong dự án này, mình sẽ chế tạo một thiết bị đếm khách ra vào 2 chiều với Maker Nano RP2040 và Cảm biến Vật cản Hồng ngoại E18-D80NK. Sau đó, mình sẽ lập trình RP2040 với CircuitPython.

Linh kiện

Đây là danh sách các linh kiện được sử dụng:

Vỏ In 3D

Bạn có thể tải file STL để in 3D hộp đựng bộ sản phẩm tại Thingiverse

Chương trình mẫu

Chương trình này được xây dựng trên CircuitPython. Bạn cần thêm bộ thư viện simpleio.py vào thư mục CIRCUITPY/lib folder. Bạn có thể tại bộ thư viện thổng hợp cho CircuitPython tại đây.

Đối với file lcd.py và i2c_pcf8574_interface.py, hãy lưu nó vào thư mục CIRCUITPY/lib/lcd. Mặc định, thư mục lcd sẽ không được tao, bạn cần di chuyển tới thư mục lib và tạo nó.

import time
import board
import busio
import simpleio
import rotaryio
from lcd.lcd import LCD
from lcd.i2c_pcf8574_interface import I2CPCF8574Interface

buzzer = board.BUZZER
NOTE_C4 = 261
NOTE_G4 = 392

IR1 = board.GP2
IR2 = board.GP3
sensor = rotaryio.IncrementalEncoder(IR1, IR2)

LCD_SCL = board.GP5
LCD_SDA = board.GP4
LCD_ADDR = 0x27
i2c_lcd = busio.I2C(LCD_SCL, LCD_SDA)
lcd = LCD(I2CPCF8574Interface(i2c_lcd, LCD_ADDR), num_rows=2, num_cols=16)

lcd.print(" Bidirectional\nVisitor Counter")
simpleio.tone(buzzer, NOTE_C4, duration=0.1)
simpleio.tone(buzzer, NOTE_G4, duration=0.15)
time.sleep(2)

lcd.clear()
lcd.print("No of visitor\n0")

last_count = 0

while True:
    count = sensor.position
    
    if count != last_count:
        print("No of visitor: {} ".format(count))
        lcd.set_cursor_pos(1, 0)
        lcd.print("{} ".format(count))
        
        if count > last_count:
            simpleio.tone(buzzer, NOTE_G4, duration=0.1)
        else:
            simpleio.tone(buzzer, NOTE_C4, duration=0.1)
        
        last_count = count

Chúc bạn thành công!

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận