Make a Electrical Ruler
by Cheney Cheung in Circuits > Microcontrollers
2924 Views, 22 Favorites, 0 Comments
Make a Electrical Ruler
I make a electrical ruler.
Feature:
- Use 32bit microcontroller STM32C8T6.
- Use 512 line encoder .
- Precision 0.1mm.
- unit :mm,cm,meter and km.
Material:
STM32C8T6
512 line encoder
OLED display
etc.
Design a STM32 Board
Sorry for my bad english!
I am 24 years old engineering student from Guangxi in China. It's my frist post arcitle.I want to make some friends to help me learn english.:)
Frist,I design a stm32 PCB board,it include some buttons,crystal,and usb to usart IC CP2102,5V to 3V regulator.
And then,I spent 30RMB (about $6) to make PCB board.Make a PCB board is cheap and easy in China,10cm*10cm,10PCS PCB just olny 50RMB (about $8).
Solder Your STM32 Board
About a week,PCB factory will send PCB boards to you by experess,so,you can solder your PCB board now.
Make a Wheel by CNC
My friends has a CNC machine,so,I use the CNC machine to cut the acrylic board,and make a wheel and some structures.
Install Wheel to Encoder
I buy a 512 line incremental encoder from www.taobao.com,taobao.com just like ebay in China.
This mini incremental encoder about $40,and 512 line meaning every one revolution the encoder will output 512 pulses.
The wheel diameter is 16.3mm,so the wheel perimeter is 16.3mm*3.1415926≈51.2
mm,and every one revolution the encoder will output 512 pulses,so,every pulse correspond 51.2 mm/512 pulse=0.1mm length.
Add OLED Display and Li-ion Battery
OLED display cost $1.5 in China,3.3V power supply ,SPI interface and 128*64 pix.
Program and Testing
I use the saleae logic to show the encoder pulse wave,and I use Keil MDK to program STM32.
This encoder has 4 pins,VCC,PULSE,DIRECTION,and GROUND.if you turn the encoder ,encoder will output some pulses,if DIRECTION pin is High ,meaning direction is foreward,else if DIRECTION pin is Low,meaning direction is backward.
the STM32F103C8T6 has a encoder interface in GPIOA 12,so I connect PULSE to STM32 GPIOA 12,and DIRECTION connect to GPIOA 11.
OLED showing my school name ,project name and software version .Do you know Chinese ? :)
Show Time!
when I start measure at 90mm,finish measure at 0mm,the OLED show measurement result is 90.0mm,and when I start measure at 0mm,turn back it to 90mm,the OLED show measurement result is -90.0mm.
you can switch the result unit as:mm,cm,m and km
I define a double variable to save measurement result,so,the limit is 1.79769e+308 ~ 2.22507e-308 mm
I use this ruler to measure a bottle perimeter,OLED show -140.1mm,I think this bottle perimeter maybe is 140mm.
sorry for my bad english .I want to make some friends.
Source code and PCB files please mail to me satelives@gmail.com.
Thanks!