This is an old revision of the document!


True Random Number Generator

Ionacu Teodor Alexandru 1222A

Introduction

The True Random Number Generator (TRNG) project utilizes an Arduino Uno, LEDs, a microphone, and capacitors to generate unbiased and unpredictable random numbers based on ambient noise. By capturing noise signals with the microphone and using them to seed the Arduino's random number generator, the project provides a practical solution for generating true randomness with visual feedback through blinking LEDs.

General Description

The True Random Number Generator (TRNG) project utilizes an Arduino Uno board, LEDs, a microphone, and capacitors to create a device that generates random numbers based on ambient noise. The project taps into the inherent variability in noise signals to produce unbiased and unpredictable random numbers, which have applications in cryptography, gaming, simulations, and other domains requiring random data. The Arduino Uno serves as the control unit, providing the necessary processing power and I/O capabilities. The microphone captures ambient sound signals, which contain random fluctuations. These signals are used to seed the Arduino's random number generator, ensuring the generated numbers are truly random. Visual feedback is provided through LEDs connected to the Arduino board, blinking briefly whenever a new random number is generated. Capacitors may be utilized for noise filtering, signal conditioning, or biasing purposes. The TRNG project combines the Arduino platform's flexibility with ambient noise sources to offer a practical and accessible solution for generating random numbers with high entropy.

Electrical diagram

Hardware Design

Components

  • MQ-3 sensor
  • Arduino UNO board
  • Buzzer
  • Button
  • LCD display with I2C module
  • Breadboard

Physical Project

Software Design

Libraries used
  • <Wire.h>
  • <LiquidCrystal_I2C.h>
Funcții implementate:
  • void setup():
    • Declare the pins
    • Initialize the LCD display
    • Display the initial text (“Press the button”)
  • void loop():
    • Verify if the button has been pressed
    • If the button has been pressed the Buzzer starts and makes a noise every second for 5 seconds
    • The LCD displays that the sensor is reading
    • After 5 seconds the buzzer stops
    • The code computes the average value read by the sensor
    • The condition blocks inside the code verify the value and display the appropriate message
Code for the project

Conclusions

It has been a fun experience learning how to create an Alcohol tester. I believe that this device can be later used if needed. My knowledge regarding the Arduino technology has definitely improved.

Journal

01.05.2023 - Initial Documentation 03.05.2023 - Ordered the needed parts 10.05.2023 - Started testing the sensor 28.05.2023 - Finished the project

Resources

pm/prj2023/avaduva/random.1685314008.txt.gz · Last modified: 2023/05/29 01:46 by teodor.ionascu1507
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0