Introduction
Neuromorphic engineering aims to emulate the computational principles of the biological brain using electronic hardware. Unlike conventional digital systems, biological neurons communicate using electrical spikes whose timing and frequency encode information.
In this project, a low-power analog spiking neural network is implemented using the CD40106 Schmitt Trigger Inverter IC. The network consists of two presynaptic neurons and one postsynaptic neuron. The presynaptic neurons receive inputs from IR proximity sensors and influence the postsynaptic neuron through excitatory and inhibitory synapses.
The postsynaptic neuron output is converted into an analog signal and read by an Arduino, which controls a servo motor. The resulting system behaves like a simple neuromorphic sensory-to-actuator reflex mechanism.
(Insert Block Diagram here)
Components Required
- Arduino Uno
- CD40106 Schmitt Trigger Inverter IC
- 2 × IR Obstacle Sensors
- SG90 Servo Motor
- 2N2222A NPN Transistor
- 1N4148 Diode
- LEDs
- Breadboard
- Jumper wires
- Resistors (330Ω, 10kΩ, 22kΩ, 47kΩ, 100kΩ)
- Capacitors (1µF, 47µF, 100µF, 220µF)
Step 1 – Building Neuron A (Inhibitory Neuron)
Neuron A acts as the inhibitory neuron and is driven by the first IR sensor.
Connections:
- Pin 1 → 47µF capacitor → GND
- Pin 1 → 10kΩ resistor → Pin 2
- IR Sensor A Output → Pin 1
- Pin 2 → 330Ω resistor → LED → GND
When IR Sensor A detects an object, Neuron A becomes active and drives the inhibitory synapse.
(Insert Neuron A circuit image here)
Step 2 – Building Neuron B (Excitatory Neuron)
Neuron B functions as the excitatory neuron.
Connections:
- Pin 9 → 47µF capacitor → GND
- IR Sensor B Output → 10kΩ resistor → Pin 9
- Pin 8 → 330Ω resistor → LED → GND
Activation of Neuron B increases the activity of the postsynaptic neuron.
(Insert Neuron B circuit image here)
Step 3 – Building Neuron C (Decision Neuron)
Neuron C integrates both excitatory and inhibitory inputs.
Connections:
- Pin 11 → 1µF capacitor → GND
- Pin 11 → 100kΩ resistor → Pin 10
- Pin 10 → 330Ω resistor → LED → GND
This neuron generates the final oscillatory output used for controlling the servo motor.
(Insert Neuron C circuit image here)
Step 4 – Implementing the Synapses
Excitatory Synapse
Connections:
- Pin 8 → 22kΩ resistor
- 22kΩ resistor → 1N4148 diode
- Diode cathode → Pin 11
This path increases the charging rate of Neuron C, increasing its oscillation frequency.
Inhibitory Synapse
Connections:
- Pin 2 → 22kΩ resistor → Base of 2N2222A transistor
- Emitter → GND
- Collector → 10kΩ resistor → Pin 11
When activated, the transistor discharges the capacitor at Neuron C, reducing or suppressing oscillation.
(Insert complete circuit image here)
Step 5 – Output Conditioning
The oscillatory output from Neuron C is converted into a smooth analog signal.
Connections:
- Pin 10 → 47kΩ resistor → nodeX
- nodeX → 100µF capacitor → GND
- nodeX → 47kΩ resistor → Arduino A0
This allows the Arduino to continuously monitor the neuron activity.
Step 6 – Servo Motor Interface
Servo Connections:
- Signal → Arduino Pin 9
- VCC → External Battery (18650 / 4×AA)
- GND → Battery GND
Battery GND is connected to Arduino GND to establish a common reference.
Two 220µF capacitors are connected in parallel across the battery terminals to stabilize the servo supply and reduce voltage fluctuations.
Step 7 – Arduino Programming
The Arduino continuously reads the analog voltage from nodeX and maps it to the servo position.
- Normal neuron activity → steady servo movement
- Excitatory input → increased servo movement
- Inhibitory input → reduced or stopped servo movement
#include <Servo.h>
Servo gate;
const int inputPin = A0;
void setup() {
gate.attach(9);
}
void loop() {
int val = analogRead(inputPin); // 0–1023
static int filtered = 0;
filtered = (filtered * 3 + val) / 4;
int angle = map(filtered, 0, 1023, 0, 180);
angle = constrain(angle, 0, 180);
gate.write(angle);
delay(20);
}Working Principle
The system mimics a biological neural reflex.
- Without sensor activation, Neuron C oscillates at its natural frequency, producing steady servo motion.
- When the excitatory IR sensor is activated, Neuron B increases the charging rate of Neuron C, resulting in faster oscillations and increased servo movement.
- When the inhibitory IR sensor is activated, the transistor-based synapse suppresses Neuron C activity, slowing or stopping the servo.
This demonstrates how analog electronic circuits can emulate basic neural computation.
Results
The completed system successfully demonstrates:
- Stable analog neuron oscillation
- Excitatory synaptic behavior
- Inhibitory synaptic behavior
- Real-time sensory processing
- Servo motor control based on neuron activity
The project verifies that biologically inspired neural behavior can be reproduced using simple analog electronic components without relying on complex digital neural networks.
.jpeg)
.jpeg)
Applications
- Neuromorphic Robotics
- Obstacle Detection Systems
- Reflex-Based Control Systems
- Prosthetic Feedback Systems
- Low-Power Embedded Intelligence
- Educational Neuromorphic Hardware Demonstrations
Conclusion
This project demonstrates a practical implementation of a neuromorphic analog spiking neural network using the CD40106 Schmitt Trigger IC. By combining analog oscillators, diode-based excitation, transistor-based inhibition, and Arduino-based actuator control, the system successfully replicates fundamental neural behaviors in hardware. The project provides an accessible platform for understanding neuromorphic engineering while showcasing the potential of analog computation for real-time embedded applications.
