Hoi,

ik ben als mechanicus weer eens met electronica in de weer, dus hulp is gewenst...

Introductieverhaaltje (vraag daaronder):
Ik heb een 3D printer en ik heb de printkop opgehangen aan een weegcel. Als de printkop nu het bed raakt 'weegt' de cel dat, signaaltje naar de printerbesturing en voilà, we hebben een Z-eindschakelaar gemaakt. Niet zelf bedacht, overigens, het zit standaard op een Creality CR-6. Van die printer heb ik de weegcel / printkopbeugel ook gekocht. Ik heb het systeem inmiddels werkend, met een HX711 versterker en een Arduino Nano die het signaal van die HX711 leest en een poort hoog of laag schakelt. So far, so good. Maar ik merk dat die HX711 / Arduino Nano combinatie erg langzaam is. En ik verdenk daarbij de HX711. Als ik met mijn vinger de printkop omhoog druk, duurt het even voordat de poort schakelt. Echt menselijk merkbaar. Ik las ook iemand die een HX711 in een zelfbouw game controller gebruikte en het allemaal veel te langzaam vond. De reden dat het nu redelijk werkt op mijn printer is dat ik a) de home-beweging langzaam maak en b) ik denk dat de reactietijd van de HX711 langzaam maar wel redelijk constant is en daarmee de afwijking dus ook. Maar ik wil het eigenlijk beter en simpeler maken.

Vraag:
Ik zoek een schema en uitleg hoe ik de uitgang van de Wheatstone bridge op de beugel kan omzetten naar een signaal tussen zeg 1 en 4 volt, zodat ik het met een LM358 een uitgang kan laten schakelen. Ik heb alleen 5V gelijkspanning beschikbaar. Ik kan 2843573948527495 analoge Wheatstone bridge schakelingen vinden via Google, maar niet eentje die ik snap of waar een redelijke uitleg bij staat als ik de versterking wil veranderen, om mijn toepassing van de weegcel op een voor de LM358 werkbare spanning te krijgen.

Alle input is welkom, ik ben ook niet aan de LM358 gebonden, ik wil alleen een snelle en heel compacte oplossing maken.

Dank,

Hugo

Een Wheatstone brug is een prachtig schoolding om aan te rekenen. Om een voeding, meetversterker en adc praktisch in te richten voor rekstrookjes, met ruis en offsets in de nV zoals op deze chip, is echter iets geheel anders.
Op een microcontroller zou ik inzetten op synchrone detectie zodat de voorversterker ac gekoppeld kan zijn.

De HX711 ADC heeft twee update snelheden, 10 en 80 metingen per seconde. Welke wordt toegepast? Mogelijk is de ruis op de hoge snelheid ook acceptabel.

[offtopic]
Ik print een kleine 10 jaar met een zelfgebouwde printer en heb automatische leveling nooit goed begrepen. Het is geen bezwaar hooguit één keer in het half jaar (oid) een simpele instelling te doen.
En dan nog: drie keer prikken is voldoende? Als het automatisch gaat en drie seconden kost lijkt dat geen groot bezwaar. Als het bed niet vlak is houdt alles op, daar is onmogelijk voor te compenseren.

https://www.instructables.com/Racing-Sim-brake-pedal-load-cell-interfa…

zou toch snel genoeg moeten zijn.

Daarachter je LM358 als comparator al of net met hysterese.

[Bericht gewijzigd door Peter112 op (23%)]

Ha HugoW,

Heb je toevallig een kristal van 20 MHz hang die er eens aan dan ben je ongeveer 2 keer zo snel :D

Groet,
Henk.

@Peter112; dank je wel, die ga ik eens beter bekijken.

@electron920; ik heb denk ik nog ergens een Teensy met een 600MHz processor liggen. Maar als de HX711 niet sneller info aanlevert, zal de verwerking van die info niet echt sneller gaan, vrees ik.

@Aart; dank voor je input. Ik weet niet op welke frequentie er geupdate wordt, ik denk dat dat in de HX711 library van Arduino geregeld wordt. In mijn code in ieder geval niet. Weet jij hoe dat in te stellen is? Ik ga daar eens naar zoeken.
Daarnaast ben ik het grotendeels met je eens over homen en bed levelen, maar niet helemaal. Ik gebruik meerdere verwisselbare ondergronden met verschillende diktes om op te printen, dus opnieuw nullen doe ik om dat verschil op te heffen. Daarnaast draai ik regelmatig prints van 40+ uur, dus ik heb standaard 9 punts leveling ingesteld staan. Die twee minuten extra zijn verwaarloosbaar. Maar inderdaad, als je bed al niet recht en level is, moet je dat eerst oplossen.

[EDIT]https://www.youtube.com/watch?v=Rp_M0NbDSpo Aha...[/EDIT]
[EDIT]De pin 15 van de HX711 is aan min gekoppeld, dus heb ik maar een updatefrequentie van 10. Als ik die aan plus koppel wordt dat 80. Er zit een 0 ohm weerstand op met tekst 10Hz erbij, en een open plek met 80Hz erbij. Eens kijken of ik dat voor elkaar kan krijgen, dat weerstandje verwisselen, 't is wel een klein bordje.[/EDIT]

Hugo

Ha HugoW,

