Bouw een Slimme Arduino Automaat: Complete DIY Mechatronica Handleiding
Overzicht
Deze Arduino-gebaseerde automaat heeft 4 uitgifte-eenheden (continue rotatieservos), een draagsysteem (stappenmotors), LCD, 4 keuzeknoppen en een munt-detector. Het draagsysteem is misschien overkill, maar maakt het project interessanter en leerzamer – ideaal voor studenten of enthousiastelingen.

Automaat bouwen
MDF 8 mm, afmetingen uit 3D-model (Thangs). Cirkelzaag (zelfgemaakte werkbank met cirkelzaag, router, zaagblad – zie kanaal Creativity Hero). Openingen met staande zaag. Alle panelen: houtlijm, schroeven (3 mm, voorboren, inzakken), 90° klemmen, F-klemmen.



Railsysteem (drager)
Aluminium buizen: horizontaal 16 mm (2×27 cm), verticaal 20 mm (3×45 cm). In 18 mm hout: gaten met Forstnerboor. Schuiven: 21×21 cm hout, 8 mm gaten, M8 draadstangen, 22 mm lagers (horizontaal: 16 mm lagers). Eerst te veel spel → afstand rails verkleind: gaten uitgezaagd, dwarsgaten, draadstang om rails dichterbij te trekken. Werkt nu soepel.



Extra: 5 mm bout links voor katrol (horizontale tijmriem) + 2 lagers voor verticale schuif. Rechts: stappenmotor horizontaal op MDF, steun, op verticale schuif lijmen/schroeven.


Container op horizontale schuif (hout, lijm). Rails met epoxy in gaten, extra houtplaat voor stijfheid. Verticaal: stappenmotor bovenaan, katrol onderaan, tijmriemen met kabelbinder.



Uitgifte-eenheden
Helicale spoel: 3 mm metalen draad om 7 cm spraybus. Op continue rotatieservo (DS04-NFC) lijmen (lijmpistool).


Voorpaneel
Deur met scharnieren, magnetische sluiting. 5 mm acrylaat voor groot raam, dun aluminiumplaatje voor klein raam (4 knoppen, muntinvoer, LCD). Gaten boren/zagen. Electronica op aluminiumplaat, dan op deur (5 mm bouten). Twee microschakelaars voor startpositie drager. Muntgeleider (lijm) naar beneden. Munt-detector: IR nabijheidssensor.


Schakelschema
12 V / ≥2 A voeding. 12 V voor stappenmotors + LED-strip. Buck converter (LM2596) naar 5 V voor rest. Continue servos (5 V, PWM). Stappenmotors via A4988 drivers. Knoppen + microschakelaars: GND + digitale pinnen met interne pull-up.

Componenten
- DC-DC LM2596 Buck Converter
- 16×2 LCD
- 360° Continue Servomotor (DS04-NFC) ×4
- Stappenmotor NEMA 17 ×2
- A4988 Stappenmotor Driver ×2
- IR Nabijheidssensor
- Knoppen ×4
- Micro limietschakelaar ×2
- Arduino Board
Aansluiten met draadbruggen (wat rommelig, maar werkt). LED-strips op deur voor verlichting.

