Hand-held 3D printer

(Sodium Alginate polymerization with Calcium Chloride)

Ομάδα:
Ζουμπούλης Παναγιώτης 02109059 emaillinkedin
Παπαδημητρίου Ανδρέας 02109649 emailfacebook
Πούλιας Απόστολος 02109057 emaillinkedin
Σακαλής Νικόλαος 02111674 email

Ευχαριστίες
Ευχαριστούμε ιδιαιτέρως τον κ. Γεωργίου από το εργαστήριο Εμβιομηχανικής και Βιοϊατρικής Τεχνολογίας, και τον κ. Πολύδωρα από το εργαστήριο Ταχείας Κατασκευής Προτοτύπων, για την βοήθειά τους και τον χρόνο που αφιέρωσαν.

Εισαγωγή
Σκοπός της παρούσας εργασίας είναι ο σχεδιασμός και κατασκευή συσκευής, με την οποία θα πραγματοποιείται ο πολυμερισμός διαλύματος Αλγινικού Νατρίου με διάλυμα Χλωριούχου Ασβεστίου. Η διεργασία αυτή μας ενδιαφέρει ιδιαίτερα καθώς το διάλυμα Αλγινικού Νατρίου μπορεί να φέρει βλαστοκύτταρα. Έτσι, κοιτώντας τους περιορισμούς που έχει η είδη υπάρχουσα τεχνολογία των scaffoldsγια τοποθέτηση των βλαστοκυττάρων στον χόνδρο του ασθενούς, λόγω της συγκεκριμένης μορφής και όγκου που έχουν, παρατηρούμε ότι μια συσκευή που θα επιτρέπει στον ιατρό να «χτίζει» όπως αυτός επιθυμεί τα βλαστοκύτταρα στον χόνδρο θα ήταν αρκετά χρήσιμη και ευέλικτη. Η συγκράτηση των βλαστοκυττάρων στη περιοχή που επιθυμεί ο ιατρός, είναι και ο λόγος απαίτησης του πολυμερισμού του Αλγινικού Νατρίου.
Χημεία Προβλήματος
Αλγινικό Οξύ
  • Το αλγινικό οξύ είναι ένας ανιονικός γραμμικός (1-4) πολυσακχαρίτης. Προέρχεται από κυανοφύκη και έχει ως δομικές μονάδες το β-D-μαννοπυρανοζυλο-ουρονικό οξύ και το α-L-γλυκοπυρανοζυλο-ουρικό οξύ.
external image O3wN9WJTcQT3nPQWcxr532


  • Εξαιτίας των ευνοϊκών του ιδιοτήτων, όπως η βιοσυμβατότητα, και της εύκολης γελοποίησης χρησιμοποιείται σε μεγάλο αριθμό εφαρμογών στην βιοϊατρική επιστήμη και μηχανική. Οι αλγινικές υδρογέλες χρησιμοποιούνται ιδιαιτέρως στην επούλωση πληγών, στην φαρμακευτική και στην εφαρμογές μηχανικής ιστών καθώς διατηρούν δομή παρόμοια με την εξωκυτταρική μήτρα των ιστών.
  • Η προσθήκη αλγινικού οξέος σε διάλυμα ασβεστίου έχει ως αποτέλεσμα τον άμεσο πολυμερισμό με την καθίζηση του αλγινικού ασβεστίου. Τα κατιόντα ασβεστίου αλληλεπιδρούν με τις ομάδες των G μονομερών για να δημιουργήσουν ιοντικές γέφυρες μεταξύ διαφορετικών πολυμερικών αλυσίδων. Δημιουργείται έτσι μια στιγμιαία πηκτωματοποίηση καθώς τα ιόντα του ασβεστίου διαπερνούν το αλγινικό οξύ. Το πήγμα που προκύπτει είναι βιοχημικά αδρανές και μηχανικά σταθερό με πόρους που είναι κατάλληλοι για ακινητοποίηση κυττάρων.


