▒█▀▀█ █▀▀ █░░█ ▒█▀▀█ █░░█ ░▀░ █▀▀█
▒█▄▄█ ▀▀█ █▄▄█ ▒█░░░ █▀▀█ ▀█▀ █░░█
▒█░░░ ▀▀▀ ▄▄▄█ ▒█▄▄█ ▀░░▀ ▀▀▀ █▀▀▀
Well, it's happened. Mayans was right about doomsday, just miscalculated 8 years earlier. We experienced an immersive sci-fi movie scene. Everyone stuck at home and cook bread. Also i stuck at workshop for weeks and tried to resurrect 20 years old non functional analog packaging machine by wiring and coding. After two years i had a chance to document the project hence everything become normal again.
The Concept
To whose isn't familiar with this kind of machines, let me give a quick brief: There is a three phase 380v AC motor with 1/60 reduction starts to rotate when electrified and mechanical switches on crank mill arranges the timing of other motors like product filling and paper feeding. No electronics.
Modernization
I did the entire wiring from scratch and developed a quick sketch in arduino to entirely take over the timing control in four phases:
1: Mill run to open blades
2: Mill Stop, Feed paper
3: Paper Stop, Start filling
4: Stop filling, Mill run to cut paper
Technical Challenges
- Sensor voltages: This kind of machines completely driven by 220v AC sensors, first i have to reduce them to trigger 5v, so i installed mini 220v relays to sensor inputs and send ground signal to arduino by using it's internal pull-up resistors.
- EMI Interference: I had to remove AC contactors and replace them by 220v SSR relays, they're misfiring on idle but that's acceptable.
- Torque & Power changes: Currently engines are driven by time, but time is also not constant. Engine should turn in exact same rpm on every cycle but it's not, so i have to implement arduino compatible 5v ttl sensors and do the all operation based on sensor inputs instead blind timing.
- Application Crash: When you start to use dynamic arrays in C language you quit your small safe pond and dive into hardcore oceans of microcontroller. In those oceans also you should deploy more protection and failure scenerios. Let's say you're changing the paper, machine suddenly start itself and cut your finger or process froze exactly on blades closed and starts a fire. I'm considering a secondary eeprom module to pick up application state and sensor values in case of crash or reset. not implemented yet.
Source Code
I uploaded the first two project attempts into github, now working in third version to keep it more stable. you can find the repository in here.