[Paul] has been working on porting over Arduino libraries for use with the Teensy microcontroller platform. This tends to be pretty simple since they both use the same Atmel chip architecture. But once in a while he finds the Arduino libraries are not what they’re cracked up to be. When looking to port over a frequency measurement library he ended up writing his own that works better and is much more portable.
He had two big beefs with the Arduino Frequency Counter Library. The first is that it required the compensation factor the be calibrated using an accurate frequency counter. That’s a chick-and-egg problem since many people who build a frequency counter with an Arduino are doing so because they don’t already have a standalone tool. The second problem is that the Arduino library was hardcoded for ATmega168 or ATmega328 chips.
This new library fixes both issues with just one trade-off. Your hardware setup must be using a crystal oscillator. You can see above in the image above that the frequency measurement is quite accurate with this method. The package also uses a thin abstraction layer which will make it easy to port to any 8-bit microcontroller which is programmed in C.
Here’s a PIC based frequency counter that outputs the count via an RS232 serial connection. [Oakkar7] tipped us off about it after seeing the AVR based counter we featured yesterday. This project is a bit older and a bit dirtier.
Inside the metal DB9 housing you’ll find just seven parts. The most important is a PIC 16F628 which handles both the counting and the serial communications. We’re not quite sure how it’s managing to talk to that USB-to-Serial converter without some type of level conversion. Since this microcontroller is not a dedicated counter chip a little bit of trimming must be done to bring the accuracy into spec. There’s also some physical trimming involved. In order to get everything to fit into the small enclosure the circuit was free-formed without a PCB or protoboard and the case of the DIP chip had to be ground down just a bit. As for the readout, a simple script can grab the data and display it in a terminal.
[Scott] built this frequency counter using less than $10 in parts. It’s set up to meter frequencies in megahertz which is fitting since he’s planning to use it with his radio hardware experimentation. But we would find it useful too because our cheap multimeter only reads up to around 4 MHz.
He’s using an ATmega16 that he had on hand but it has features way beyond the specs for the device. He speculates that an ATtiny2313 would easily work in its place. The microcontroller is mostly used to drive the multiplexed 7-segment display after reading the frequency values from the 74LV8154 counter chip that he is using. He doesn’t have a full schematic for the device, but there is a hand drawn diagram for using the frequency counter; the rest should be easy to piece together. Looking at that circuit we don’t think it would be too hard to make this a manual-ranging frequency counter to give you more use out of the dedicated device. Check out [Scott’s] demonstration video which is embedded below the fold.
Continue reading “Frequency counter for $10 worth of parts”
[Windell] of Evil Mad Scientist Laboratories took an ancient Nixie tube based frequency counter and converted it into a clock. The unit he got his hands on is an HP model that was still in great shape. He’s using an internally generated one second pulse as the clock signal, but some modifications are necessary to display time. That’s because the frequency counter is base 10 and clocks use a quirky combination of base 60 and base 12.
It wasn’t too much of a problem to rig up a system to track minutes and seconds. The tens digit for each is monitored by a couple of AND gates that he added to the mix. When they detect a ‘6’ the digit is reset and a pulse increments the next digit as the carry. This is more difficult to accomplish with the hours though. Minutes and seconds count from 0 to 59 but hours don’t start at 0. Instead of over-complicating the logic [Windell] used a bit of slight-of-hand. The Nixie tubes for the hours have been rewired so that when the counter is at 0, the filament in the shape of a 1 lights up. No difference in logic, just a translation that makes them display one digit higher than the actual count.