external image 9ACSK3O6alPV4RVtNhfEl4
external image X4itfYozopRq2x582UPjh2


Πηγές ασβεστίου
  • Η πιο συνηθισμένη πηγή ασβεστίου είναι το χλωριούχο ασβέστιο(CaCl2). Mε αυτό όμως έχουμε γρήγορη γελοποίηση , το οποίο οδηγεί σε ανομοιόμορφη πυκνότητα γέλης.
  • Σύμφωνα με εργασία των CatherinekKua και PeterXMa(Ionicallycrosslinkedhydrogelsasscaffoldsfortissueengineering: Part 1.Structuregelationrateandmechanicalproperties) το παραπάνω πρόβλημα λύθηκε με την χρησιμοποίηση διαλυμάτων CaCO3-GDL και CaCO-GDL-CaSO4. Με αυτά έχουμε πιο αργή γελοποίηση και επομένως πιο ομοιόμορφη πυκνότητα.

external image 9Nol7Q4D8LJqqnvEXgPa85
external image O04xwzvRbKgY6re9YPBWc2


GDL(D-glucono-δ-lactone)
Είναι λευκή άοσμη κρυσταλλική σκόνη η οποία λόγω της αργής υδρόλυσης της επιτρέπει το σταδιακό «χτίσιμο» των γεφυρών του ασβεστίου για το σχηματισμό της γέλης.

external image GDxiQql3WyYTc16zLw7ES4
external image WJ9BnKOZiTfTmcO0mue1Q2

Πρόβλημα
Όπως μας αναφέρθηκε από τον Διευθυντή της Α’ Ορθοπεδικής Κλινικής του 401 ΓΣΝΑ ένα πρόβλημα αυτής της μεθόδου είναι ότι το υλικό μόλις τοποθετηθεί στο χόνδρο είναι ρευστό και με κάποιο τρόπο πρέπει να μείνει ακίνητο μέχρι να γίνει η ανάπτυξη των βλαστοκυττάρων/χονδροκυττάρων. Αυτό που μας ανέφερε ότι γίνεται αυτή τη στιγμή είναι η χρησιμοποίηση μητρών/ικριωμάτων εντός των οποίων τοποθετείται το υλικό. Τελευταία γίνεται και η σκέψη χρησιμοποίησης ειδικών κολλών όπως η κόλλα ινικής.
Αυτή είναι μια συγκολλητική ουσία προερχόμενη από το ινωδογόνο του αίματος.
Πείραμα
Για επαλήθευση της θεωρίας πραγματοποιήθηκε πείραμα, έτσι ώστε να επιβεβαιώσουμε ότι ο πολυμερισμός, όντως πραγματοποιείται.
Για το πείραμα προμηθευτήκαμε:
  • Αλγινικό Νάτριο
  • Χλωριούχο Ασβέστιο
  • Απιονισμένο Νερό
  • Χρωστικές ουσίες τροφίμων
external image Hwj87DzpVLfv4DJTXLPMO4


Το τελικό αποτέλεσμα από την ανάμειξη διαλύματος Αλγινικού Νατρίου με διάλυμα Χλωριούχου Ασβεστίου ήταν το αναμενόμενο, δηλαδή πραγματοποιήθηκε ο πολυμερισμός, και μάλιστα με την ταχύτητα που αναμέναμε.
external image px8vIuAfiPyuFwXv4vayb3





Σχεδιασμός και Κατασκευή


Για την ανάμιξη των δυο ροών με σκοπό τον τελικό πολυμερισμό του βιοπολυμερούς υπήρχαν δυο βασικές διατάξεις:
  1. Στην πρώτη λύση οι δυο σύριγγες είναι ομοαξονικές, η μια μέσα στην άλλη.

  2. Στην δεύτερη οι δυο σύριγγες είναι η μια δίπλα στην άλλη και θα εδράζονται στο εσωτερικό ενός κελύφους. Η ανάμιξη των δυο ροών γίνεται πλέον εξωτερικά.
