Próbálkoztam összerakni egy kódot a pumpavezérléshez, de ennek inkább csak demonstratív jellege van. Amit korábban beszéltünk, a kóddal kapcsolatban ide is összefoglalnám a lényeget:

  • Tartalmazzon egy firmware verziószámot amit le tudunk kérdezni
  • Változóban tárolja le a két végállás kapcsoló állását, amit le tudunk kérdezni, de amikor eléri ezt a pontot akkor is küldjön egy üzenetet (persze azt a típusú vezérlést, hogy ha ezt eléri akkor ettől tovább nem megy azt a mikrokontroller végzi)
  • Meg lehessen adni egy forgási irányt én a kódban ezt R és F karakter elküldésével oldottam meg, ez is változóban van és ennek is lekérdezhetőnek kell lennie.
  • Sebesség megadása. Itt megállt nálam a tudomány, azt hittem, ha az értéket változtatom lefele, felfele, akkor lineáris lesz a sebessé változás, de itt ennél többről van szó.

Tudom, hogy ez a kód igen kezdetleges, csak a serial-on keresztüli adatküldés logikájára próbáltam egy példát hozni. Meg itt majd a jövőben nem is a sotfwareserialt, hanem a hardvereset használjuk majd.

#define dirPin 3
#define stepPin 2
char direct;

String inputString = "";         
boolean stringComplete = false;  

void setup() {
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  
  Serial.begin(9600);
  inputString.reserve(200);
}

void loop() {
  
  if (stringComplete) {
    Serial.println(inputString); 
    inputString = "";
    stringComplete = false;
  }
  
  digitalWrite(dirPin, direct);
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(inputString.toInt());
    digitalWrite(stepPin, LOW);
    delayMicroseconds(inputString.toInt());
}

void serialEvent() {
  while (Serial.available()) {

    char inChar = (char)Serial.read(); 
    inputString += inChar;
    if (inChar == 'F') {
      stringComplete = true;
      direct = LOW;
    } 
    if (inChar == 'R') {
      stringComplete = true;
      direct = HIGH;
    } 
    if (inChar == '\n') {
      stringComplete = true;
    } 
    
  }
}

 

2 thoughts on Fecskendő pumpa modul

  1. BalázsBalázs

    Sziasztok!
    1. Vettem ma fémfűrészt, menetes szárat meg pár apróságot.
    2. Rendeltem acélszálat, ami nagyon valószínű, hogy passzolni fog a lineáris csapágyakhoz. Továbbá 3 db vízálló végállás kapcsolót.
    3. Koncepció
    Hosszas fejtörés után arra jutottam, hogy a jelenlegi fecskendő pumpa számos helyen javítható/javításra szorul. Lényeges különbségek vannak abban, hogy ez most hogyan működik és hogyan épül fel és mire lenne szükség. Szóval van két opció szerintem
    a) jelenlegi átépítése
    b) új pumpa csinálás
    A b) mellett tettem le a voksomat, ezt részletezem lent.

    4. Új pumpa fizikai felépítés
    a) Az lenne a cél, hogy minél kisebb legyen, de robosztus. Most azt tervezem, hogy 6-7 cm x 6-7 cm x 40-50 cm hasáb legyen a mérete. Ennél kisebbre nem tudom összerakni.
    b) Az elektronikát alapjaitól újra kezdem, de ez jóval egyszerűbb lenne. Egy Arduino Nano vezérelné, ebben is ATMEGA328p van, ilyet használtok ti is. Szóval minden program amit erre írok, az kompatibilis lenne a későbbi verziókkal.
    c) Léptetőmotor vezérló a TMC2208 lenne, ez halkabb, okosabb, bár picit drágább, mint az A4988. Aktív hűtés kellhet neki, olyanra csinálom, hogy ezt hozzá lehessen adni utólag is.
    d) Variálható legyen, milyen fecskendőket lehet belerakni.
    e) Mindkét végállásban lenne végállásjelző kapcsoló.
    f) A fecskendő összenyomását végző linear actuator precíz felépítése egy nagyon fontos kritérium. Ezt egy darabban akarom kinyomtatni, így javulhat az alkatrészek pontossága.
    g) Szóval most újra indul a 3D tervezés, szerintem ezzel a résszel tudok meglenni karácsonyig és az alapanyag beszerzéssel.

    5. Pumpa program, COM kommunikáció.
    Ezt a részét (eszköz oldaláról) kidolgozom én és csinálok róla egy leírást. Január elejéig ha nem jön közbe semmi extra, akkor ezt is össze tudom rakni.

    6. Most tudok nyomtatni FEKETE PETG-ből és FEHÉR PLA-ból. Melyiket preferáljátok? Én sokkal inkább a fekete PETG-t, mert ellenállóbb és merevebb, de ha nem tetszik a színe, akkor lehet a fehér PLA. Melyik legyen?

    7. Az USB kábelt bevezetem az elektronika dobozba. Nektek van valamilyen kábelrögzítési módszeretek, amivel megakadályozzátok, hogy ne “szakadjon” ki a kábel az elektronika dobozból? Egy csavaros szorítót próbálok majd csinálni neki. Ha erre van valamilyen bejáratott módszeretek, akkor légyszi küldjetek egy képet és akkor az alapján dolgozom. Lehet úgy is, hogy USB csatlakozót csinálok a dobozra, de az beázhat, ezért szerintem hátrányos lehet.

    Üdv, Balázs

    Reply
  2. acetylcholinacetylcholin

    Szia Balázs!
    Az ATMEGA328p és a motorvezérlő jó választás. Én PETG-t használnék mindenképp, de abból fehéret, nekem van egy tekercsem, de nem tudom mikor megyek Jenőre, de ha gondolod, akkor rendelhetünk is. Csatlakozónak mi ezt szoktuk használni: https://www.amazon.com/DIYhz-Circular-Aviation-Connector-Adapter/dp/B07D3CKYTM/ref=sr_1_5?keywords=Panel+Connector&qid=1639654869&sr=8-5 ebből van 4 pines kivitel és az egyetem melletti elektronikai boltban lehet kapni.

    Reply

Leave a Reply

Your email address will not be published.