Go Down

Topic: Functions Generator (Read 2325 times) previous topic - next topic

arduinoadrian

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  :smiley-roll-blue:. 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.
Thanks.
http://youtu.be/0MGW8DekE10

Perseverance is 90% of the solution. The remaining 10% is more perseverance.

robtillaart

Looks like you did a good job!

Is it open source?  github code base or so?

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

arduinoadrian

Sorry, no its is not open source.
Perseverance is 90% of the solution. The remaining 10% is more perseverance.

robtillaart

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

arduinoadrian

The truth of the matter is that these are codes I'm building for fun and they are probably full of inefficiencies, making them unsuitable for sale or anything like that.
Perseverance is 90% of the solution. The remaining 10% is more perseverance.

robtillaart

That makes them ideal for open source as others can improve upon them !
(don't want to push you)
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

arduinoadrian

Thank you. While under pressure  people tend to make mistakes. At the end of the day, I think its still good to share these Projects here, even without code, as we all benefit with ideas. I have also posted some codes here before.
Perseverance is 90% of the solution. The remaining 10% is more perseverance.

pito

fyi:
http://forum.arduino.cc/index.php?topic=220918.msg1716935#msg1716935

arduinoadrian

Quote
Hello Pito,

thx for this great work!


Nice. Thanks
Perseverance is 90% of the solution. The remaining 10% is more perseverance.

Go Up