Finally I have new working prototype on my desk.
Introduction:
As a hobby, I am developing a contactless vibration detector. Actually, it is based on Arduino & KiCAD. The previous version (finished & tested & working) is on the link below. However, you need to write your own PC code or use its analog output, and mainly you need to handle a 9V battery.
The vibrometer is built around TCRT 5000, it’s 1 channel IR LED with a phototransistor. On the GitHub link below is discussed the basic concept.
At the moment I don’t plan to finish the C# application for the old version of the vibrometer. I really don’t like that 9V battery ๐ and the performance of the version on my table is much higher.
https://github.com/TomasGaj/Arduino_vibrometer/
Update 1: Change of the development board
I am leaving Arduino UNO and introducing Arduino Nano. Measuring vibrating objects at ~200Hz was not enough. I tried to optimize on the assembly language level. It was a painful research, but finally, I confirmed that the same code is NOT running on UNO, but runs without any troubles on Nano. The background is that Nano uses FTDI chip to communicate over USB – pls see GitHub link below, I speculate there about the background of this.
As a final result of my work, Arduino is sending data to PC at a speed of 1000000 baud, roughly 14350 Samples/second (10-bit).
As no CRC is introduced, I think the same code (reaching the same speed) can be used for MCP3208 (12-bit). I plan to test it later on.
As a result Arduino is now able to contactlessly measure vibrations in low kHz range, see the following chapters for details.
https://github.com/TomasGaj/Arduino_Nano_MPC3008_logger/tree/main
Update 2: C# app working
The changes in code in Arduino led to the necessary changes in C#. I am not using micros() of the Arduino anymore, instead of this I am sending 2 nibbles taken out of Timer1. The figure below shows a 5kHz sine signal from the generator captured by C#. This is a much better result than the previous 200Hz.
For details please refer to the GitHub link of Arduino_Nano_MCP3008_logger link available above.
I plan to release the application on GitHub, but I prioritize finalizing the electrical layout.
Update 3: circuit change – leaving 9V battery
I was quite unhappy about using a 9V battery, so I am happy to test the enhanced circuit, which is purely powered by noisy USB 5V ๐
Last(?) issue ahead ๐
In the figure below you see the measurement of the loudspeaker vibrating ~430Hz. The signal from the generator is pure sine, light noisy sine is captured by TCRT 5000, but after filtration / amplification / manipulation there are some artifacts. I highlighted them.
I actually investigate this (absolutely the first idea after seeing this was to filter it by software :-))
The photo below is just for fun to illustrate how the new concept looks on my desk:
That’s all for today!
Enjoy!
TG
Leave a Reply