Digital Tachometer for record player (LCD display)

Hi,
This is to let you that I converted my Turntable rpm display to run from Zbasic to Arduino UNO. For the sensor I used the TCRT5000 Single Channel Line Tracking Sensor Module and for the display from Mouser part number : 763-0216K3ZNSWBBW-V3. It is a 2 lines 16 character serial interface display. You can use any display since the display output can be modify/customize for the desire output message format. To get the pulse from the platen it require a reflective strip stick to the platen.

Attached are some pictures show my test jig using a Pioneer Turntable.
If your are still interesting please send me a PM so I can email the program.
hey! could you please post the code for everyone to learn?
thank you
 
Hi,
For those that requested it attached it is the Arduino Uno sketch for the display the turntable RPM program. I already posted some pictures showing how to install it. Warning: I need to changed the sketch file from .ino to .txt to be able to attached. You need to change it back to .ino to be able to read it by the Arduino IDE.
 

Attachments

  • turntable_rpm_display_intrp_01_08_2017_2.txt
    5.5 KB · Views: 714
A couple of questions about your source code:

1. It appears this is setup for a crystal running at 16MHz?

2. You get a reading every 2 revs?

3. You will get an false reading when the counter rolls over every ~ 4:45?

4. There doesn't appear to be any boundary check; i.e. it will give a speed reading from 1000s of RPM to 1 rev/hour?

5. What happens if the platter stops before one rev is complete after the first trigger? What happens if the platter comes to rest with the sensor in the triggered position?

You can also simplify your math by doing only one calculation: rpm= 60,000,000/(end_rev-start_rev).
 
Last edited:
Hi,
The Arduino Uno run with a cristal of 16mhz. The display will stopped if you turn off the turntable since it using the interrupt 3. It will keep the last reading. You can add a test to prevent it but the reason didn't added it is that adding the check instructions will take time from the reading. You want to make the program as short as possible to get an accurate reading. The program can be improve but I was using it to control the speed of my Garrard 35 turntable using Zbasic micro. This is a converting program from Zbasic to Arduino. I am a newbie learning how to program in Arduino. Maybe when I learn it will improve it. Remembered I trashed my Garrard 35.
 
Hi,
For those interesting attached it is a drawing showing how to built the system.
 

Attachments

  • Turntable instll wiring.jpg
    Turntable instll wiring.jpg
    179.4 KB · Views: 1,752
A great addition to the SG4. I have ordered an Arduino Uno and will be ordering the sensor. One question: how difficult would it be to change this to use the same readout that is used with the (stock) SG4? ( Or, perhaps, one with more digits to look even more impressive.)
I am using the Slimline 2U case from the DIYAudio store and have plenty of internal space but I would like the displays to match.

Thanks to all who have contributed to this and the other related threads.
 
Hi,
I modified the program so you can use the serial LCD used in the Arduino library instead the serial LCD that I used with the serial interface built in. I do not know to much of the SG4 but you can use any serial character display with any character length. The most common ones are 2x16, 2x20, 4x16 and 4X20. Normally the Arduino LCD used 6 parallel lines or you can use the I2C interface that convert the serial to 6 line parallel.
 
Assuming that the micros() function is used on Arduino, a 16MHz based board would yield a precision of approximately 4uS.

Here is an approach to further increase precision to approximately 0.5uS:

How to get an Arduino micros() function with 0.5us precision

Might not be needed past the 4uS resolution, but it is there for further experimentation.

I have had good success with non-latching hall effect sensors. One reading per revolution seems to be precise enough, but one can always attach multiple magnets to a platter and have multiple readings per revolution - with one caveat - precise positioning of multiple magnets is crucial to get accurate readings. Using just one eliminates that requirement at the (possible) expense of precision.

I've seen some commercial turntables which use optical sensors have up to 4 markings on the platter.
 
Also, trying to understand some of the calculations presented in post #16.

Assuming that the resolution of the board using 16MHz clock yields a "tick" precision of 4.34uS, how does a count of 414720 equal 33.33333 RPM?

414720 * 4.34uS = 1.7998848s

60 (per minute) / 1.7998848s = 33.335466

What am I missing?
 
Hi,
You can use any LCD display as long they have the Arduino library. The only problem it is how many character you can be display. There is another one that hold more characters in Ebay. Attached are 2 pictures showing the sensor and the display. You can use any IR Infrared sensor like tracking sensor tcrt5000 Arduino in Ebay. Some you can adjust the sensitivity some don't. I used the one from Mouser but the ones in Ebay are cheaper.
 

Attachments

  • tracking sensor tcrt5000.jpg
    tracking sensor tcrt5000.jpg
    37.8 KB · Views: 1,577
  • s-l1600.jpg
    s-l1600.jpg
    92.8 KB · Views: 1,581
Hi,
In the original project design using the Zbasic micro I used the Mouser Part No. 828-OPB770TZ $6.32. Now in the conversion from Zbasic to Arduino switched to the IR infrared obstacle avoidance sensor module for Arduino. It's cost just 2.00 dollars in Ebay. Do a Google or Ebay using the above description for the IR. Also it's easy to interface it to the Arduino just 3 wires. The one from Mouser it is 5 wires. My recommendation is to use the 3 wire and you can adjust the light sensitivity. Later will post the program upgrade version using the 1 inch display.

Attached are some pictures showing the prototyping for the Arduino conversion.
 

Attachments

  • infra_sen.jpg
    infra_sen.jpg
    88.6 KB · Views: 1,538
  • optical switch 770TZ.jpg
    optical switch 770TZ.jpg
    19.2 KB · Views: 1,477
  • Turntable 1.jpg
    Turntable 1.jpg
    960.2 KB · Views: 1,454
  • Turntable 2.jpg
    Turntable 2.jpg
    418.8 KB · Views: 659
  • turntable 3.jpg
    turntable 3.jpg
    192.3 KB · Views: 873
Hi,
The capacitor is a .04uf. for cleaning the pulses. It used an op amp to amplifier the pulses. The sensor from Ebay it is a little more noisy when you compare it with the one from Mouser. Try it at first without the capacitor and if the reading are not too stable make some adjust to the sensitivity to decrease the noise. If it does not fix it then proceed to add the capacitor. The Mouser sensor it is a schmitt trigger and it will put out a cleaner pulse. That it is why the difference in cost.