Skocz do zawartości

Belka tensometryczna, sterownik HX711 i Raspberry Pi


klaudyna

Pomocna odpowiedź

Cześć wszystkim, przychodzę z problemem dotyczącym belki tensometrycznej, ponieważ po podłączeniu całego sprzętu pokazuje  wagę 0. 

 

Posiadam:

-Raspberry Pi 3 Model B

- sterownik HX711 (ten w kolorze zielonym)

- Belka tensometryczna 3kg 

 

Podłączyłam:

- GND do GND

-DT do GPIO5

-SCK do GPIO6

- VCC do 5V

- E+ z czerwonym przewodem od belki tensometrycznej 

- E- z czarnym przewodem od belki tensometrycznej

- A+ z białym przewodem od belki tensometrycznej

- A- z zielonym przewodem od belki tensometrycznej   

Sprawdzałam przepływ prądu  w czarnym i czerwonym kablu od belki tensometrycznej jest ok 4-5V. 

Korzystałam z tego repozytorium git clone  https://github.com/tatobari/hx711py  ale waga pokazuje cały czas 0, niezależnie od tego czy cos jest na wadze czy nie ma.  Wzorowałam się również na tej stronie https://tutorials-raspberrypi.com/digital-raspberry-pi-scale-weight-sensor-hx711/

Oprócz tego korzystałam z innego repozytorium: https://github.com/gandalf15/HX711 ale to wysypuje błędy przy uruchamianiu pliku example.py,   który jest przedstawiony w załączniku. 

 

 

Bardzo proszę o pomoc !  Jeśli ktoś posiada inne repozytorium warte uwagi to byłabym bardzo wdzięczna o podrzucenie. 

 

 

321948480_543938157628138_9012966159997497208_n.jpg

Edytowano przez klaudyna
Link do komentarza
Share on other sites

@klaudyna ale Raspberry Pi nie jest na 5 woltów, wejścia RPi działają w standardzie 3,3 V. Tutaj powinien być wstawiony albo konwerter poziomów logicznych, albo całość powinna być zasilana z 3,3 V (najprostsze rozwiązanie). Podanie 5 V napięcia na wejścia może uszkodzić RPi i dzieje się to stosunkowo często. Chyba, że Twój moduł z HX711 posiada odpowiedni konwerter.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Część.

Od niedawna przesiadłem się z programowania w C dla AVR na Micropython dla Raspberry Pi Pico. Próbuję przerabiać moje stare programy z C na Pythona. W nocie katalogowej HX711 (link) jest podany przykład "Reference Driver (C)" który przerobiłem na Micropythona. U mnie program na Raspberry Pi Pico działa. Może zadziała na Raspberry Pi 3.

from machine import Pin
from time import sleep, sleep_us

ADDO = Pin(9, Pin.IN, Pin.PULL_UP) #pin DATA
ADSK = Pin(10, Pin.OUT, Pin.PULL_DOWN) #pin SCK

def ReadWeight(offset):
    Count = 0
    while ADDO.value() == 1:
        continue
    sleep_us(5)
    for i in range(0,24):
        ADSK.high()
        Count = Count << 1
        sleep_us(2)
        ADSK.low()
        if ADDO.value() == 1:
            Count += 1
        sleep_us(1)
    ADSK.high()
    Count = Count ^ 0x800000
    sleep_us(1)
    ADSK.low()
    return (Count//1000 - offset) * 1.15
# number 1000, reduces scale resolution (offset and scale are therefore smaller)
# number offset equalization to zero when there is nothing on the pan,
# number 1.15(scale) the weight scaling factor is calculated when there is e.g.
# an item weighing 300g and the scale shows e.g. 261g, the scale factor (300 / 261 = 1.15)
    

def calibration():
    Count = 0
    while ADDO.value() == 1:
        continue
    sleep_us(5)
    for i in range(0, 24):
        ADSK.high()
        Count = Count << 1
        sleep_us(2)
        ADSK.low()
        if ADDO.value() == 1:
            Count += 1
        sleep_us(1)
    ADSK.high()
    Count = Count ^ 0x800000
    sleep_us(1)
    ADSK.low()
    return (Count//1000)  #offset


offset = calibration()
#print('offset bin:' + str(bin(offset)))
#print('offset:' + str(offset))

while True:
    cmd = ReadWeight(offset)
    print('weight: ' + str(round(cmd)))
    sleep(1)

 

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.