Το πρώτο σενάριο παρουσίαζε αρκετά προβλήματα τα οποία ήταν δύσκολο να ξεπεραστούν. Μερικά από αυτά ήταν η δυσκολία γεμίσματος των δυο συριγγών, η αναρρόφηση θα ήταν δύσκολη μιας και αυτή θα γινόταν ταυτόχρονα παρόλο που σκοπός είναι το γέμισμα της κάθε σύριγγας με ξεχωριστό υγρό. Ένα άλλο πρόβλημα ήταν η στεγάνωση μεταξύ της διεπιφάνειας του εμβόλου της μεγάλης σύριγγας (πρόκειται για ένα κοίλο έμβολο) και της εξωτερικής επιφάνειας της μικρής σύριγγας. Όλα αυτά τα δυσεπίλυτα προβλήματα οδήγησε σύντομα στην απόρριψη αυτού του σεναρίου. Στην συνέχεια παραθέτουμε ένα στιγμιότυπο από τα σχέδια που έγιναν στο συγκεκριμένο κομμάτι.
Συνεπώς στην συνέχεια έγινε συστηματική προσπάθεια για την υλοποίηση, τον σχεδιασμό και την κατασκευή της δεύτερης λύσης. Όπως έχει αναφέρει ήδη η μια σύριγγα είναι δίπλα στην άλλη. Η αναλογία όγκων των 2 ρευστών πρέπει να είναι 1 προς 4 τουλάχιστον. Για να γίνει αυτό εφικτό επιλέχθηκε μια σύριγγα των 2,5 ml και άλλη μια σύριγγα των 20 ml. Επειδή είναι ζητούμενο οι 2 σύριγγες να έχουν το ίδιο μήκος όπως και τα έμβολά τους είναι αναγκαστικό να γίνει μια επέμβαση στο μήκος της μεγάλης σύριγγας και του αντίστοιχου εμβόλου. Σε αυτό το σημείο υπενθυμίζεται ότι η μεγάλη σύριγγα αντιστοιχεί στο SeathFluid (χλωριούχο ασβέστιο στην περίπτωση μας). Με βάση της τελικές διαστάσεις η σύριγγα χωράει πλέον 15 ml. Πλέον η αναλογία όγκων είναι 1 προς 5 και βρίσκεται εντός των επιθυμητών ορίων.
Βάση
Στην συνέχεια έπρεπε να σχεδιασθεί μια βάση στην οποία θα εδράζονται τα δυο έμβολα έτσι ώστε να εξασφαλιστεί η ταυτόχρονη πρόοδό τους. Λαμβάνοντας υπόψη ότι αυτές οι σύριγγες θα πρέπει τοποθετούνται εύκολα αλλά και να αφαιρούνται από την βάση προτιμήθηκε αυτή να φέρει κατάλληλα διαμορφωμένες εγκοπές όπως φαίνεται παρακάτω. Οι εγκοπές αυτές είναι διαμορφωμένες έτσι ώστε να βοηθούν και στην επιστροφή των εμβόλων. Επιπλέον έγινε και κατάλληλη διαμόρφωση για το πέρασμα καλωδίων.
external image dV9nhz1WUYdbTkjuhbfSw7



Η βάση ενισχύθηκε με νεύρα ώστε να είναι πιο στιβαρή και με μεγαλύτερη αντοχή. Επιπλέον έχει γίνει κατάλληλη διαμόρφωση για την είσοδο του κοχλία καθώς και για την αξονική ασφάλισή του με την χρήση μιας σκουληκόβιδας.
external image uZuMFc4zk5OKAfb34NH672



