Introduction: Quantum Tunneling/evanescent Wave Effect in Paraffin Wax

Explainer in Dutch

Supplies

Supplies:

3x HB100 sensor (Two are used as receivers, one as transmitter)

3x lasercut box, with designed holes to hold sensor

2x upamp circuits for receivers (look at attached pictures for the specifics)

2x breadboards for upamp circuit

2x indication LED for receivers

1x Arduino Uno

2x paraffin wax prisms (home-made)

1x screw thread to move one of the prisms

1x styrofoam box


Step 1: Create Paraffin Wax Blocks

Melt simple candles, and create a simple styrofoam mold. Put in a bucket of ice to reduce spilling, and let solidify over a couple of hours.

Step 2: Create Upamp Circuits

Using the above circuit, create two upamp circuits for your receivers

Step 3: Connect Yor HB100 Sensors

Be aware of the fact that you only need to solder the grounds and the +5V for the transmitter, and the grounds and if ports for the receivers. This will make life less cluttered :)

Step 4: Create Sensor Holders

These were created in Inkscape and cut with a lasercutter. Our design is listed below.

Step 5: Create Your Own Screw Thread System

Create a system to move one of your paraffin wax blocks towards the other. The picture listed is what we used, but be sure to create something you're comfortable with using.

Step 6: Finishing Touches on a Big Box

Make sure that everything is leveled well! If you want to, you can create aluminium foil guiding 'lenses' for the transmitter, as this could help with strange measurements.

Step 7: Connect to Arduino and Write Code!

This is the code that we used, but be sure to calibrate it to what works for you. This should at least be able to receive all the data from the two sensors, and transmit microwaves from the transmitter. Calibrating things like delay, SAMPLE_WINDOW and THRESHOLD should help you on your quest to perfection.


// Constants for HB100 Radar Sensor pins

const int SENSOR1_PIN = A0; // Connect the first sensor to analog pin A0

const int SENSOR2_PIN = A1; // Connect the second sensor to analog pin A1


// Constants for LED pins

const int LED1_PIN = 4;  // Connect the first LED to digital pin 4

const int LED2_PIN = 5;  // Connect the second LED to digital pin 5


// Constants for processing radar output

const int SAMPLE_WINDOW = 600; // Number of samples to consider for calculation

const int THRESHOLD = 300;   // Minimum number of samples to detect an object


const int sensorValue = 670;


void setup() {

 // Set the sensor pins as inputs

 pinMode(SENSOR1_PIN, INPUT);

 pinMode(SENSOR2_PIN, INPUT);

 

 // Set the LED pins as outputs

 pinMode(LED1_PIN, OUTPUT);

 pinMode(LED2_PIN, OUTPUT);

 

 // Initialize the serial communication

 Serial.begin(9600);

}


void loop() {

 // Read the sensor values

 analogRead(SENSOR1_PIN);

 delay(10);

 int sensor1Value = analogRead(SENSOR1_PIN);

 analogRead(SENSOR2_PIN);

 delay(10);

 int sensor2Value = analogRead(SENSOR2_PIN);



 

 // Process the sensor values

 int sensor1Samples = calculateSamples(SENSOR1_PIN);

 int sensor2Samples = calculateSamples(SENSOR2_PIN);


 // Print the processed values to the serial monitor

 Serial.print("Sensor 1: ");

 Serial.print(sensor1Samples);

 Serial.print(" samples ");

 Serial.print(sensor1Value);

 Serial.print(" value - Sensor 2: ");

 Serial.print(sensor2Samples);

 Serial.print(" samples ");

 Serial.print(sensor2Value);

 Serial.println(" value");

 if (sensor1Samples <=THRESHOLD){

  sensor1Samples=0;

 }

 if (sensor2Samples <=THRESHOLD){

  sensor2Samples=0;

 }

 // Compare the number of samples and light up the corresponding LEDs

 if (sensor1Samples >sensor2Samples) {

  digitalWrite(LED1_PIN, HIGH);

  digitalWrite(LED2_PIN, LOW);

 } else if (sensor2Samples > sensor1Samples) {

  digitalWrite(LED1_PIN, LOW);

  digitalWrite(LED2_PIN, HIGH);

 }

 delay(400); // Delay for stability

}


// Function to calculate the number of samples above a certain threshold


int calculateSamples(int SENSOR_PIN) {

 analogRead(SENSOR_PIN);

 delay(10);

 int numSamples = 0;

 

 for (int i = 0; i < SAMPLE_WINDOW; i++) {

  int value = analogRead(SENSOR_PIN);

  if (value > sensorValue) {

   numSamples++;

  }

  delayMicroseconds(100);

 }

 

 return numSamples;

}