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. 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. 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 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 usually into an Excel file which can be viewed at the end of the video.
Built with Processing 1.5.1 and Arduino UNO.
Music:
CumbiaNoFrillsFaster by Kevin MacLeod (incompetech.com)
Notanico Merengue by Kevin MacLeod (incompetech.com)
Comparsa by Kevin MacLeod (incompetech.com)
Tango de Manzana by Kevin MacLeod (incompetech.com)