klaudyna Napisano Grudzień 27, 2022 Udostępnij Napisano Grudzień 27, 2022 (edytowany) 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. Edytowano Grudzień 27, 2022 przez klaudyna Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Grudzień 27, 2022 Udostępnij Grudzień 27, 2022 @klaudyna ale jak masz to podłączone, jeśli belka i sterownik jest na 5 V, a RPi na 3,3 V? Jest tam jakiś konwerter? Podłączanie czegoś na logice 5 V do GPIO 3,3 V często prowadzi do uszkodzenia RPi. Cytuj Link do komentarza Share on other sites More sharing options...
klaudyna Grudzień 27, 2022 Autor tematu Udostępnij Grudzień 27, 2022 @Treker może źle się wyraziłam ale wszystko jest na 5V . belka, sterownik i raspberry pi tak jak było na tej stronie Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Grudzień 27, 2022 Udostępnij Grudzień 27, 2022 @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. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
klaudyna Grudzień 27, 2022 Autor tematu Udostępnij Grudzień 27, 2022 (edytowany) @Treker z góry dziękuje za odpowiedz. Ale jak podłączę pod 3,3V to tez pokazuje takie same błędy. W taki sposób podłączyłam na początku, tylko że do sterownika zielonego: Edytowano Grudzień 27, 2022 przez klaudyna Cytuj Link do komentarza Share on other sites More sharing options...
pakarl Luty 3, 2023 Udostępnij Luty 3, 2023 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) 2 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!