Nincs túl nagy varázslat ebben a dologban, inkább csak azért teszem fel, hogy a későbbiekben emlékezzek rá. Majd a leendő fermentor kevertetését szeretném valami hasonlóval megoldani, persze ott majd a nagyobb sebesség miatt szervomotort fogok használni. A végleges kód lényegében két kész kódból lett összegyúrva. A motorvezérlő egy L293D Motor Drive Shield a motor pedig egy Bipoláris, 2.1Nm nyomatékú léptetőmotor (Variometrum-tól) – Típusa: 60HS67-2808AF (dokumentum letöltése).
FÁZIS ÁRAM = 1,4A
NYOMATÉK = 2,1Nm
1. TEKERCS
● PIROS A+
● FEKETE A
KÖZÖS: SÁRGA + KÉK2. TEKERCS
● FEHÉR B+
● ZÖLD B
KÖZÖS: NARANCS + BARNA
A forgó tárcsára neodímium mágnesek lesznek elhelyezve, amik majd átviszik a nyomatékot az üveg/műanyag fermentorban elhelyezett keverőbabára, a forgás sebességéről pedig egy Hall szenzor fog majd informálni. Maga a léptetőmotor shield kettő L293D ic-vel van szerelve, így ha sikerül kiégetni, ezt könnyen ki lehet cserélni.
Run four solenoids, two DC motors or one bi-polar or uni-polar stepper with up to 600mA per channel using the L293D. These are perhaps better known as “the drivers in our Adafruit Motorshield”. If you accidentally damaged the drivers in a shield, you can use one of these puppies to replace it. Or you can breadboard something on your own!
Videó a vezérlésről
A kód
// Adafruit Motor shield library // copyright Adafruit Industries LLC, 2009 // this code is public domain, enjoy! #include <AFMotor.h> // to motor port #2 (M3 and M4) AF_Stepper motor(200, 2); void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Stepper test!"); } unsigned int integerValue=20; // Max value is 65535 char incomingByte; void loop() { motor.setSpeed(integerValue); motor.step(100, FORWARD, SINGLE); if (Serial.available() > 0) { // something came across serial integerValue = 0; // throw away previous integerValue while(1) { // force into a loop until 'n' is received incomingByte = Serial.read(); if (incomingByte == '\n') break; // exit the while(1), we're done receiving if (incomingByte == -1) continue; // if no characters are in the buffer read() returns -1 integerValue *= 10; // shift left 1 decimal place // convert ASCII to integer, add, and shift left 1 decimal place integerValue = ((incomingByte - 48) + integerValue); } Serial.println(integerValue); // Do something with the value } }
Beállítások
Az adatlapja alapján ennek a léptetőmotornak a lépésszöge 1,8o (360/1,8 = 200).
A vezérlő egyszerre két léptetőmotort tud vezérelni a 2 erre vonatkozik, így kell bekötni M3, M4, ha 1 lenne akkor az M1 és M2-hez kellene kötni.
AF_Stepper motor(200, 2);
A soros porton érkező érték az integerValue-ban tárolódik (kezdő értéke 20), ez határozza meg a motor sebességét 0-50 között lehet értéket adni neki, 50 fölött elveszíti a ritmust a motor.
motor.setSpeed(integerValue);
Itt adod meg a lépésszámot, itt is lehet használni a bevitt értéket, de itt most loop-ban van így folyamatosan forog.
motor.step(100, FORWARD, SINGLE);
Lehet olyat, hogy
motor.step(integerValue, FORWARD, SINGLE); motor.step(integerValue, BACKWARD, SINGLE); delay(1000);
és akkor már van értelme.
2017-10-14
Közben kipróbáltam még két léptetőmotort is, a hozzájuk tartozó bekötést itt találod:
GOSO 42 stepping motor
• Piros A
• Kék B• Zöld A
• Fekete B
A másik mindenféle jelölés nélküli
• Kék A
• Narancssárga B• Piros A
• Citromsárga B
![]() |
![]() |
2017-10-18
Közben megérkezett az egyik perisztaltikus pumpa ebay-ről Peristaltic Pump Dosing Pump With 42 Stepper Motor 174dkk volt az ára, gyorsan csináltam is egy kalibrációt. Az R2 közel 1, így az eredmény nagyon jónak számít. A hozzá adott szilikon csővel jól működik, de ennek a hátránya, hogy hamar kiszakad. Sajnos a pumpa feje nagyon szoros, így ha például masterflex csőre akarom cserélni, akkor a motor nem elég erős, hogy vigye.
Masterflex Norprene Food tubing (A60 F), L/S 13, 50 ft.
Ezek a típusú csövek kifejezetten perisztaltikus pumpához valók, nagyon ellenállóak.
A kalibráció
Néhány kép
Felhasznált irodalom
Arduino: Sending and Receiving Multi-Digit Integers
by
GitHub – Adafruit-Motor-Shield-library
Képek