Το βάρος της βάσης είναι 1,91 γραμμάρια και το υλικό είναι ABS.
Κέλυφος
Σχεδιάσθηκε κέλυφος το οποίο θα περικλείει τις δυο σύριγγες, τα έμβολα και τον κινητήρα. Το πάχος του κελύφους είναι 2,5 mm στο μεγαλύτερο μέρος του και το μικρότερο πάχος είναι 1,5 mm σε ένα αυλάκι. Το κέλυφος αποτελείται από τρία κομμάτια τα οποία συναρμολογούνται μεταξύ τους. Κατά τον σχεδιασμό του κελύφους έγινε μέριμνα ώστε:
  • Να εδράζονται οι δυο σύριγγες η μια δίπλα στην άλλη προνοώντας ώστε η απόσταση ανάμεσα στα δυο κέντρα να είναι ελάχιστη
  • Να ασφαλίζονται αξονικά οι δυο σύριγγες ώστε τα δυο έμβολα να μπορούν να επιστρέψουν χωρίς να παρασύρουν και τις σύριγγες
  • Να εδράζεται ο κινητήρας και να ασφαλίζεται με σκοπό την καλύτερη λειτουργία του
  • Να γίνεται μέριμνα για την ψύξη του κινητήρα παρόλο που δεν αναπτύσσονται ιδιαίτερα μεγάλες θερμοκρασίες
  • Να υπάρχει φυσικό εμπόδιο ώστε η διαδρομή της βάσης των εμβόλων να μην υπερβαίνει τα όρια
  • Να είναι εύκολη η αντικατάσταση των συριγγών όταν αυτές αδειάσουν
  • Να υπάρχουν εγκοπές ώστε να γίνεται οπτικός έλεγχος της προόδου των δυο εμβόλων
  • Να υπάρχει κατάλληλος χώρος για τα καλώδια του κινητήρα και για τα button που εντολής προς τον κινητήρα.
Το πρώτο κομμάτι του κελύφους φαίνεται παρακάτω. Στην φωτογραφία διακρίνονται αρκετά από τα χαρακτηριστικά που αναφέρθηκαν παραπάνω. Το βάρος του συγκεκριμένου τεμαχίου είναι 28,38 γραμμάρια και το υλικό είναι ABS.
external image lGVLP4QTdxiOor33eBwGg3




Το δεύτερο κομμάτι του κελύφους φαίνεται παρακάτω. Το βάρος του είναι 14,78 γραμμάρια και το υλικό είναι επίσης ABS. Στην φωτογραφία φαίνεται η διαμόρφωση που έχει γίνει για την συναρμολόγηση του με το άλλο κομμάτι του κελύφους. Επιπλέον διακρίνεται και το snapjoint καθώς και το αυλάκι για την ολίσθηση(μόνο κατά την συναρμολόγηση) του ενός κελύφους πάνω στο άλλο. Τέλος φαίνονται και οι εγκοπές που έχουν γίνει για να είναι ευδιάκριτο το περιεχόμενο των συριγγών.
external image Ru1EpLRU87VNmwtzjfhOB7


Επισυνάπτουμε άλλη μια φωτογραφία για το SnapJoint το οποίο έχει δοκιμαστεί και ως προς την αντοχή του.
external image uY0ewsoZAgtzkjRTHgqV66




Το τρίτο κομμάτι του κελύφους φαίνεται παρακάτω.


external image lsy3aqktbS9DyOTfg5Gfk3

Στην συνέχεια περιγράφουμε την διαδικασία συναρμολόγησης η οποία γίνεται σε τρία στάδια.


Πρώτο Στάδιο: Στο πρώτο στάδιο της συναρμολόγησης τοποθετούμε τον κινητήρα στην κατάλληλη διαμόρφωση του μεγάλου κελύφους. Έπειτα, εφαρμόζουμε το τρίτο κομμάτι του κελύφους επάνω στο πρώτο κομμάτι του κελύφους.
external image vFq2NAZiCWICSBr7sF5982
Στη συνέχεια βιδώνουμε τις τέσσερις βίδες πάνω στο κέλυφος και στο σώμα του κινητήρα.
external image 1ljhtddgsOrtpWtzNAxDd

