Coil Winder Using Arduino
Introduction: Coil Winder Using Arduino
Why this project was built?
I work at Prabal Learning Innovations, an educational startup. One of our educational kits contains a 3D printed part that is wound with a copper coil to demonstrate electromagnetic induction. Winding the 3d printed part usually requires two people, one to hold the motor and the other to hold the 3D printed part. So, I built this machine, to do the job.
P.S. Check out Prabal. We make a lot of experiential learning kits and experiments.
What can this project do?
Even though this machine was built specifically for my company's needs, the code, as well as the design, can be tweaked as per different needs.
Step 1: Things Required
Step 2: Project General Outline
The whole setup is attached to a high-density foam piece using screws. A wooden piece or any other more rigid material would have been a better choice for this since the screws seem to lose their grip eventually because of the not-so-rigid nature of the foam.
Step 3: Connecting the Hall Sensor
I have used a hall sensor module to count the number of windings. The hall sensor is a device that is designed to detect the hall effect. There are two different types of hall sensors - analogue and digital. I have used the latter.
To know more about hall effect and how the hall sensor works, refer to this video -
Each time the magnet attached to the motor goes past the hall sensor, it goes HIGH. An interrupt function is used to count the number of times the hall sensor goes HIGH (thus counting the number of windings). The image shows how the hall sensor is connected to that Arduino.
Step 4: Connecting the LCD
The LCD display is coupled with the I2C module and connected to the Arduino. The image shows how the LCD display is connected to the Arduino.
Refer to these videos to know more about LCDs and how to connect them to the Arduino.
Step 5: Connecting the Servo Motor
The servo motor distributes the copper coil evenly across the 3D printed part. The image shows how the servo motor is connected to the Arduino.
Refer to these videos to know more about servo motors and how to work with them.
Step 6: Connecting the Push Button
The pushbutton is used to confirm the input given through the potentiometer. 152
The image shows how the pushbutton is connected to the Arduino through a pull-up resistor.
Refer to this video to know more about pushbuttons and pull-up/pull-down resistors.
Step 7: Connecting the Buzzer
The buzzer gives a beep sound as soon as the winding is done. There are two different types of buzzers, active and passive buzzers. I have used a passive buzzer. The image shows how the buzzer is connected to the Arduino.
Refer to these videos to understand more about buzzers and how to program them.
https://www.youtube.com/watch?v=dHYKRrlPNzM&list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP&index=24
Step 8: Connecting the Potentiometer
The potentiometer knob is used to give the input regarding the amount of coil to be wound around the 3D printed part. I have used a 10KOhm potentiometer. You can use a different potentiometer. Use the schematics to connect the potentiometer to the Arduino.
Refer to this video to learn more about potentiometers:
Step 9: Connecting the Motor, Battery and Self-locking Switch
Use the schematics to connect the motor to the battery through the switch. Make sure to get the exact same switch. If you don't find it, you can always get a different switch and use the continuity testing feature of the multimeter to figure out how to connect it, to perform the same action.
Step 10: Connecting the Arduino
Use the schematics to connect the Arduino to the battery. I have used a battery pack made of three Lipo cells. The total voltage of the battery pack is 11.1V (3.7V x 3). The Vin pin allows an input between 7-12V. You can use a 9V battery, commonly available at stores.
Step 11: Code
Step 12: Calculations
NOTE: You will not need this calculation if you want to wind based on the number of windings, instead of the weight of the copper coil to be wound.
The inputs given through the potentiometer knob are just numbers between 0 -1024 (the analogue values that the Arduino reads). These values are then mapped between 0-30 (using the map function in the code). 939