Mivel még én is tanulom az Arduino-t és eddig csak gyakorló kacsolásokat készítettem amit a Tavir-ról rendeltem, gyakorlatilag minden infóra szükségem van az összeállításhoz. Tudunk beszélni privátban?
Arra figyelj, hogy ha párhuzamosan kötsz két motort (akár egy vezérlőre akár kettőre) akkor az egyik motort fordítva kösd be azaz egyik pl ABCD akkor másik DCBA. Természetesen ez akkor igaz, ha egymással szembe fordított a motort, mert így az egyiknek erre a másiknak arra (ellenkezőleg) kell forogni. EleksMaker A3-nál (mana se) gyárilag a4988 vezérlők vannak hűtés nélkül, nekem nem volt vele gondom 1.1-1.2A-ra állítva. Itt egy egy vezérlőre volt kötve a két motor. Beraktam egy Z-t is így egy CNC shield-re váltottam, ott minden motorra jutott egy vezérlő, itt simán step/dir jelet kötöttem össze a két vezérlőn, egyik megoldással sem volt gondom.
A gondom viszont az, hogy a bináris órához elég lenne egy 4x4-es LED mátrix is, de nem akarok forrasztgatni, mert erre nincs időm, meg eszközöm se, a forrasztópákán kívül.
Szóval arra gondoltam, hogy akkor már inkább sorba kötnék még pár db 8x8-as LED-et és kiirathatnám rendesen számokkal az órát, meg valami szöveget is pár másodpercenként váltakozva. A bináris órától valszeg sokan idegbajt kapnának. :D
Tápegység probléma miatt volt nálam a szerkezet amiben láttam. Nem fejtettem vissza a kapcsolását de a szokásos Ramps 1,4 -est használta csak az egyik panelocskán ki voltak forrasztva a 3 lábacska és össze volt drótozva a mellette lévő Enable/Step/Dir lábakkal . Mivel más vezérlővel már én is csináltam ilyet így nem tulajdonítottam nagy jelentőséget neki.
..de hát ezt helyből tudja a Marlin, 2560-on, RAMPS-sal. (ha jól értem amit írtál) A Pololuk meg -némi hűtéssel- elboldogulnak két 17-es motorral, csak az együttes áramuk ne legyen 2A felett.
Nem pont ilyent készítettem, de csináltam egy forgatót, két motoros hajtással. Mindkét motorhoz külön tartozott egy "bélyeg", közös bemenettel. A Ramps 1.4-el, lehet, hogy meg lehetne oldani. X-Y-Z duplázva, az Extruder1 és az Extruder2 pedig újabb két motort hajtana meg.
Itt azért több kérdés is felmerül. Ha tudjátok az arduniot programozni teljesen, tehát nem csak egy előre megírt programot rátölteni akkor 8db A4988 vezérlők kell venni és megcsinálni hozzá a bölcsőt. Ha ez nem járható akkor be kell érni valamilyen kész megoldással. A RAMPS 1.4 5 tengelyt tud vezérelni és a Z ki van vezetékelve 2db csatlakozóra. Ezzel lehet operálni, de azt tudni kell, hogy ezek a vezérlők max 2A-t tudnak, tehát messze nem tudod csúcsra járatni a léptetőket.
Megfordult a fejemben de soknak tartottam 3 tengelyen is. A motorvezérlő fogja bírni? Mert a Z mint tudjuk nem olyan aktív mint az X és Y-on. Ha azt állítjátok, hogy lehet, akkor megpróbálom. Bár én úgy gondoltam külön Driverek kapják ugyan azt a STEP DIR jelet.
Egyébként bármelyik léptetővezérlővel meg lehet csinálni. Párhuzamosan kell bekötni a motorokat és kész. A 3D nyomtatók Z tengelye is általában így van.
Nem. Erre én vagyok kíváncsi. A szükséges I/O portok száma, a processzor szükséges számítási kapacitása, a motorok áramigénye, a technológia sebességigénye ismerete nélkül nem megválaszolható.
Milyenképpen tudnák 8db léptetőmotort meghajtani egy arduinoval?
3db tandemben, 2db szólóban. Csinált már valaki ilyet?
Pali79 | 711
2017-12-31 21:44:20
[827]
Én is pont ilyenen gondolkodtam. Vettem korábban egy RAMPS 1.4-et ardunio mega-val és grafikus kijelzővel aminek a hátulján van SD kártya olvasó. Egy Marlyn nevezetű FW van rajta ami kimondottan 3D nyomtatóhoz készült. Lehet használni így is egy kisebb gép vezérlésére, de keresgéltem már hozzá másik FW-t ami jobban passzol egy ilyen géphez, eddig nem sok sikerrel. Viszont egy kis dobozba szerelve és a gépre szerelve teljesen stand alone megoldás.
Természetesen tudja, a 3D nyomtatók 90%-ban így mennek. Bele a memóriakártyát, amin rajta van a g-kód, amit kábelen, wifin, bluetoot-on, stb. rátöltenek, majd a kijelző segítségével menüből elindítják a munkát.
Nem pontosan. A GRBL egy firmware, amit az arduino processzorába kell flashelni. Egy szoftver. Az arduino USB-n kommunikál a PC-n lévő kódküldő programmal. Ebből elég sok féle van, de kifejezetten az arduinos GRBL-hez készülnek. ( Universal G-code sender, Candle...). Az arduino, a PC által küldött soros porti jelekből "csinál" step/dir jeleket, ami mehet a motor végfokokra. Ezekhez van "shield" ami kompaktan tartalmazza a meghajtó bélyegeket, erre már közvetlen lehet kapcsolni kis áramú léptetőket. A bemenetein pedig különböző dolgokat tud fogadni, pl. végállás, szerszámbemérés...stb. Nagyon olcsó és egyszerű, de működik.
Sziasztok! Valaki megcsinálta már a wordclock projektet magyarul? Neki szeretnék állni, de ha már van belőle, nem találnám fel újra, ha lehet.
frob | 2339
2017-12-27 09:16:07
[815]
Valaki használja e a visulamicro -t arduinohoz, vagy is pontosabban visual studiohoz
azt a jópofa dolgot kapja meg az ember ami az arduinoból nagyon hiányzik, mégpedig az automatikus kiegészítést ezen felül debuggot is tud és itt a kérdés a debugtól hogy lehet megszabadulni, ki be kapcsolni, mert hogy a sorosportot használja debuggra...
egyébként a visualstudio sok extrájával felvértezve igazán jó kis progfelületet kap az ember
GPeti1977 | 370
2017-12-26 22:36:45
[814]
A PROGMEM- et szeretném használni, mert elhasználtam a 2560 RAM - jának 82% -át, de nem működik, ezt a két dimenziós tömböt tárolnám flash-ben: const byte font[][8] = { {0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00},........}; és így olvasom ki: b = bitRead(font[sent[m]][k], 7-i); Arduino1.8.5 illetve #pragma GCC optimize ("-O2") kell használni.
Hirtelen ezt találtam a gépemen, ez 16x2-essel ment. Az lcd.begin(16,2) helyett (40,4) kell, gondolom, de az Arduinos cuccaim pillanatnyilag kb. 240km-re vannak, így csak elméletben tudok hozzászólni...
#include <Wire.h> #include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 13
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
// Switch on the backlight pinMode ( BACKLIGHT_PIN, OUTPUT ); digitalWrite ( BACKLIGHT_PIN, HIGH );
lcd.begin(16,2); // initialize the lcd
for ( int i = 0; i < charBitmapSize; i++ ) { lcd.createChar ( i, (uint8_t *)charBitmap[i] ); }
lcd.home (); // go home lcd.print("Hello, ARDUINO "); lcd.setCursor ( 0, 1 ); // go to the next line lcd.print (" FORUM - fm "); delay ( 1000 ); }
void loop() { lcd.home (); // Do a little animation by writing to the same location for ( int i = 0; i < 2; i++ ) { for ( int j = 0; j < 16; j++ ) { lcd.print (char(random(7))); } lcd.setCursor ( 0, 1 ); } delay (200); }