Δεύτερο Στάδιο: Στο δεύτερο στάδιο το δεύτερο κομμάτι του κελύφους τοποθετείται υπό μικρή γωνία και σύρεται πάνω στις γλίστρες ώστε να κουμπώσει το δόντι που έχει σχεδιασθεί.
external image 8tR9A0NiuogabcnbTI4b4

Τρίτο Στάδιο: Στο τρίτο στάδιο γίνεται κατάκλιση του δεύτερου κομματιού του κελύφους ώστε να κουμπώσει το SnapJoint.

external image PKIFpNohUaMjZ87qpJfIN1

Το τελικό συναρμολογημένο

external image 8mJiu2YhxGVCq69z9MrkZ1
external image EzSyRaU9f7szhy1cSwMzc
external image az7KAqjC9oYh4LE8g9VxU1
Σύστημα Κίνησης
Το σύστημα κίνησης αποτελείται από:
  • Stepper motor – L20 τηςεταιρίας Nanotec.
  • Κοχλίας με βήμα 1mm/rev
  • Arduino και Easydriver για την οδήγηση του κινητήρα
  • Τροφοδοτικό τάσης 12V για τον Easydriver και τον κινητήρα
  • Τροφοδοτικό τάσης 5V για τον Arduino
Το κύκλωμα του συστήματος είναι το παρακάτω.
external image OSL0EU5K8SoJxEcV1GODC7
Στο σύστημα έχουμε δύο μπουτόν, ένα για κάθε φορά κίνησης. Ο κώδικας στον Arduino εκτελεί την ακόλουθη διαδικασία. Κάθε φορά και για όση διάρκεια είναι πατημένο ένα μπουτόν, στέλνει στον Easydriver (στο pin-STEP) τετραγωνικό παλμό σταθερής συχνότητας. Για δικό μας έλεγχο ανάβει το LED. Για την επιλογή της φοράς περιστροφής απλά στέλνουμε είτε υψηλή, είτε χαμηλή τάση στο pin-DIR. Για όση ώρα δεν πατιέται κάποιο από τα μπουτόν ο Arduino στέλνει υψηλή τάση στον driver (στο pin-ENABLE) έτσι ώστε να τον απενεργοποιεί και να μην υπερθερμαίνεται.
Ο Easydriver με την σειρά του οδηγεί τον κινητήρα. Για κάθε παλμό ο κινητήρας εκτελεί ένα microstep. Το mode του driver είναι στο 1/8 του step. Αυτό σημαίνει ότι κάθε stepαποτελείται από 8 microsteps. Ο κινητήρας έχει μια χαρακτηριστική τιμή α=1.8 [deg/step] και από αυτή μπορούμε να βρούμε κατά πόσες μοίρες έχει περιστραφεί για κάθε παλμό που του στέλνουμε/για κάθε microstep που εκτελεί (1.8/8 [deg/microstep]). Κάθε στιγμή γνωρίζουμε πόσους παλμούς έχουμε στείλει, δηλαδή και κατά πόση γωνία έχει περιστραφεί ο κινητήρας. Τα παραπάνω προσφέρουν μεγάλη ακρίβεια όταν η ταχύτητα και το φορτίο δεν ξεπερνούν κάποια όρια.
Έτσι, για να ρυθμίσουμε την ταχύτητα περιστροφής, αλλάζουμε την συχνότητα του παλμού, δηλαδή το delay μεταξύ κάθε αλλαγής της εξόδου.

external image PVReofPQmKSQIE9EV0xPa5
external image EgR1i78DpB3AbREkLw4sg1


Δημιουργία Πρωτοτύπου
Για την δημιουργία ενός λειτουργικού πρωτοτύπου της συσκευής απευθυνθήκαμε στο εργαστήριο Ταχείας Κατασκευής Πρωτοτύπων όπου και χρησιμοποιήσαμε, έπειτα από συνεννόηση με τον κ. Προβατίδη, κ. Καϊσαρλή και κ. Πολύδωρα, την μηχανή ταχείας κατασκευής πρωτοτύπων uPrint, που χρησιμοποιεί την τεχνολογία FusedDepositionModeling (FDM).

