Κύκλωμα ελέγχου κινητήρα υψηλού ρεύματος χρησιμοποιώντας το Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτό το έργο, συζητάμε πώς ελέγξτε την ταχύτητα του κινητήρα χρησιμοποιώντας κύκλωμα Arduino PWM, και πώς να εφαρμόσετε έλεγχο αντίστροφης κίνησης προς τα εμπρός ή κατεύθυνσης σε κινητήρα DC χρησιμοποιώντας το Arduino μέσω μερικών διακοπτών μπουτόν. Οποιοσδήποτε κινητήρας υψηλού ρεύματος έως 30 amp μπορεί να ελεγχθεί χρησιμοποιώντας αυτήν τη ρύθμιση

ΜεAnkit Negi



Ο κινητήρας είναι ένα πολύ βασικό συστατικό σε ηλεκτρικά και ηλεκτρονικά καθώς χρησιμοποιούνται ως ενεργοποιητές σε πολλές περιοχές.

Χρειαζόμαστε κινητήρες για μικρές εφαρμογές, όπως η ρομποτική, καθώς και σε περιοχές όπου χρησιμοποιούνται βαριοί κινητήρες (βιομηχανίες κ.λπ.).



Τώρα οι κινητήρες που χρησιμοποιούνται για μικρές εφαρμογές μπορούν να ελεγχθούν εύκολα καθώς δεν παίρνουν πολύ ρεύμα (λιγότερο από 2amp).

Και αυτοί οι κινητήρες μπορούν να ελεγχθούν εύκολα χρησιμοποιώντας μικροελεγκτή όπως το arduino με οδηγός κινητήρα όπως L298 ή L293D .

Αλλά οι κινητήρες που χρησιμοποιούνται για βαριές χρήσεις (μεγαλύτεροι από 10amp), δεν μπορούν να ελεγχθούν χρησιμοποιώντας αυτά τα ic καθώς μπορούν να παρέχουν περιορισμένο ρεύμα (μέγιστο 2amp). Πώς ελέγχονται λοιπόν αυτοί οι κινητήρες από;

Η απάντηση είναι απλή: χρησιμοποιώντας Ρελέ , το οποίο λειτουργεί ως διακόπτες, δηλαδή εναλλαγή μεγάλου ρεύματος χρησιμοποιώντας μικρό ρεύμα. Με αυτόν τον τρόπο μπορούν να επιτευχθούν δύο πράγματα:

1. Τρέχουμε τον ίδιο τον κινητήρα μας.

2. Απομόνωση του κυκλώματος, αποτρέποντας έτσι τυχόν κρούσεις.

Τώρα οποιοσδήποτε μικροελεγκτής μπορεί να χρησιμοποιηθεί για εναλλαγή αυτών των ρελέ. Θα χρησιμοποιήσουμε το arduino UNO εδώ.

ΑΠΑΙΤΟΥΜΕΝΑ ΣΥΣΤΑΤΙΚΑ ΓΙΑ ΤΟ ΠΑΡΟΝ ΕΡΓΟ:

1. ARDUINO UNO: να δώσει λογική εισόδου στην κύρια πλευρά του ρελέ.

2. SPDT RELAY -2: απαιτούνται δύο ρελέ για περιστροφή και στις δύο κατευθύνσεις. Οι επαφές πρέπει να βαθμολογούνται για να χειρίζονται τις υψηλές τρέχουσες προδιαγραφές κινητήρα

Μπλε χρώμα ρελέ εικόνας ρελέ που δείχνει N / O N / C και πόλο λεπτομέρειες3.Power Mosfet: Μπορείτε να χρησιμοποιήσετε το IRF1010 mosfet κουμπί μικροδιακόπτη

4. ΜΠΑΤΑΡΙΑ (12v): για παροχή ρεύματος στον κινητήρα.

5. ΔΥΟ ΚΟΥΜΠΙΑ: για να δώσετε εισόδους στο arduino (δηλ. Όταν πιέζεται και όταν δεν πιέζεται)

10k 1/4 watt αντίσταση

6. ΔΥΟ 10Κ ΑΝΤΙΣΤΑΣΕΙΣ: για αποσύνδεση (εξηγείται παρακάτω)

Κύκλωμα ελέγχου κινητήρα υψηλού ρεύματος χρησιμοποιώντας το Arduino

7. ΣΥΝΔΕΣΗ καλωδίων: για σύνδεση.

ΣΧΗΜΑΤΙΚΟΣ:

Κύκλωμα ελέγχου κινητήρα PWM Arduino

Πραγματοποιήστε συνδέσεις όπως φαίνεται στο σχήμα.

1. Συνδέστε τον κανονικά ανοιχτό ακροδέκτη και των δύο ρελέ στον θετικό ακροδέκτη της μπαταρίας και τον κανονικά κλειστό ακροδέκτη στον αρνητικό ακροδέκτη της μπαταρίας.

2. Συνδέστε τον κινητήρα ανάμεσα στον υπόλοιπο ακροδέκτη (στους τρεις) κάθε ρελέ.

