Praktisch gesproken zitten er twee kanten aan wrijving. Stel je voor je bent wielrenner in de ronde van Frankrijk en je bent bezig met de afdaling van een flinke berg. Dan wil je zo snel mogelijk beneden komen en daarvoor moeten alle onderdelen zo weinig mogelijk wrijving hebben. Maar kom je bij een bocht, dan wil je juist zoveel mogelijk wrijving bij je remmen en banden. Een goed begrip van wrijving is dus wel van belang. Leonardo da Vinci (1452-1519) was voor zover wij weten de eerste die dit systematisch bestudeerd heeft. Hij heeft de eerste wrijvingswetten correct opgesteld maar omdat da Vinci nooit zijn werk gepubliceerd heeft zijn ze onbekend gebleven en pas 200 jaar later door Guillaume Amontons weer ontdekt.
De twee regels die da Vinci ontdekte waren:
De wrijvingskracht verdubbelt bij verdubbeling van het gewicht. (Codex Forster III 72 r.) Dit staat geschreven op de originele afbeelding hiernaast.
De wrijving van een voorwerp met hetzelfde gewicht is hetzelfde ook al is de afmeting van het contact oppervlak niet hetzelfde. (Codex Forster II, 133r & 133v.)
Met behulp van een testopstelling met een zeer langzaam draaiende elektromotor, een Arduino microcontroller en een HX-711 weegsensor kunnen we deze regels verifiëren. Bovendien kunnen we hiermee ook het verschil tussen statische en dynamische wrijving meten. Misschien heb je wel eens gemerkt dat als je een zware doos wil verschuiven je eerst vrij hard moet duwen en dat het daarna wat gemakkelijker gaat. Dit fenomeen is het verschil tussen statische wrijving (meestal µs genoemd) en dynamische wrijving (meestal µd genoemd). Het kost meer kracht om een voorwerp in beweging te krijgen dan om de beweging op gang te houden.
Hiernaast een schematische voorstelling van een proefopstelling. De elektromotor is 12V, 20 RPM. De snelheid is nog aan te passen door de spanning of de asdikte te veranderen. De gebruikte sensor is voor maximaal 1kg.
De sensor bestaat uit een aluminium blok met in het midden twee gaten. Aan weerszijde van de gaten zijn metalen strips geplakt waarvan de weerstand verandert bij rekken of samendrukken. Om dit goed te kunnen meten is een versterker nodig, de HX-711 die wordt aangesloten op de Arduino volgens onderstaand schema.
We hebben hier vooral gebruik gemaakt van de Sparkfun tutorial voor de HX-711: https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide.
Voor het gebruiken van de sensor hebben we nog het een en ander aan software nodig. Op de eerste plaats de bibliotheek van bogde: https://github.com/bogde/HX711
Als deze bibliotheek nog niet geïnstalleerd is (kijk in de Arduino IDE bij bestand > voorbeelden of HX711-master erbij staat) moet je dit nog doen: Ga naar bovenstaande site en klik op de knop Code. Klik op download Zip.
Ga dan naar Schets > Bibliotheek gebruiken > voeg .ZIP bibliotheek toe.
Nu nog de library installeren: ga daarvoor naar: https://sites.google.com/view/hwc-io/hierheen-voor-meer-paginas/sensoren/bibliotheken-lybraries-installeren
Nu hebben we nog code nodig om te kalibreren en code voor het meten zelf. Voor de kalibratie code gebruiken we “SparkFun_HX711_Calibration”, die kan je beneden kopiëren.
Voor het meten zelf gebruiken we een aangepaste code van het ‘Sparkfun HX711 Example’. (Beneden kopiëren)
Upload de onderstaande code naar de Arduino.
Start het programma met onbelaste sensor en open de seriële monitor.
De reading moet dan 0 aangeven en de kalibratiefactor 2000.
Hang nu een bekend gewicht aan de sensor (hiernaast een 9v batterij).
Voor in het invoer veldje + of - in (met enter) totdat de reading overeenkomt met het gewicht (je kan meerdere plussen en minnen tegelijk invoeren).
Je hebt nu je kalibratiefactor voor het meetprogramma.
/* SparkFun calibratie sketch:
https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide.
Kijk in de toturial hierboven voor meer info en de originele code.
*/
#include "HX711.h"
#define DOUT 3 // DT op printplaat
#define CLK 2 // SCK op printplaat
HX711 scale;
float calibration_factor = 2000; // >> Dit is de factor die je moet gaan bepalen
void setup() {
Serial.begin(9600);
Serial.println("HX711 calibration sketch");
Serial.println("Remove all weight from scale");
Serial.println("After readings begin, place known weight on scale");
Serial.println("Press + or a to increase calibration factor");
Serial.println("Press - or z to decrease calibration factor");
scale.begin(DOUT, CLK);
scale.set_scale();
scale.tare(); //Reset the scale to 0
long zero_factor = scale.read_average(); //Get a baseline reading
Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale.
Serial.println(zero_factor); //Useful in permanent scale projects.
}
void loop() {
scale.set_scale(calibration_factor); //Adjust to this calibration factor
Serial.print("Reading: ");
Serial.print(scale.get_units(), 1);
Serial.print(" gram");
Serial.print(" calibration_factor: ");
Serial.print(calibration_factor);
Serial.println();
if(Serial.available())
{
char temp = Serial.read();
if(temp == '+' || temp == 'a')
calibration_factor += 10;
else if(temp == '-' || temp == 'z')
calibration_factor -= 10;
}
}
Upload het onderstaande meetprogramma.
Verander in de regel - #define calibration_factor 2070- het getal 2070 in het getal dat je gevonden bij het kalibreren.
De meettijd staat nu op 10 seconden. Dit kan je veranderen door in de regel - while (millis() < 10000) - het getal te veranderen.
Open de seriële monitor. Je ziet twee kommen gescheiden door een komma. De eerste kolom is het aantal milliseconden sinds de start van het programma. De tweede kolom is het gewicht op dat moment. Na iedere meting moet je op de reset knop op de Arduino drukken voor de volgende meting. Druk op uitvoer wissen om het scherm leeg te maken.
/* Wrijving met de HX-711.
Dit is een aangepaste versie van het SparkFun HX711 example.
Er wordt een bepaalde (10000 milliseconde), in te stellen tijd, gemeten.
Voor iedere meting op de reset knop drukken.
*/
#include "HX711.h"
#define calibration_factor 2070 // !!! waarde bepalen met de SparkFun_HX711_Calibration sketch!!!
#define DOUT 3
#define CLK 2
HX711 scale;
int led = 13;
void setup() {
Serial.begin(9600);
Serial.println("HX711 scale demo");
pinMode(led, OUTPUT);
scale.begin(DOUT, CLK);
scale.set_scale(calibration_factor);
scale.tare(); // reset de scale op 0
Serial.println("Readings:");
}
void loop() {
while (millis() < 10000) { //// tijd instellen naar behoefte ////
digitalWrite(led, HIGH);
Serial.print(millis());
Serial.print(" , ");
Serial.println(scale.get_units(), 1); //laatste getal is het aantal decimalen
}
digitalWrite(led, LOW);
}
Kopieer de getallen (met komma) naar (b.v.) een kladblok bestand.
Open Excel (recente versie).
Ga nu naar Gegevens klik op: Uit tekst/CSV en zoek het kladblokbestand waar je het opgeslagen hebt en dubbelklik (of klik op Importeren).
Je krijgt nu de een nieuw scherm: Zet Scheidingsteken op Komma en klik op Laden.
De gegevens worden nu in Excel geplaatst.
Nu gaan we van de gegevens nog een grafiek maken zodat we (mogelijk) het statische- en dynamische wrijvingsgebied goed kunnen onderscheiden.
Selecteer de getallen.
Ga naar Invoegen dan naar Grafieken en selecteer een Spreidingsgrafiek.
Geef de grafiek een grafiektitel en maak ook as-titels (klik op het plusje naast de grafiek).
Als je een oudere versie van Excel gebruikt moet je misschien eerst het decimaal teken op Europees zetten: Ga naar Bestand > Opties > Geavanceerd en maak Decimaalteken een komma en Scheidingsteken een punt.
Dit is het derde onderdeel van het onderzoek naar wrijving. De PDF van het geheel kan je hieronder bekijken of downloaden.