Skip to content

06. Testing

Firing

After firing the oyster shell and clay mixture, I thought everything was all okay until a couple of days later I picked up the stucture and it crumbled in my hands! This is the mixture which had 1/3 oyster shell content, which is a shame. This means that I cannot use the original clay x oyster material for my application in the Philippines as it will disintegrate too easily during transportation - I will just use clay for RRReefs. However, for my Fabricademy final presentation as it will be only for show and not be fired (due to being to big for the kilns here in IAAC), I will still print with the clay x oyster shell material. I am not too bothered about this development as the project was more focused around the structure rather than the material anyway, and since RRReefs already 3D print using terracotta clay this will not be a problem.

ph

Using the below arduino code and a pH sensor I measured the pH of distilled water, seawater and the clay/clay and oyster shell material.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

float V7 = 1.215;  // Measured voltage in pH 7 solution
float V4 = 1.00;  // Measured voltage in pH 4 solution (adjust based on actual reading)

float slope, offset;
int buffer_arr[10];
int temp;

void setup() {
    Serial.begin(9600);
    lcd.init();
    lcd.begin(16, 2);
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("  pH Meter Ready  ");
    delay(2000);
    lcd.clear();

    // Compute the calibration slope & offset
    slope = (7.0 - 4.0) / (V7 - V4);  // Compute slope using actual readings
    offset = 7.0 - (slope * V7);      // Compute offset
}

void loop() {
    unsigned long avgval = 0;

    // Read multiple samples for stability
    for (int i = 0; i < 10; i++) {
        buffer_arr[i] = analogRead(A0);
        delay(30);
    }

    // Sort the readings (simple bubble sort)
    for (int i = 0; i < 9; i++) {
        for (int j = i + 1; j < 10; j++) {
            if (buffer_arr[i] > buffer_arr[j]) {
                temp = buffer_arr[i];
                buffer_arr[i] = buffer_arr[j];
                buffer_arr[j] = temp;
            }
        }
    }

    // Average the middle values (to remove noise)
    for (int i = 2; i < 8; i++) {
        avgval += buffer_arr[i];
    }

    // Convert to voltage
    float volt = (float)avgval * 5.0 / 1024.0 / 6.0;

    // Calculate pH using dynamic calibration
    float ph_act = slope * volt + offset;

    // Print to Serial Monitor for debugging
    Serial.print("Voltage: ");
    Serial.print(volt, 3);
    Serial.print(" V | pH Value: ");
    Serial.println(ph_act, 2);

    // Display on LCD
    lcd.setCursor(0, 0);
    lcd.print("pH Val:");
    lcd.setCursor(8, 0);
    lcd.print(ph_act);
    lcd.print("  ");  // Clear trailing digits

    delay(1000);
}
The serial monitor readings are shown below and unfortunately the clay and oyster shell material altered the pH of the seawater much more than I was expecting. RRReefs mentioned that the pH of the water in Pujada Bay, Philippines was 8.1. As expected though, the purely clay material did not alter the seawater too much.

From the results of firing and pH testing it seems best not to proceed with the clay + oyster shell mixture and solely focus on printing with clay. The

Mentoring Notes from RRReefs

I had originally thought that I needed to do UCS (compression testing), however Marie advised that she didn't think it was necessary in this situation. Marie suggested I focus on pH testing by dissolving the material in water and using a pH test strip.