Παρασκευή 28 Οκτωβρίου 2011
Τρίτη 25 Οκτωβρίου 2011
Αυτόματο τρύπημα πλακετών. (Final)
Παρατίθενται ως αναφορά τα τελευταία σχεδία της κατασκευής. Η τάση εξόδου του 317 πρέπει να είναι στα 7V. Σε περίπτωση που χρησιμοποιηθεί 5V servo θα πρέπει να υπολογιστεί η R3 για 5V και να παραληφθούν οι δίοδοι D1,D2 και D3.
R1=500
R2=240
R3=***
R4=500
R5=500
R6=10K
R7=10K
R8=4.7K
R9=10K
R10=10K
R11=10K
C1=2000μf
C2=1μf
T1=BC547
K1=RT424005
IC1=ATMEGA16
IC2=LM317
D1=1N4004***
D2=1N4004***
D3=1N4004***
73 de SV1IXP
R2=240
R3=***
R4=500
R5=500
R6=10K
R7=10K
R8=4.7K
R9=10K
R10=10K
R11=10K
C1=2000μf
C2=1μf
T1=BC547
K1=RT424005
IC1=ATMEGA16
IC2=LM317
D1=1N4004***
D2=1N4004***
D3=1N4004***
73 de SV1IXP
Τετάρτη 19 Οκτωβρίου 2011
Κώδικας για αυτόματο τρύπημα πλακετών.
Παρατίθεται ο κώδικας σε Bascom που τρέχει ο μΕ ATMEGA16 για το αυτόματο τρύπημα πλακετών.
'servo
$regfile = "m16def.dat"
$crystal = 8000000
Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Config Porta.3 = Input
Config Porta.4 = Input
Config Porta.5 = Input
Config Portd.0 = Input
Config Portd.2 = Input
Dim I As Integer
Dim Neutral_position As Integer
Dim Drill_start As Integer
Dim Drill_end As Integer
Dim Drill_speed As Integer
Dim Drill_speed_temp As Single
Dim Temp1 As Single
Dim Temp As Integer
Dim Drill_start_rom As Eram Integer At 14 , Drill_end_rom As Eram Integer At 16 , Drill_speed_rom As Eram Integer At 18
On Int0 Neutral
Config Int0 = Falling
Portd.7 = 1
Waitms 200
Neutral_position = 250
Drill_start = Drill_start_rom
Drill_end = Drill_end_rom
Drill_speed = Drill_speed_rom
Enable Interrupts
Enable Int0
Portd.6 = 0
Porta.0 = 1
Porta.1 = 1
Porta.2 = 1
Waitms 500
Porta.0 = 0
Porta.1 = 0
Porta.2 = 0
Wait 500
Porta.0 = 1
Porta.1 = 1
Porta.2 = 1
Wait 500
Porta.0 = 0
Porta.1 = 0
Porta.2 = 0
Wait 500
If Pina.5 = 1 Then
Porta.0 = 1
Wait 1
While Pina.5 = 0
If Pina.4 = 1 Then
Drill_start = Drill_start + 1
End If
If Pina.3 = 1 Then
Drill_start = Drill_start - 1
End If
If Drill_start < 375 Then
Drill_start = 375
End If
If Drill_start > 500 Then
Drill_start = 500
End If
Pulseout Portd , 6 , Drill_start
Waitms 18
Wend
Drill_start_rom = Drill_start
Porta.0 = 0
Wait 1
End If
If Pina.5 = 1 Then
Porta.1 = 1
Wait 1
While Pina.5 = 0
If Pina.4 = 1 Then
Drill_end = Drill_end + 1
End If
If Pina.3 = 1 Then
Drill_end = Drill_end - 1
End If
If Drill_end < 380 Then
Drill_end = 380
End If
If Drill_end > 510 Then
Drill_end = 510
End If
Pulseout Portd , 6 , Drill_end
Waitms 18
Wend
Drill_end_rom = Drill_end
Porta.1 = 0
Wait 1
End If
If Pina.5 = 1 Then
Porta.2 = 1
Wait 1
Temp1 = Drill_start
While Pina.5 = 0
If Pina.4 = 1 Then
Drill_speed = Drill_speed + 1
End If
If Pina.3 = 1 Then
Drill_speed = Drill_speed - 1
End If
If Drill_speed < 1 Then
Drill_speed = 0
End If
If Drill_speed > 100 Then
Drill_speed = 100
End If
Drill_speed_temp = Drill_speed / 40
Temp1 = Temp1 + Drill_speed_temp
Temp = Round(temp1)
Pulseout Portd , 6 , Temp
If Temp > Drill_end Then
Temp = Drill_start
Temp1 = Temp
End If
Waitms 18
Wend
Drill_speed_rom = Drill_speed
Wait 1
Porta.2 = 0
End If
Begin:
Do
Portd.6 = 0
While Pind.0 = 0
Pulseout Portd , 6 , Drill_start
Waitms 18
Wend
Temp1 = Drill_start
Portd.6 = 0
Do
Drill_speed_temp = Drill_speed / 40
Temp1 = Temp1 + Drill_speed_temp
Temp = Round(temp1)
Pulseout Portd , 6 , Temp
Waitms 17
Loop Until Temp > Drill_end
Loop
End
Neutral:
Disable Interrupts
Disable Int0
Portd.6 = 0
I = 0
Do
Pulseout Portd , 6 , Neutral_position
Waitms 18
I = I + 1
Loop Until I = 50
Portd.7 = 0
Wait 5
Return
Η pulseout εντολή δημιουργεί τους παλμούς που οδηγούν το servo. Η υπορουτίνα neutral είναι υπεύθυνη για την απομάκρυνση του τρυπανιού από την επιφάνεια όταν μετακινηθεί ο διακόπτης σε θέση Off.
73 de SV1IXP
Πέμπτη 13 Οκτωβρίου 2011
Αυτόματο τρύπημα πλακετών
Μετά από αρκετή αναμονή πλέον είναι έτοιμο και το σύστημα τρυπήματος πλακετών με χρήση μοντελιστικού σερβομηχανισμού και μικροελενκτη.
Το σύστημα βασίζεται στην βάση MB140/S και τον ταχυτροχο IB/E της PROXXON.
H λογική λειτουργίας είναι απλή και βασίζεται σε έναν μικροελεγκτή ΑTMEGA16 ο οποίος δημιουργεί το απαιτούμενο PWM (pulse width modulation) σήμα που χρειάζεται το servo για τον έλεγχο της θέσης του. Ρυθμιζόμενες παράμετροι μέσω διακοπτών είναι η αρχή και το τέλος της διαδρομής καθώς και η ταχύτητα διάτρησης. Οι παράμετροι αποθηκεύονται στην ανεξίτηλη μνήμη του μικροελεγκτή για ανάκληση κάθε φορά που ενεργοποιείται το σύστημα. Για τη ρύθμιση κρατάμε πατημένο το κουμπί SETUP κατά την ενεργοποίηση της τροφοδοσίας μέχρι να ανάψει το πρώτο led το οποίο μας ενημερώνει ότι ρυθμίζουμε την αντίστοιχη παράμετρο μέσω των κουμπιών UP/DOWN. Για τη ρύθμιση των υπολοίπων παραμέτρων κρατάμε πατημένο το SETUP μέχρι να ανάσσει το επόμενο led ή το πατάμε στιγμιαία για να βγούμε από την διαδικασία του setup.
Μια extra λειτουργία/ευκολία είναι η απομάκρυνση του τρυπανιού από την επιφάνεια μας (πάνω στην οποία τρυπάμε) με την απενεργοποίηση του διακόπτη της τροφοδοσίας, η οποία υλοποιείται με την βοήθεια του relay όπως φαίνεται στο σχέδιο.
Με την πίεση ενός ποδοδιακοπτη ξεκινάει η διάτρηση.
Ακολουθεί ο κώδικας/σχηματικό/πλακέτα σε νέα δημοσίευση.
Ακολουθεί ο κώδικας/σχηματικό/πλακέτα σε νέα δημοσίευση.
73 de SW1IXP
Εγγραφή σε:
Αναρτήσεις (Atom)