3. Συνδέστε έναν ακροδέκτη της πρωτεύουσας πλευράς των ρελέ στους ακροδέκτες εξόδου του arduino όπως ορίζεται στον κώδικα και άλλος ακροδέκτης στη γείωση.

4. Συνδέστε ένα τερματικό και των δύο κουμπιών σε ακίδα 5v του arduino και άλλου τερματικού στις ακίδες εισόδου, όπως ορίζεται στον κώδικα.

4. ** Μην ξεχάσετε να συνδέσετε αντιστάσεις, καθώς είναι πολύ σημαντικές για τη σωστή λειτουργία αυτού του κυκλώματος, όπως εξηγείται παρακάτω:

ΓΙΑΤΙ ΣΥΝΔΕΟΝΤΑΙ ΑΝΤΙΣΤΟΙΧΕΣ;

Μπορεί να διαπιστώσετε ότι δεν υπάρχει τίποτα συνδεδεμένο με τις καρφίτσες εισόδου του Arduino, αλλά αυτό δεν σημαίνει ότι αυτά τα pinouts μπορεί να είναι λογικά μηδέν όταν ο υποδεικνυόμενος διακόπτης είναι ανοιχτός

Μάλλον υπονοεί ότι όταν ο διακόπτης είναι ανοιχτός, το arduino μπορεί να πάρει οποιαδήποτε τυχαία τιμή μεταξύ της λογικής 0 και της λογικής 1, η οποία δεν είναι καθόλου καλή (αυτό ονομάζεται αναπήδηση).

Αυτό που θέλουμε λοιπόν είναι ότι όταν τίποτα δεν είναι συνδεδεμένο με τον πείρο εισόδου, δηλαδή το κουμπί είναι ανοιχτό, το arduino παίρνει 0 είσοδο από τον πείρο.

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

Αυτή η αντίσταση ονομάζεται αντίσταση pulldown καθώς τραβάει τη λογική στον πείρο στο 0. Και αυτή η διαδικασία ονομάζεται αποσύνδεση.

ΚΩΔΙΚΑΣ:

Κάψτε αυτόν τον κωδικό στο arduino σας.

int x// initialise variables
int y
int z
int w
void setup() {
pinMode(6,OUTPUT)//initialise pin 6 as output to RL1
pinMode(9,OUTPUT)//initialise pin 9 as output to RL2
pinMode(3,INPUT)//initialise pin 3 as input
pinMode(4,INPUT)//initialise pin 4 as input
pinMode(10,OUTPUT)//initialise PWM pin 8 as output to gate of mosfet
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
Serial.begin(9600)
}
void loop() {
z=analogRead(A0)// read values from potentiometer in terms of voltage
w= map(z,0,1023,0,255)// map those values from 0 to 255
analogWrite(10,w)// write the mapped value to 10thpin as output
delay(1)//on time period of mosfet
analogWrite(10,w)
delay(1)//off time period of ,mosfet
Serial.println(z)//print value from pot to serial monitor
Serial.println(w)//print mapped value to serial monitor
x= digitalRead(3)
y= digitalRead(4)
if(x==0 && y==0){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)}
if(x==1 && y==0){digitalWrite(6,HIGH)// clockwise rotation of motor
digitalWrite(9,LOW)}
if(x==0 && y==1){digitalWrite(6,LOW)// anticlockwise rotation of motor
digitalWrite(9,HIGH)}
if(x==1 && y==1){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)
}
}

Εργασία (κωδικός κατανόησης):

• ΕΛΕΓΧΟΣ ΟΔΗΓΙΩΝ:

A. Όταν δεν πατηθούν και τα δύο κουμπιά:

Σε αυτήν την κατάσταση, το arduino παίρνει 0 είσοδο και από τις δύο ακίδες. Όπως ορίζεται στον κώδικα σε αυτήν την κατάσταση και οι δύο ακίδες εξόδου δίνουν 0 λογική (LOW):

εάν (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, ΧΑΜΗΛΗ)}

Δεδομένου ότι η τάση εισόδου στο πρωτεύον και των δύο ρελέ είναι μηδέν δευτερεύον ακροδέκτη και των δύο παραμένει σε κανονικά κλειστή θέση. Έτσι, υπάρχουν μηδενικά βολτ και στους δύο ακροδέκτες του κινητήρα, που δεν προκαλούν περιστροφή.

Β. Όταν πατηθεί το κουμπί Χ αλλά δεν πατηθεί το Υ:

Σε αυτήν την κατάσταση, το arduino παίρνει 0 εισόδους από τον πείρο 4, αλλά εισέρχεται1 από τον πείρο 3. Όπως ορίζεται στον κώδικα σε αυτήν την κατάσταση, ο πείρος 6 πρέπει να βρίσκεται στη λογική 1 (ΥΨΗΛΟΣ) ενώ ο πείρος 9 στη λογική 0 (ΧΑΜΗΛΗ):

εάν (x == 1 && y == 0) {digitalWrite (6, ΥΨΗΛΟΣ)

digitalWrite (9, ΧΑΜΗΛΗ)}

