First-Place Automatic Plate Sorting Machine Developed by Mechatronics Students
This machine was created as a student project for the subject Construction & CAD, at the Mechanical Engineering faculty in Skopje, by a team of five students. This is how the Automatic Sorting Machine works: The machine uses PIC16F628A micro-controller and it is programmed using MikroElektronika.
It is a machine that is sorting two types of plates. One of the plates have holes and the other ones don’t have. Our task was to develop a machine that will sort out these plates automatically. We have came out with this solution, which actually won the first place out of 25 other machines.How It Works




Circuit Schematic

Source Code
/********************************************************************************/
/* Mechatronic Design Team */
/* Proekt po Konstruiranje i CAD */
/* "Dizajn i razvoj na nov ured za razdeluvanje na dva tipa plocki" */
/* */
/* */
/* */
/* Mikrokontroler: PIC16F628A */
/* Oscilator: Interen na 4MHz */
/* */
/* Dekemvri, 2012, Skopje */
/********************************************************************************/
void left () {
RB2_bit = 1; //motorot pocnuva da se dvizi na levo
delay_ms (500); // motorot se dvizi do krajna leva polozba
delay_ms (500);
delay_ms (500);
delay_ms (500);
PORTB = 0x00; //koga ke stigne do krajnata leva polozba se gasi
delay_ms (200); //vreme za kocenje na motorot
RB3_bit = 1; //se aktivira relejot za promena na nasokata
delay_ms (20);
RB2_bit = 1; //motorot pocnuva da se dvizi desno
delay_ms (500); //sredna pozicija na motorot
delay_ms (500);
delay_ms (500);
delay_ms (500);
PORTB = 0x00; //motorot se gasi koga ke dojde do sredina
delay_ms (150); //vreme za kocenje na motorot
}
//////////////////////////////////////////////////////////////////////////////
void right () {
RB3_bit = 1; //Se uklucuva relejot za promena na nasoka na motorot
delay_ms (30);
RB2_bit = 1; //motorot pocnuva da se dvizi desno
delay_ms (500);
delay_ms (500);
delay_ms (500);
delay_ms (500); //motorot se dvizi do krajna desna polozba
PORTB = 0x00; //koga ke stigne do krajna desna polozba se gasi
delay_ms (200); //vreme za kocenje na motorot
RB2_bit = 1; //motorot pocnuva da se dvizi levo
delay_ms (500); //sredna pozicija na motorot
delay_ms (500);
delay_ms (500);
delay_ms (500); //sredna pozicija na motorot
PORTB = 0x00; //motorot se gasi koga ke dojde do sredina
delay_ms (150); //vreme za kocenje na motorot
}
//////////////////////////////////////////////////////////////////////////////
void main() { //pocetok na glavna programa
TRISB = 0x00; //PORTB Izlezi
TRISA = 0xff; //PORTA Vlezovi
CMCON = 0x07; //gasenje na komparatori
do {
delay_ms (50);
PORTB = 0x00;
if (PORTA.b0==1) { //dali ima kocka?
delay_ms (100);
if (PORTA.b1==0) { //dali ima otvor?
left (); } //ako ima otvor dvizi se levo
else (right ()); }} //ako nema dvizi se desno
while (1); }Code language: Arduino (arduino)
Manufacturing process
- Advanced Color Sorting Machine with Arduino and RGB Sensor
- DIY Automatic Coffee Machine: Arduino, Bluetooth, and Android App
- Build a Smart Arduino Vending Machine: A Complete DIY Mechatronics Guide
- Advanced Mechatronics FYP: Real-Arm Motion Interface with 3D Modeling
- First-Place Automatic Plate Sorting Machine Developed by Mechatronics Students
- Automatic Drilling & Tapping Machine: Complete Overview
- Understanding Automatic Press Machines: Function, Benefits, and Applications
- Automatic Seam Welding Machine – Precision & Efficiency for High-Volume Seam Welding
- Automatic Pipe Bending Machines: A Comprehensive Overview
- JW Machine: Precision CNC Contract Manufacturing Services