external image LTTrCYQDApibv7rKtGmoS4
external image 3edr5HGPsKMEexqhwU2SE


Για την ολοκλήρωση της κατασκευής χρειάστηκαν περίπου έξι ώρες και 60ml υλικού. Επίσης, καταναλώθηκαν περίπου 50ml υποστηρικτικού υλικού που είναι απαραίτητο για την διαστρωματική κατασκευή.
external image zkYo670xVFcSnUOwUxCh25
external image cgZle1EQ0bajq5ZGl6SfR3
external image B4vguJ8h4OcGGO8Mp4bpU
Στη συνέχεια, για να φύγει όσο υποστηρικτικό υλικό δεν αφαιρέθηκε με το χέρι, βάζουμε τα τεμάχια σε μπάνιο υπερήχων, όπου υπάρχει ειδικό διάλυμα(βάση).
external image JmIB5DcR6A4T85ErPS9Wq
external image GzXDH43PNWinC4ksyaF795
Ακολουθεί η επεξεργασία των τεμαχίων ώστε να έχουν λείες επιφάνειες και επίτευξη επιθυμητής ακρίβειας στις επιπεδότητες και κυλινδρικότητες.
external image YOuR2ZfcUUQGHsWm1sXeo3
external image flomU7JGEmRNIv7jkxUam1
Στη συνέχεια ακολουθεί η συναρμολόγηση της συσκευής.
external image XP2JZMgD6xBxGXlTJ8ts52
external image qbxGeC9f75aeCe1WrR4W04
external image 9PPCrm5uzQvJEcL1AupZ12
external image 9FL7uuCqP0rcVqgaH3Lqa4
Για την ανάμειξη των δύο ροών φτιάξαμε την παρακάτω διάταξη.
external image 39FecubE3kavkqKF2yrhb6
Προβλήματα, λάθη, διορθώσεις και βλέψεις για το μέλλον
Κατά το σχεδιασμό έγιναν κάποια λάθη που μας κατέστησαν φανερά μόνο μετά την κατασκευή του πρωτοτύπου. Μια ελλιπής ενημέρωση του 3D μοντέλου για τις διαστάσεις των button μας ανάγκασε να αναζητήσουμε μικρότερα καθώς αυτά που είχαμε προμηθευτεί δε χωρούσαν στις διαμορφώσεις ανάμεσα. Η περιορισμένη ακρίβεια του 3D printer μας δημιούργησε μικροπροβλήματα στη συναρμολόγηση, ειδικά στα σημεία των snap hooks όπου αναγκαστήκαμε να χρησιμοποιήσουμε λίμα στο πρωτότυπο. Με γνώμονα αυτή την περιορισμένη ακρίβεια μερικές διαστάσεις ακόμα έπρεπε να είχαν μελετηθεί λίγο πιο διεξοδικά.
Κατά την κατασκευή του κελύφους στο εργαστήριο παρουσιάστηκαν προβλήματα από τη μηχανή FDM. Στην πρώτη δοκιμή εκτύπωσης και μετά από την επίστρωση του υποστηρικτικού υλικού, κατά την έναρξη επίστρωσης με το ABS είχαμε jamming του υλικού στο σωλήνα και αναγκαστήκαμε να ξεκινήσουμε από την αρχή. Στη συνέχεια, κατά τη δεύτερη και τελική δοκιμή εκτύπωσης έγινε αποκόλληση του υποστηρικτικού υλικού από τη βάση εκτύπωσης, που μας οδήγησε σε αστοχία του ενός τεμαχίου (του «πώματος» του κελύφους) η οποία όμως δεν απέτρεψε τη συναρμολόγηση και στο παρόν στάδιο προσαρτήθηκε στο πρωτότυπο.
Ένα ακόμα πρόβλημα της κατασκευής αποτελούν και οι σύριγγες. Αρχικά, η έλλειψη αυστηρής τυποποίησης κατά ISO στο εμπόριο μας εμποδίζει να ορίσουμε αυστηρές ανοχές στις διαστάσεις των αυλάκων στα οποία τοποθετούνται στο κέλυφος. Παρατηρήθηκε μεγάλη απόκλιση στις διαμέτρους ανά κατασκευαστή, ενώ ταυτόχρονα υπήρχε ανάγκη για στερέωσή τους μέσα στη συσκευή. Επιπλέον η σχεδίαση της συσκευής έγινε για σύριγγες ίδιου μήκους, που σε γενικές γραμμές είναι πολύ δύσκολο να βρεθούν στις αναλογίες που επιλέξαμε. (Για το πρωτότυπο έγινε κοπή των συρίγγων στη φρέζα και υπήρξε σκέψη, αλλά όχι χρόνος για σχεδιασμό εξ αρχής αυτών).
Τέλος, η έλλειψη χρόνου μας απέτρεψε από τον αναλυτικό σχεδιασμό ενός κουμπωτού αναλώσιμου ακροφύσιου το οποίο τοποθετούμενο στις σύριγγες θα καθοδηγούσε τις ροές και θα πραγματοποιούσε την ανάμειξη και τον πολυμερισμό καλύτερα από τον αυτοσχεδιασμό που τελικά χρησιμοποιήσαμε.
Με βλέψεις για το μέλλον οι παραπάνω διορθώσεις με την πρώτη ευκαιρία θα διορθωθούν, το πρωτότυπο θα βελτιωθεί και με αισιοδοξία θα λειτουργήσει με τον τρόπο που υποδεικνύουν οι προδιαγραφές του προβλήματος το οποίο καλείται να επιλύσει.
Κώδικας Arduino

