Viscositieit bepalen met de Lego Mindstorms RCX |
Datum: april 2009
Principe:
De viscositiet van olie bepalen mbv een kogelviscometer
Materiaal:
|
|
|
|
Uitvoering:
|
|
|
|
|
|
Signaal uit eerste opstelling (water) |
|
Signaal uit tweede opstelling (water) |
|
Aan een kant lego blokjes verwijderd. | |
Het NQC programma dat we in de RCX laden om de data te verzamelen. | |
// Kogelviscometer // Door: Ruud Herold // April 2009 // Buis met boven en onder lichtsensors. // Vul buis met vloeistof. // Laat reflecterende kogel in buis vallen. // // Max aantal datapunten in RCX = 1000 # define LightTop SENSOR_1 # define LightBottom SENSOR_2 # define DATALOG_SIZE 1000 task main() { SetSensor(LightTop,SENSOR_LIGHT); SetSensor(LightBottom,SENSOR_LIGHT); CreateDatalog(DATALOG_SIZE); ClearTimer(0); // Set de timer to 0 int i=0; // teller while (i < DATALOG_SIZE) { AddToDatalog(FastTimer(0)); // Tijdswaarde aan datalog toevoegen AddToDatalog(LightTop); // licht waarde toevoegen AddToDatalog(LightBottom); // licht waarde toevoegen i++; } PlaySound(3); // Einde loop bereikt } |
|
De ruwe data wordt opgeslagen in een text file. Deze lezen we vervolgens in in excel en converteren deze mbv een eenvoudige macro naar een handzamer formaat. | |
Sub ProcessData() 'Program to convert LEGO datalog values to a more operatable form. ' @ 16/10/2005 by Ruud.Herold 'Notes: 'index = row, column 'Define some variables Dim CounterData As Integer 'counter in processed data sheet Dim CounterRaw As Integer 'counter in Raw data sheet 'Initialize variables CounterRaw = 1 CounterData = 2 'Start of program While Worksheets("rawdata").Cells(CounterRaw, 1).Value <> "" If Worksheets("rawdata").Cells(CounterRaw, 1).Value <> "" Then 'Convert RCX ms value to s Worksheets("data").Cells(CounterData, 1).Value = Worksheets("rawdata").Cells(CounterRaw, 2).Value / 100 'Copy cell values Worksheets("data").Cells(CounterData, 2).Value = Worksheets("rawdata").Cells(CounterRaw + 1, 2).Value Worksheets("data").Cells(CounterData, 3).Value = Worksheets("rawdata").Cells(CounterRaw + 2, 2).Value End If CounterRaw = CounterRaw + 3 CounterData = CounterData + 1 Wend End Sub |
|
Resultaten:
Als een kogel in een vloeistof valt en als deze kogel zwaarder is dan de vloeistof zal de kogel versnellen. Doordat de kogel tijdens het vallen echter weerstand ondervindt zal deze wrijvingskracht op een gegeven moment gelijk zijn aan het gewicht van de kogel. De kogel valt op dat moment met een constante snelheid zoals weergegeven in nevenstaande figuur. Aangezien de versnelling gelijk is aan 0 kunnen we een evenwichtvergelijking opschrijven: FB + FD = W Waarin: Het volume van een bol wordt beschreven door de volgende formule.:
|
|
||
Deze formule kunnen we gebruiken om de massa van de bal en de massa van de verplaatste vloeistof te bepalen, door deze te combineren met de dichtheid van de bol en die van de vloeistof. Voor de bol:
Voor de vloeistof:
|