Je laatste opmerking is correct, daar had ik later op terug gekomen maar het is mijn bedoeling om,
de HX711 tevens te voorzien van een 20 MHz kristal !
Intern werkt de chip op 11,0592 MHz data rate 1 betekend dit 80 SPS bij 20 MHz externe klok is dit ook weer een factor hoger !

Groet,
Henk.

Op het creality bord zelf lijkt mij geen extra kristal aan de HX711 te hangen.
De gevoeligheid wordt ingesteld met de trimpot.

zij gebruiken een ST32F030F4P6 controller, die is mss sneller dan de nano?

Ik heb zelf een CR6, en dat gaat lekker snel, van zodra de kop het bed raakt gaat de blauwe led naast de potmeter aan.

De auto bed levelling vind ik toch lekker werken. Na zes jaar met papiertjes te liggen friemelen, heb ik nu elke keer een perfecte eerste laag. Kop wisselen is geen probleem meer, je hoeft zelfs je Z eindstop niet meer te regelen. Bespaart een hoop moeite en frustratie.....

Ik heb wel mijn bed mechanisch zo recht mogelijk gezet, aan 1 kant heb ik 1,5mm moeten verhogen.

Met een te grote afwijking zorgt de compensatie voor scheve prints.

Creality PCB voor levelling met loadcell.

Dank je wel! Met de potmeter stel je in 'op welk gewicht' de z-trigger gegeven wordt, de gevoeligheid inderdaad. Ik heb dat in de Arduino geschreven, om het te wijzigen moet ik de code aanpassen. Maar het werkt.

Vanmiddag heb ik de weerstand van positie '10 Hz' naar positie '80Hz' verplaatst, was een lastig klusje. Maar het werkt weer / nog beter (?!) Ik ga me later even verdiepen in de link van Peter112, dat lijkt me toch ook wel wat. Potmeter erover om de versterking in te stellen en dan een 358 er achteraan die op 2,5V schakelt. Zou heel simpel en compact te maken moeten zijn.

@electron920; dank je wel, Henk, dat had ik inderdaad in het jijbuisfilmpje gevonden, toen snapte ik je post. Misschien dat ik zoiets ook wel meeneem in de definitieve schakeling. Dan wordt de sample rate maximaal, ik meen 145 Hz. Ook weer een verbetering.

Hugo

en dan een 358 er achteraan die op 2,5V schakelt.

Beter een comparator gebruiken ipv een opamp.

Ik heb het geheel inmiddels goed werkend op de printer zitten, maar ik heb al een keer een crash gehad omdat de Arduino niet goed startte. Geen idee waarom, maar er waren ook andere LEDs aan dan gewoonlijk op de Arduino en hij onderbrak het signaal dus niet. Kleine crash, maar ik stond erbij en zette de boel uit voordat er schade was. Het is wel een reden om verder te kijken naar een analoge versterker, en met de tips hierboven kom ik tot dit schema:

Het idee is dat ik de comparator 2,5V geef als referentie, lekker in het midden van zijn bereik, en het triggerpunt van de cel/versterker af te stellen met de versterkingsfactor, dus met een trimpot. Ik heb geen idee van de waarde, dus ik begin met een grote en veel turns, kan ik altijd nog finetunen. Ik wil ook de output ge-invert hebben, het signaal moet wegvallen als de nozzle het bed raakt. Als dan om een andere reden het signaal wegvalt is dat een machinestop, geen crash.

Alle input is welkom,
Dank,

Hugo

Een 741 is geen comparator.

Wat is dan wel een goede comparator voor deze toepassing?

Dank,

Hugo

Zo'n beetje elke comparator. Een opamp is geen comparator.

De 741 is een opamp. Nu kun je veel opamps wel als comparator misbruiken maar dan kunnen er soms rare dingen gebeuren. Vooral als je het ding ook nog eens ver buiten zijn ideale instelling gaat gebruiken. De 741 is een dinosaurus uit de tijd dat opamps niet singel rail werden gevoed. Het advies voor de 741 is +15V en -15V. Jij voed hem op +5V en 0V en dan laat je ook nog de offset aansluiting weg.

Let wel op, Comparators hebben meestal een open collector uitgang. Je kunt ze niet zomaar uitwisselen met opamps. Je zult dus je pcb layout moeten veranderen. Als dat te veel werk is kun je eerst nog de 741 zijn offset aansluiting proberen. Maar op 5V singel rail voor een niet-singel rail opamp denk ik dat het behelpen en onvoorspelbaar blijft.

Bekijk de datasheet maar eens. Daar zie je nog iets. De output kan niet zo hoog worden als de voedingspanning. Bij -15 en +15 voeding haalt hij gemiddeld -10 tot +10V en max, als alles meezit -13 tot +13. De output bij de meeste non-singel rail opamps haalt de uitgang zijn voedingspanning niet. Met een echte comparator lukt dat dankzij de open collector uitgang wel.
Heb je gemeten wat er gebeurd als het fout gaat ?

[Bericht gewijzigd door fred101 op (21%)]

Dank voor je input. Ik snap ongeveer 50%. Wat vind je van deze?

Ik kon er niet eentje vinden met één comparator erin.

Hugo

Ik zou misschien ook de hele comparator weg kunnen laten. Er is vast een voltage waarbij de Arduinopoort laag schakelt. Als de versterker daar in de buurt af te stellen is en daarvoor en daarna snel naar veel hogere of lagere waarde gaat, dan zou het ook moeten werken. Maar dat lijkt me niet zo mooi.

Hugo