Δεδομένου ότι η τάση εισόδου στο ρελέ # 1 είναι υψηλή, ο διακόπτης αυτού του ρελέ ρίχνεται σε κανονικά ανοιχτή κατάσταση ενώ η τάση εισόδου στο ρελέ 2 είναι χαμηλή, ο διακόπτης αυτού του ρελέ παραμένει σε κανονικά κλειστή κατάσταση προκαλώντας 12v και 0v αντίστοιχα στους ακροδέκτες κινητήρα, προκαλώντας περιστροφή του κινητήρα προς μία κατεύθυνση.

Γ. Όταν πατηθεί το κουμπί Υ αλλά δεν πατηθεί το Χ:

Σε αυτήν την κατάσταση, το arduino παίρνει 1 είσοδο από τον πείρο 4, αλλά το input0 από το pin3. Όπως ορίζεται στον κώδικα σε αυτήν την κατάσταση, ο πείρος 6 πρέπει να βρίσκεται στη λογική 0 (LOW) ενώ ο πείρος 9 στη λογική 1 (ΥΨΗΛΟΣ):

εάν (x == 1 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, ΥΨΗΛΗ)}

Δεδομένου ότι η τάση εισόδου στο ρελέ # 2 είναι υψηλή αυτή τη φορά, ο διακόπτης αυτού του ρελέ ρίχνεται σε κανονικά ανοικτή κατάσταση ενώ η τάση εισόδου στο ρελέ # 1 είναι χαμηλή, ο διακόπτης αυτού του ρελέ παραμένει σε κανονικά κλειστή κατάσταση προκαλώντας 12v και 0v αντίστοιχα στον κινητήρα ακροδέκτες, προκαλώντας περιστροφή του κινητήρα προς άλλη κατεύθυνση.

D. Όταν πατήσετε και τα δύο κουμπιά:

Σε αυτήν την κατάσταση, το arduino παίρνει 1 είσοδο και από τις δύο ακίδες. Όπως ορίζεται στον κώδικα σε αυτήν την κατάσταση και οι δύο ακίδες εξόδου δίνουν 0 λογική (LOW):

εάν (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, ΧΑΜΗΛΗ)}

Δεδομένου ότι η τάση εισόδου στο πρωτεύον και των δύο ρελέ είναι μηδέν δευτερεύον ακροδέκτη και των δύο παραμένει σε κανονικά κλειστή θέση. Έτσι, υπάρχει μηδενικό βολτ και στους δύο ακροδέκτες του κινητήρα, που δεν προκαλεί περιστροφή.

• ΕΛΕΓΧΟΣ ΤΑΧΥΤΗΤΑΣ:

Ας υποθέσουμε ότι το ποτενσιόμετρο βρίσκεται σε τέτοια θέση όταν δίνει 0 βολτ ως είσοδο στον ακροδέκτη A0 του arduino. Λόγω αυτού, το arduino χαρτογραφεί αυτήν την τιμή ως 0 και έτσι δίνει 0 ως έξοδο PWM στον ακροδέκτη # 10 δηλ.,

analogWrite (10,0) // γράψτε την αντιστοιχισμένη τιμή στο 10ο πείρο ως έξοδο

Ως εκ τούτου, η πύλη του mosfet παίρνει 0 ρεύμα λόγω του οποίου παραμένει εκτός λειτουργίας και ο κινητήρας βρίσκεται στη θέση OFF.

Ωστόσο, καθώς το δοχείο περιστρέφεται και η τιμή του δοχείου ποικίλλει, η τάση στον ακροδέκτη Α0 επίσης ποικίλλει και αυτή η τιμή χαρτογραφείται στον ακροδέκτη # 10 με αναλογικά αυξανόμενο πλάτος PWM, προκαλώντας περισσότερο ρεύμα να ρέει μέσω του κινητήρα και του mosfet αποστράγγιση, το οποίο με τη σειρά του επιτρέπει στον κινητήρα να αποκτήσει μεγαλύτερη ταχύτητα αναλογικά, και το ίδιο συμβαίνει το αντίστροφο.

Έτσι από την παραπάνω συζήτηση μπορούμε να δούμε πώς μπορεί να χρησιμοποιηθεί ένα Arduino για τον έλεγχο της ταχύτητας καθώς και της κατεύθυνσης (προς τα εμπρός) ενός κινητήρα συνεχούς ρεύματος συνεχούς ρεύματος απλά ρυθμίζοντας το καθορισμένο δοχείο και μέσω δύο μπουτόν.

Εκσυγχρονίζω : Για κινητήρα υψηλής τάσης, χρησιμοποιήστε τα ρελέ 12V / 30 amp και τα στάδια οδηγού BJT για τη λειτουργία αυτών των ρελέ υψηλής ισχύος, όπως υποδεικνύεται στο ακόλουθο τροποποιημένο διάγραμμα:




Προηγούμενο: Κύκλωμα αισθητήρα στάθμευσης αυτοκινήτου με συναγερμό Επόμενο: Arduino PWM Signal Generator Circuit