RuimJeBureauOp-Inator
Persoonlijk ben ik heel slecht in het opruimen van de vieze vaat op mijn bureau, tot grote ergenis van mijn moeder... Toen we de opdracht kregen van school om iets te maken met de Arduino vond ik het een goed idee om te proberen dat probleem op te lossen. Mijn idee is om een weegschaal te maken waar ik alle vieze vaat op kan zetten. Wanneer er teveel vaat op staat gaat die een vervelend geluid maken, waardoor ik mezelf herinner en dwing om de vaat naar beneden te brengen.
Supplies
1x Arduino Uno
1x 5 kg Load cell
1x HX711 Load Cell Amplifier
1x 6 AA batterijhouder
1x Piezo-zoemer
1x LCD 16x2 met IC2
Jumper Cables
Male-Female Jumper Cables
Genoeg hout voor een 30x30 cm doosje + extra voor load cell support en andere onderdelen vastzetten
Houtlijm
Onderzoek
Voordat ik begon met het maken, moest er natuurlijk onderzoek gedaan worden naar hoe ik dit project ging aanpassen. Mijn eerste idee was om er meerdere functies in te stoppen zoals een sensor die bijhoudt of mijn waterglas nog vol genoeg zat. Ik kwam er echter al snel achter dat, omdat borden al redelijk groot zijn, de doos zelf ook al groot zou worden. Het leek me onpraktisch om er nog ruimte bij te maken voor een glas houder.
Het volgende waar ik naar heb gekeken was het materiaal voor de doos. De doos zelf moest stevig zijn, maar de bovenkant moet niet te zwaar zijn. Het eerste stuk houd dat ik had gezaagd bleek zelf al bijna 1 kilo te wegen, dit is natuurlijk veel te zwaar voor een load cell die 5 kilo aan kan, als er ook nog borden op moeten kunnen. Hierna heb ik besloten om het met een stuk triplex te maken. Dit weegt een stuk minder. Ook voor het LCD schermpje heb ik uiteindelijk in een triplex plaatje gezet, omdat dit hout precies dik genoeg bleek voor de dikte van het schermpje.
Load Cell Klaarmaken
Het belangerijkste onderdeel van dit project is de 5Kg Load Cell. Deze wordt namelijk gebruikt om het gewicht te meten die op de bovenkant aanwezig is. Het eerste probleem waar ik tegen aan liep was dat er geen uiteindes aan de draadjes van de load cell zaten. Hierdoor kon ik die niet meteen in de breadboard kon prikken. Dit heb ik opgelost door wat van mijn eigen draadjes door midden te knippen en die vast te solderen aan de draadjes van de Load Cell.
Vervolgens heb ik de Load Cell vast geschroeft aan 2 houten blokjes, De pijl die op de load cell staat moet naar beneden wijzen. Het onderste blok heb ik vervolgens met houtlijm vastgeplakt aan een houten plank. Dit was de plank die ik eerst probeerde voor bovenop de weegschaap, maar die te zwaar bleek te zijn. Het is belangerijk dat dit blok goed vast zit, want het moet niet omvallen als je er een gewicht op plaatst.
HX711 Aansluiten
De HX711 is een module die de gemeten verandering in weerstand van de load cell omzet in electrische signalen die makkelijk te gebruiken zijn voor de arduino. Nadat de LoadCell goed is vastgemaakt moet deze worden aangesloten aan de HX711 voordat de arduino er goed mee kan werken. Hoe die precies moet worden aangesloten staat in het schema verder naar beneden.
Kalibratie
De volgende stap is om de arduino aan te zetten en te kijken wat voor waardes de load cell aangeeft. Deze waardes zullen nog helemaal niet kloppen, omdat de arduino nog niet weet welke stroomhoeveelheid hoort bij welk gewicht. Eerst moet de load cell worden gekalibreert. De code die ik hiervoor heb gebruikt vond ik toen ik opzoek was naar een goede library voor de hx711. Deze code is hier te vinden: https://github.com/sparkfun/HX711-Load-Cell-Amplif...
Toen ik deze code gebruikte had ik volgens de arduino een gewicht van -80kg op mn weegschaal staan. Met deze code kon je met + en - de kalibratie factor veranderen totdat het gewicht overeen kwam met het gewicht wat daadwerkelijk op de load cell stond. Dit was in mijn geval niets, dus heb ik hem ingesteld op 0 kg. Deze code werkt in stappen van 10, maar dit werkte voor mij te langzaam, want ik moest kalibratie factor enorm erg verhogen. Ik heb de code aangepast dat deze niet met 10 omhoog gaat, maar met een paar duizend hoger. De kalibratie factor die ik gevonden heb is uiteindelijk 442950 geworden. Dit getal heb je later nodig in een andere code.
Aansluiten Zoemer En Scherm
Nadat de weegschaal goed werkt is het tijd om het gewicht te laten zien op het scherm en de zoemer te laten activeren bij een bepaald gewicht. Hiervoor moeten deze 2 eerst worden aangesloten aan het systeem.
Code
Hieronder staat de code die ik heb gebruikt voor dit project. Bij de calibration_factor staat het getal wat ik heb gevonden bij de kalibratie. De library LiquidCrystal_I2C.h en Wire.h worden gebruikt voor het aansturen van de schermpje en de HX711.h is natuurlijk voor de load cell.
#include <LiquidCrystal_I2C.h> #include <Wire.h> #include <HX711.h> LiquidCrystal_I2C lcd(0x27,20,4); #define calibration_factor 442950 //This value is obtained using the SparkFun_HX711_Calibration sketch #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 HX711 scale; int weight; const int buzzer = 9; void setup() { Serial.begin(9600); Serial.println("HX711 scale demo"); lcd.init(); // initialiseer de lcd lcd.init(); // Print a message to the LCD. lcd.backlight(); lcd.setCursor(1,0); lcd.print("Gewicht is: "); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch scale.tare(); //Zet de scale op 0 kg Serial.println("Readings:"); } void loop() { Serial.print("Reading: "); Serial.print(scale.get_units(), 1); //scale.get_units() returns a float weight = scale.get_units(); Serial.print(" kg"); //You can change this to kg but you'll need to refactor the calibration_factor Serial.println(); if(weight >= 2) //Zorgt dat er bij de 2 kilo iets gebeurt { Serial.println("piep"); //Activeert de zoemer tone(buzzer, 1000); }else{ noTone(buzzer); //Zet de zoemer uit } lcd.setCursor(1,1); lcd.print(scale.get_units()); //Print de gevonden waarden van de load cell op het scherm lcd.print("Kg"); }<br>
Doos in Elkaar Zetten
Nu dat alle code werkt en de zoemer en het schermpje goed zijn aangesloten kan de doos in elkaar gezet worden. Ik heb 2 dikke platen aan de zijkanten voor de stevigheid en 2 dunne triplex platen aan de voor en achter kant, waar het scherpje doorheen past. Het gat voor het schermpje is gezaagd met een decoupeerzaag. De bovenkant, waar de borden op komen, is dus ook van triplex. In de hoeken zitten support balkjes zodat alles goed blijft vastzitten en de onderdelen zitten vast met kleine latjes, waardoor ze niet meer heen en weer kunnen schuiven.
Reflectie
Tijdens dit project heb ik enorm veel geleerd. Voor deze opdracht had ik nog nooit iets gedaan met elektronica, dus de progressie van niets naar het niveau dat ik nu heb voelt heel goed. Ik vond het gebruik van de arduino verassend makkelijk en koste minder tijd dan ik had verwacht. Veruit het meeste werk zat in het zagen van het hout en het solderen van alle snoertjes. Het solderen was aan het begin echt even lastig. Dat ging een paar keer goed mis en de draadjes braken constant. Maar na een paar keer opnieuw proberen en oefenen kreeg ik het aardig goed onder de knie. Het idee vind ik uiteindelijk niet zo orginieel of creatief als ik had gehoopt, maar ik ben alsnog heel trots op wat ik heb bereikt.