The device is designed to count the number of radio components in the SMD tape. The counting is based on an optical principle using an optocoupler. The project was developed as a training project for working with STM32F103 microcontroller peripherals. The device uses the basic peripherals such as: GPIO, interrupts, timers, I2C, ADC, etc. I also used the state machine pattern. The firmware is written with CMSIS. The circuitry of the device and the PCB were also developed. The case was modeled and 3D printed.
Brief demonstration of the device menu
Detailed video with a demonstration of work
To display information, used 0.96-inch OLED display with an I2C interface. Menu control is carried out using three buttons. The board also has a CP2102 UART converter for communicating with a computer, as well as an RFID module for reading tags, for organizing a warehouse and tracking the presence of components (not implemented at the moment).
The device is powered by two 1.5V AA batteries. To increase the voltage to 3.3V used a step-up DC-DC converter based on the NCP1402 chip.
After turning on the device, the animation of the running SMD tape will be played on the screen.
After that, the user enters the main menu, from which you can enter the settings menu by holding the OK button, or start reading with a single press. On the screen there is a battery level, as well as a step size (for example, if two leads on the tape correspond to one component, the step is set to 2).
In order to count the number of SMD elements in the tape, press the OK button, and pass the tape through the guide slot in the housing. On the screen you will see the current number of counted items in the tape.
After the end of counting, and long holding the OK button, you will be taken to the save menu, where you can save the current value, change it, or continue counting.
Edit menu for changing the current value looks like this:
After saving, the user returns to the main menu, and the calculated value is transferred to the database, which is accessed through the settings. The settings menu looks like this: