QT-CART
This commit is contained in:
1 parent
e429161a89
commit
0c55b8f1aa
134 files changed
+6071
-5801
No files matched your search
@@ -0,0 +1,74 @@
|
||||
import lgpio
|
||||
import time
|
||||
|
||||
|
||||
class HX711:
|
||||
def __init__(self, dout, pd_sck, gain=128):
|
||||
self.DOUT = dout
|
||||
self.PD_SCK = pd_sck
|
||||
|
||||
self.chip = lgpio.gpiochip_open(0)
|
||||
|
||||
lgpio.gpio_claim_input(self.chip, self.DOUT)
|
||||
lgpio.gpio_claim_output(self.chip, self.PD_SCK)
|
||||
|
||||
self.GAIN = 1 if gain == 128 else 3 if gain == 64 else 2
|
||||
|
||||
self.OFFSET = 0
|
||||
self.REFERENCE_UNIT = 1
|
||||
|
||||
self.set_gain(gain)
|
||||
|
||||
def is_ready(self):
|
||||
return lgpio.gpio_read(self.chip, self.DOUT) == 0
|
||||
|
||||
def set_gain(self, gain):
|
||||
if gain == 128:
|
||||
self.GAIN = 1
|
||||
elif gain == 64:
|
||||
self.GAIN = 3
|
||||
elif gain == 32:
|
||||
self.GAIN = 2
|
||||
|
||||
self.read_raw()
|
||||
|
||||
def read_raw(self):
|
||||
while not self.is_ready():
|
||||
pass
|
||||
|
||||
data = 0
|
||||
for _ in range(24):
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 1)
|
||||
data = (data << 1) | lgpio.gpio_read(self.chip, self.DOUT)
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 0)
|
||||
|
||||
for _ in range(self.GAIN):
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 1)
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 0)
|
||||
|
||||
if data & 0x800000:
|
||||
data -= 0x1000000
|
||||
|
||||
return data
|
||||
|
||||
def set_offset(self, offset):
|
||||
self.OFFSET = offset
|
||||
|
||||
def set_reference_unit(self, value):
|
||||
self.REFERENCE_UNIT = value
|
||||
|
||||
def get_value(self, times=5):
|
||||
return sum(self.read_raw() for _ in range(times)) / times
|
||||
|
||||
def get_weight(self, times=5):
|
||||
value = self.get_value(times) - self.OFFSET
|
||||
return value / self.REFERENCE_UNIT
|
||||
|
||||
def power_down(self):
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 0)
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 1)
|
||||
time.sleep(0.0001)
|
||||
|
||||
def power_up(self):
|
||||
lgpio.gpio_write(self.chip, self.PD_SCK, 0)
|
||||
time.sleep(0.0001)
|
||||
Reference in new issue
Block a user