Arduino Code
Bibliotheken: LiquidCrystal.h, Servo.h. Pinnen definiëren, objecten aanmaken.
/* DIY Automaat - Arduino Mechatronica Project */
#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal lcd(27, 26, 25, 24, 23, 22); // rs, en, d4, d5, d6, d7
Servo servo1, servo2, servo3, servo4; // DS04-NFC
#define dirPinVertical 0
#define stepPinVertical 1
#define dirPinHorizontal 2
#define stepPinHorizontal 3
#define coinDetector 9
#define button1 13
#define button2 12
#define button3 11
#define button4 10
#define microSwitchV 15
#define microSwitchH 14
int buttonPressed;
setup(): LCD init, servos koppelen (pinnen 4-7), pinmodes, pull-ups activeren. Startpositie zoeken via microschakelaars (while-lussen met stappen).
void setup() {
lcd.begin(16, 2);
servo1.attach(4); servo2.attach(5); servo3.attach(6); servo4.attach(7);
pinMode(dirPinVertical, OUTPUT); pinMode(stepPinVertical, OUTPUT);
pinMode(dirPinHorizontal, OUTPUT); pinMode(stepPinHorizontal, OUTPUT);
pinMode(coinDetector, INPUT);
pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP); pinMode(button4, INPUT_PULLUP);
pinMode(microSwitchV, INPUT_PULLUP); pinMode(microSwitchH, INPUT_PULLUP);
// Verticaal start
digitalWrite(dirPinVertical, HIGH);
while (true) {
if (digitalRead(microSwitchV) == LOW) { moveUp(70); break; }
digitalWrite(stepPinVertical, HIGH); delayMicroseconds(300);
digitalWrite(stepPinVertical, LOW); delayMicroseconds(300);
}
// Horizontaal start
digitalWrite(dirPinHorizontal, LOW);
while (true) {
if (digitalRead(microSwitchH) == LOW) { moveLeft(350); break; }
digitalWrite(stepPinHorizontal, HIGH); delayMicroseconds(300);
digitalWrite(stepPinHorizontal, LOW); delayMicroseconds(300);
}
}
loop(): "Insert a coin!" tonen. Wachten op munt (IR sensor LOW). Dan "Select your item 1,2,3,4?". Wachten op knop. "Delivering...". Switch-case per knop: drager bewegen (custom functies moveUp/Down/Left/Right met stappen), juiste servo draaien (950 ms, 2000 µs = draaien, 1500 µs = stop), drager terug naar start. "Item delivered!" tonen.
void loop() {
lcd.clear(); lcd.setCursor(0,0); lcd.print("Insert a coin!");
while (true) { if (digitalRead(coinDetector) == LOW) break; }
delay(10);
lcd.clear(); lcd.setCursor(0,0); lcd.print("Select your item");
lcd.setCursor(0,1); lcd.print(" 1, 2, 3 or 4?");
while (true) {
if (digitalRead(button1) == LOW) { buttonPressed=1; break; }
if (digitalRead(button2) == LOW) { buttonPressed=2; break; }
if (digitalRead(button3) == LOW) { buttonPressed=3; break; }
if (digitalRead(button4) == LOW) { buttonPressed=4; break; }
}
lcd.clear(); lcd.setCursor(0,0); lcd.print("Delivering...");
switch (buttonPressed) {
case 1:
moveUp(4900); delay(200); moveLeft(1700); delay(300);
servo1.writeMicroseconds(2000); delay(950); servo1.writeMicroseconds(1500); delay(500);
moveRight(1700); delay(200); moveDown(4900); break;
case 2:
moveUp(4900); delay(200);
servo2.writeMicroseconds(2000); delay(950); servo2.writeMicroseconds(1500); delay(500);
moveDown(4900); break;
case 3:
moveUp(2200); delay(200); moveLeft(1700); delay(300);
servo3.writeMicroseconds(2000); delay(950); servo3.writeMicroseconds(1500); delay(500);
moveRight(1700); delay(200); moveDown(2200); break;
case 4:
moveUp(2200); delay(200);
servo4.writeMicroseconds(2000); delay(950); servo4.writeMicroseconds(1500); delay(500);
moveDown(2200); break;
}
lcd.clear(); lcd.setCursor(0,0); lcd.print("Item delivered!");
delay(2000);
}
Custom beweegfuncties: richtingpin zetten, stappen pulseren (300 µs hoog/laag). A4988 op 1/4 stap → 4900 stappen voor bovenste positie, etc.
void moveUp(int steps) {
digitalWrite(dirPinVertical, LOW);
for (int x=0; x
Eenvoudig, effectief. Veel plezier met bouwen! Vragen? Reacties.
Productieproces
- Automaatjes: Een Amerikaanse Industriemacht van $36,6 Mrd
- Bouw je eigen DIY huiswerk-schrijfmachine thuis
- Bouw een DIY Photoshop-bedieningsconsole met Arduino Nano RP2040
- Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
- Bouw een Ultrasonische Zweefapparaat met Arduino – Stap-voor-stap Handleiding
- Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
- Bouw een betrouwbare infrarode hartslagsensor met Arduino: stapsgewijze handleiding
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Bouw een DIY Voltmeter met Arduino en Nokia 5110 Display – Stap-voor-Stap Handleiding
- Bouw een Digitale Horloge op Arduino met een Finitie Toestandsmachine
- Bouw een Volledig Functionele CNC-machine met Arduino Nano R3