This is a Functions Generator to be used to drive physical variables either directly by voltage variations using PWM or by means of a control loop implemented in the Arduino code. The latter will require using the corresponding sensors and actuators for the variable in question. At this time 12 different waveforms are available. Implementing the graphical representation and adjustments of the mathematical equations has been the hardest part in this project. Particularly difficult for me was implementing the triangular waveform even when it looks very simple
. It took me a bit more than 2 weeks to build this Project despite the fact that I had most of the virtual instrumentation already built At this time PWM is the only type of modulation available. The GUI includes buttons for Freq and Phase Modulation; but they are not active at this time. The Arduino code to handle these types of modulation is pending and honestly I have no plans to do it for now. The video shows a light bulb used as the load to observe the voltage variations from the PWM signal generated by Arduino. analogWrite(); is being used to generate the PWM driver signal through pin 3. A potentiometer connected as a voltage divider to analog input A1 is used to simulate the sample signal. "Full duplex" communication is established between the computer (Processing) and Arduino. It receives the values to drive the PWM signal and sends back to the computer the voltage sampled at analog input A1. This is the first time I implement "full duplex" communication involving data in both directions although high resolution is only one way. High resolution PWM is pending. All data collected while recording is logged as usual into an Excel file which can be viewed at the end of the video.
Built with Processing 1.5.1 and Arduino UNO.
Critics, comments suggestions, ideas, opinions, thoughts are all welcome.