This is a DIY signal generator using op-amps and an Arduino.
The signal generator here is consists of three stages. The main oscillation stage, the square wave stage and the PWM stage.
The main oscillation stage is done using a Wien Bridge Oscillator. An oscillator using resistors capacitors and an Op-Amp. Since this stage already outputs sine wave, there is nothing much more that we need to do for the sinosoudal output.
The square wave is produced by feeding the sinosoudal signal into an Op-amp and adjusting the gain so that the signal rails to the Vcc and Vdd of the Op-amp.
The PWM signal is generated by the Arduino. The Arduino also controls the LCD that acts as the display that shows the frequency and amplitude of the currently outputted signal.
Schematic here