- Vaaditut komponentit Arduino-vaaka-asteikon rakentamiseen:
- Punnituskenno ja HX711-painotunnistinmoduuli:
- Piirin selitys:
- Työselitys:
- Arduino-vaaka-asteikkokoodi:
Tänään aiomme rakentaa Arduino- taistelukoneen, yhdistämällä kuorma-anturin ja HX711-painotunnistimen Arduinoon. Olemme nähneet painokoneita monissa kaupoissa, joissa kone näyttää painon vain asettamalla tuotteen punnitusalustalle. Joten tässä rakennamme saman punnituskoneen käyttämällä Arduino- ja punnituskennoja, joiden kapasiteetti on jopa 40 kg. Tätä rajaa voidaan lisätä edelleen käyttämällä suuremman kapasiteetin kuormituskennoa.
Tämän Arduino-punnitusasteikon rakentamiseen tarvittava pääkomponentti on anturi, joka voi muuntaa painon vastaavaksi sähköiseksi signaaliksi. Tätä anturia kutsutaan punnituskennoksi, joten tässä projektissa käytämme tätä punnituskennoa Arduino-painotunnistimena. Olemme myös käyttäneet samaa kuormituskennoa muutamissa muissa projekteissa, kuten esimerkiksi kannettava Arduino-vähittäiskaupan punnituskone, vadelma-punnitusasteikko jne., Voit myös tarkistaa ne, jos olet kiinnostunut.
Vaaditut komponentit Arduino-vaaka-asteikon rakentamiseen:
- Arduino Uno
- Punnituskenno (40kg)
- HX711 Punnituskennovahvistinmoduuli
- 16x2 LCD
- Johtojen liittäminen
- USB kaapeli
- Leipälauta
- Mutteripultit, runko ja pohja
Punnituskenno ja HX711-painotunnistinmoduuli:
Punnituskenno on anturi, joka muuntaa voiman tai paineen sähkötehoksi. Tämän sähkötehon suuruus on suoraan verrannollinen kohdistettuun voimaan. Punnituskennoissa on venymäliuska, joka epämuodostuu, kun siihen kohdistetaan painetta. Ja sitten venymäliuska tuottaa sähköisen signaalin muodonmuutoksesta, kun sen tehollinen vastus muuttuu muodonmuutoksessa. Punnituskenno koostuu yleensä neljästä venymämittarista Wheatstonen sillan kokoonpanossa. Punnituskennoja on saatavana useilla eri alueilla, kuten 5kg, 10kg, 100kg ja enemmän, tässä olemme käyttäneet punnituskennoja, jotka voivat painaa jopa 40kg.
Nyt punnituskennon tuottamat sähköiset signaalit ovat muutamassa millivoltissa, joten niitä on edelleen vahvistettava jollakin vahvistimella, joten kuvaan tulee HX711-punnitusanturi. HX711-punnitusanturimoduulissa on HX711-siru, joka on 24 erittäin tarkka A / D-muunnin (analoginen digitaalimuunnin). HX711: llä on kaksi analogista tulokanavaa ja voimme saada jopa 128 vahvistuksen ohjelmoimalla nämä kanavat. Joten HX711-moduuli vahvistaa kuormituskennojen matalaa sähkötehoa ja sitten tämä vahvistettu ja digitaalisesti muunnettu signaali syötetään Arduinoon painon laskemiseksi.
Punnituskenno on kytketty HX711-punnituskennovahvistimeen neljällä johtimella. Nämä neljä johtoa ovat punainen, musta, valkoinen ja vihreä / sininen. Johtimien värit saattavat vaihdella moduulista toiseen. Yhteystietojen ja kaavion alla:
- PUNAINEN lanka on kytketty E +: een
- BLACK Wire on kytketty E-
- WHITE Wire on kytketty A-
- VIHREÄ johdin on kytketty A +: een
Korin ja alustan punnituskennon kiinnittäminen:
Tämä vaihe on valinnainen, ja voit laittaa painot suoraan kuormituskennoon ilman alustaa ja voit yksinkertaisesti kiinnittää sen kiinnittämättä sitä millään alustalla, mutta on parempi kiinnittää alusta suurten esineiden asettamiseksi siihen ja kiinnittää se alustaan niin että se pysähtyy. Joten tässä meidän on tehtävä kehys tai foorumi tavaroiden asettamiseksi painon mittaamista varten. Pohja vaaditaan myös punnituskennon kiinnittämiseksi sen päälle käyttämällä muttereita ja pultteja. Tässä olemme käyttäneet runkoon kovaa pahvia esineiden sijoittamiseen sen päälle ja puulevyä pohjaksi. Suorita nyt kytkennät piirikaavion mukaisesti ja olet valmis menemään.
Piirin selitys:
Tämän projektin liitännät ovat helppoja, ja kaavio on esitetty alla. 16x2 LCD-nastat RS, EN, d4, d5, d6 ja d7 on kytketty Arduinon vastaavasti pin-numeroihin 8, 9, 10, 11, 12 ja 13. HX711-moduulin DT- ja SCK-nastat on kytketty suoraan Arduinon nastoihin A0 ja A1. HX711-moduulin kanssa käytettävät punnituskennoyhteydet on jo selitetty aikaisemmin ja esitetty myös alla olevassa piirikaaviossa.
Työselitys:
Tämän Arduino-painonmittausprojektin toimintaperiaate on helppoa. Ennen yksityiskohtien käsittelyä meidän on ensin kalibroitava tämä järjestelmä oikean painon mittaamiseksi. Kun käyttäjä käynnistää sen, järjestelmä alkaa automaattisesti kalibroida. Ja jos käyttäjä haluaa kalibroida sen manuaalisesti, paina sitten painiketta. Olemme luoneet toiminnon void calibrate () kalibrointia varten. Tarkista alla oleva koodi.
Odota kalibrointia varten, kunnes nestekidenäyttö osoittaa 100 gramman punnituskennon päälle alla olevan kuvan mukaisesti. Kun nestekidenäytössä näkyy "laittaa 100 g", aseta 100 g: n paino punnituskennon päälle ja odota. Muutaman sekunnin kuluttua kalibrointi on valmis. Kalibroinnin jälkeen käyttäjä voi laittaa minkä tahansa painon (enintään 40 kg) punnituskennon päälle ja saada LCD-arvon grammoina.
Tässä projektissa olemme käyttäneet Arduinoa koko prosessin hallintaan. Punnituskenno tunnistaa painon ja toimittaa sähköisen analogisen jännitteen HX711-kuormitusvahvistimelle. HX711 on 24-bittinen ADC, joka vahvistaa ja muuntaa kuormituskennolähdön digitaalisesti. Sitten tämä vahvistettu arvo syötetään Arduinoon. Arduino laskee nyt HX711: n tuotoksen ja muuntaa sen painoarvoiksi grammoina ja näyttää sen LCD-näytöllä. Painikkeen käytetään kalibrointiin järjestelmässä. Olemme kirjoittaneet Arduino-ohjelman koko prosessille, tarkista koodi ja esittelyvideo tämän opetusohjelman lopussa.
Arduino-vaaka-asteikkokoodi:
Tämän projektin ohjelmointiosa on pieni monimutkainen aloittelijoille. Tässä projektissa emme käyttäneet kirjastoa HX711-kuormantunnistimen liittämiseen Arduinoon. Olemme juuri seuranneet HX711: n tietolomaketta ja sovellushuomautuksia. Vaikka tätä tarkoitusta varten on olemassa joitain kirjastoja, joissa sinun tarvitsee vain sisällyttää kyseinen kirjasto ja saat painon yhdellä koodirivillä.
Ensinnäkin, olemme sisällyttäneet otsikkotiedoston LCD: lle ja määrittäneet sen nastat. Ja myös painonappia varten. Sitten ilmoitti muuttujia laskutarkoitusta varten.
#sisältää
Sen jälkeen olemme luoneet alla olevan toiminnon tietojen lukemiseksi HX711-moduulista ja palauttamaan sen tuotoksen.
unsigned long readCount (void) {allekirjoittamaton pitkä count; allekirjoittamaton merkki i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Laskenta = 0; pinMode (DT, INPUT); taas (digitalRead (DT)); varten (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Laskea = Laskea << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Laskea = Laskea ^ 0x800000; digitalWrite (SCK, LOW); paluu (Count); }
Sen jälkeen olemme alustaneet nestekidenäytön ja annamme ohjeet tulo- ja lähtöliittimille tyhjässä asennuksessa ().
void setup () {Sarja.alku (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Paino"); lcd.setCursor (0,1); lcd.print ("Mittaus"); viive (1000); lcd.clear (); kalibroida(); }
Seuraavaksi void loop () -toiminnossa olemme lukeneet tietoja HX711-moduulista ja muuntaneet nämä tiedot painoksi (grammoina) ja lähettäneet sen nestekidenäytölle.
void loop () {count = readCount (); int w = (((count-näyte) / val) -2 * ((count-näyte) / val)); Sarjaprintti ("paino:"); Sarjaprintti ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Paino"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; näyte = 0; w = 0; määrä = 0; kalibroida(); }}
Ennen tätä olemme luoneet kalibrointitoiminnon, jossa olemme kalibroineet järjestelmän asettamalla 100 g: n paino punnituskennon päälle.
void calibrate () {lcd.clear (); lcd.print ("Kalibroidaan…"); lcd.setCursor (0,1); lcd.print ("Odota hetki…"); for (int i = 0; i <100; i ++) {count = readCount (); näyte + = laskenta; Serial.println (määrä); }……………….
Joten tässä olemme oppineet punnitusanturin ja HX11-painotunnistimen perusliitännän Arduinon kanssa painojen mittaamiseksi. Tekstioppaissamme luomme joitain painonmittaukseen perustuvia sovelluksia, kuten Smart container, Automatic gate jne.