#define DIR_PIN 2
#define STEP_PIN 3
#define ENABLE_PIN 4
#define BUTTON_f_PIN 8
#define BUTTON_b_PIN 9
#define LED_PIN 12
int delay_time
f button == BLUE
b button == GRN
void setup() {
Serial.begin(9600);
pinMode( ENABLE_PIN , OUTPUT );
pinMode( DIR_PIN , OUTPUT );
pinMode( STEP_PIN , OUTPUT );
pinMode( BUTTON_f_PIN , INPUT );
pinMode( BUTTON_b_PIN , INPUT );
pinMode( LED_PIN , OUTPUT );
initialize
digitalWrite( DIR_PIN , LOW );
digitalWrite( STEP_PIN , LOW );
digitalWrite( ENABLE_PIN , LOW );
blink LEDs
for ( int i=0; i<5; i++ ) {
digitalWrite( LED_PIN , HIGH );
delay(100);
digitalWrite( LED_PIN , LOW);
delay(100);
}
}
void loop() {
while ( digitalRead(BUTTON_b_PIN) == HIGH ) {
blue button
digitalWrite( ENABLE_PIN , LOW );
digitalWrite( LED_PIN , HIGH );
microturn(-40);
digitalWrite(LED_PIN , LOW);
}
while ( ((digitalRead(BUTTON_f_PIN) == HIGH) ) ) {
green button
digitalWrite( ENABLE_PIN , LOW );
digitalWrite( LED_PIN , HIGH );
microturn(100);
digitalWrite( LED_PIN , LOW );
}
digitalWrite( ENABLE_PIN , HIGH );
}
void microturn( int delay_time ){
if (delay_time <0 )
digitalWrite( DIR_PIN , LOW );
else
digitalWrite( DIR_PIN , HIGH );
digitalWrite( STEP_PIN , HIGH );
delayMicroseconds( abs(delay_time) );
digitalWrite( STEP_PIN , LOW );
delayMicroseconds( abs(delay_time) );
}



ΚΑΤΑΣΚΕΥΑΣΤΙΚΑ ΣΧΕΔΙΑ




Εργασία σε PDF