- పదార్థాలు అవసరం
- స్టెప్పర్ మోటార్ (28BYJ-48)
- ULN2003 మోటార్ డ్రైవర్ IC
- సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
- STM32F103C8 తో స్టెప్పర్ మోటారును తిప్పడం
- స్టెప్పర్ మోటార్ కోసం ప్రోగ్రామింగ్ STM32
స్టెప్పర్ మోటర్ బ్రష్ లేని DC మోటర్, దీనిని చిన్న కోణాల్లో తిప్పవచ్చు, ఈ కోణాలను స్టెప్స్ అంటారు. సాధారణంగా స్టెప్పర్ మోటారు 360 డిగ్రీల భ్రమణాన్ని పూర్తి చేయడానికి 200 దశలను ఉపయోగిస్తుంది, అంటే దాని దశకు 1.8 డిగ్రీలు తిప్పండి. రోబోట్లు, యాంటెనాలు, హార్డ్ డ్రైవ్లు వంటి ఖచ్చితమైన భ్రమణ కదలిక అవసరమయ్యే అనేక పరికరాల్లో స్టెప్పర్ మోటారును ఉపయోగిస్తారు. సరైన సూచనలు ఇవ్వడం ద్వారా మనం ఏదైనా నిర్దిష్ట కోణానికి స్టెప్పర్ మోటారును తిప్పవచ్చు. ప్రధానంగా రెండు రకాల స్టెప్పర్ మోటార్లు అందుబాటులో ఉన్నాయి, యూనిపోలార్ మరియు బైపోలార్. యూనిపోలార్ ఆపరేట్ చేయడం, నియంత్రించడం మరియు పొందడం కూడా సులభం. ఇక్కడ ఈ ట్యుటోరియల్లో మేము స్టెప్పర్ మోటారును STM32F103C8 (బ్లూ పిల్) బోర్డుతో ఇంటర్ఫేస్ చేస్తున్నాము .
పదార్థాలు అవసరం
- STM32F103C8 (బ్లూ పిల్)
- స్టెప్పర్ మోటార్ (28BYJ-48)
- ULN2003 IC
- పొటెన్టోమీటర్ 10 కె
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
స్టెప్పర్ మోటార్ (28BYJ-48)
28BYJ-48 ఒక యూనిపోలార్ స్టెప్పర్ మోటారు, దీనికి 5V సరఫరా అవసరం. మోటారుకు 4 కాయిల్ యూనిపోలార్ అమరిక ఉంది మరియు ప్రతి కాయిల్ + 5 వికి రేట్ చేయబడింది, అందువల్ల ఆర్డునో, రాస్ప్బెర్రీ పై వంటి STM32 వంటి మైక్రోకంట్రోలర్లతో నియంత్రించడం చాలా సులభం. అయితే దీన్ని నడపడానికి ULN2003 వంటి మోటారు డ్రైవ్ ఐసి అవసరం, ఎందుకంటే స్టెప్పర్ మోటార్లు అధిక కరెంట్ను తీసుకుంటుంది మరియు ఇది మైక్రోకంట్రోలర్లను దెబ్బతీస్తుంది.
గమనించవలసిన మరో ముఖ్యమైన డేటా స్ట్రైడ్ యాంగిల్: 5.625 ° / 64. అంటే 8-దశల శ్రేణిలో పనిచేసేటప్పుడు మోటారు ప్రతి దశకు 5.625 డిగ్రీలు కదులుతుంది మరియు ఒక పూర్తి భ్రమణాన్ని పూర్తి చేయడానికి 64 దశలు (5.625 * 64 = 360) పడుతుంది. ఇతర లక్షణాలు క్రింద డేటాషీట్లో అందించబడ్డాయి:
ఇతర మైక్రోకంట్రోలర్లతో స్టెప్పర్ మోటార్తో ఇంటర్ఫేసింగ్ను కూడా తనిఖీ చేయండి:
- ఆర్డునో యునోతో ఇంటర్ఫేసింగ్ స్టెప్పర్ మోటార్
- రాస్ప్బెర్రీ పైతో స్టెప్పర్ మోటార్ కంట్రోల్
- 8051 మైక్రోకంట్రోలర్తో స్టెప్పర్ మోటార్ ఇంటర్ఫేసింగ్
- పిఐసి మైక్రోకంట్రోలర్తో ఇంటర్ఫేసింగ్ స్టెప్పర్ మోటార్
మైక్రోకంట్రోలర్ లేకుండా స్టెప్పర్ మోటారును కూడా నియంత్రించవచ్చు, ఈ స్టెప్పర్ మోటార్ డ్రైవర్ సర్క్యూట్ చూడండి.
ULN2003 మోటార్ డ్రైవర్ IC
మైక్రోకంట్రోలర్ నుండి పొందిన పప్పుల ప్రకారం మోటారును నడపడానికి ఇది ఉపయోగించబడుతుంది. ULN2003 యొక్క చిత్ర రేఖాచిత్రం క్రింద ఉంది:
పిన్స్ (IN1 నుండి IN7) ఇన్పుట్ పిన్స్ మరియు (OUT 1 నుండి OUT 7) సంబంధిత అవుట్పుట్ పిన్స్. COM ఇవ్వబడుతుంది అవుట్పుట్ పరికరాలకు అవసరమైన పాజిటివ్ సోర్స్ వోల్టేజ్. సర్క్యూట్ రేఖాచిత్రం విభాగంలో స్టెప్పర్ మోటర్ కోసం మరిన్ని కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి.
సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
పై సర్క్యూట్ రేఖాచిత్రం కోసం కనెక్షన్ల వివరణ క్రింద ఉంది.
STM32F103C8 (బ్లూ పిల్)
దిగువ రేఖాచిత్రంలో మనం చూడగలిగినట్లుగా, పిడబ్ల్యుఎం పిన్స్ వేవ్ ఫార్మాట్ (~) లో సూచించబడతాయి, అటువంటి 15 పిన్స్ ఉన్నాయి, వీటిని పల్స్ అవుట్పుట్ కోసం స్టెప్పర్ మోటారుకు ఉపయోగించవచ్చు. మాకు నాలుగు పిన్ మాత్రమే అవసరం, మేము ఉపయోగిస్తాము (PA0 toPA3).
ULN2003 మోటార్ డ్రైవర్ IC తో STM32F103C8
పిన్లు (PA0 నుండి PA3) ULN2003 IC యొక్క ఇన్పుట్ పిన్లతో (IN1-IN4) అనుసంధానించబడిన అవుట్పుట్ పిన్లుగా పరిగణించబడతాయి.
STM32F103C8 యొక్క పిన్స్ |
పిన్స్ ఆఫ్ ULN2003 IC |
PA0 |
IN1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5 వి |
COM |
GND |
GND |
స్టెప్పర్ మోటార్తో ULN2003 IC (28BYJ-48)
ULN2003 IC యొక్క అవుట్పుట్ పిన్స్ (OUT1-OUT4) స్టెప్పర్ మోటార్లు పిన్స్ (ఆరెంజ్, ఎల్లో, పింక్ మరియు బ్లూ) తో అనుసంధానించబడి ఉన్నాయి.
పిన్స్ ఆఫ్ ULN2003 IC |
స్టెప్పర్ మోటర్ యొక్క పిన్స్ |
OUT1 |
ఆరెంజ్ |
OUT2 |
YELLOW |
OUT3 |
పింక్ |
OUT4 |
నీలం |
COM |
RED |
పొటెన్టోమీటర్తో STM32F103C8
స్టెప్పర్ మోటర్ యొక్క వేగాన్ని సెట్ చేయడానికి ఒక పొటెన్షియోమీటర్ ఉపయోగించబడుతుంది.
POTENTIOMETER |
STM32F103C8 |
ఎడమ (INPUT) |
3.3 |
సెంటర్ (U ట్పుట్) |
PA4 |
హక్కు (GND) |
GND |
STM32F103C8 తో స్టెప్పర్ మోటారును తిప్పడం
స్టెప్పర్ మోటారును ఆపరేట్ చేయడానికి కొన్ని దశలు క్రింద ఉన్నాయి:
- పొటెన్షియోమీటర్ను మార్చడం ద్వారా స్టెప్పర్ మోటారు వేగాన్ని సెట్ చేయండి.
- ARDUINO IDE (టూల్స్-> సీరియల్ మానిటర్) లేదా CTRL + SHIFT + M లో ఉన్న సీరియల్ మానిటర్ ద్వారా సవ్యదిశలో (+ విలువలు) లేదా యాంటిక్లాక్వైస్ దిశలో (-వాల్యూస్) భ్రమణం కోసం దశలను మానవీయంగా నమోదు చేయండి.
- సీరియల్ మానిటర్లో ఇచ్చిన ఇన్పుట్ విలువ ప్రకారం భ్రమణం యొక్క కొన్ని దశలు స్టెప్పర్ మోటారులో జరుగుతాయి.
ఉదాహరణకి
సీరియల్ మానిటర్లో ఇచ్చిన విలువ |
భ్రమణం |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) ANTI CLK WISE |
-1024 |
(-180) ANTI CLK WISE |
-512 |
(-90) ANTI CLK WISE |
స్టెప్పర్ మోటార్ కోసం ప్రోగ్రామింగ్ STM32
మునుపటి ట్యుటోరియల్ మాదిరిగానే, మేము STM32F103C8 ను FTDI ప్రోగ్రామర్ ఉపయోగించకుండా USB పోర్ట్ ద్వారా Arduino IDE తో ప్రోగ్రామ్ చేసాము. Arduino IDE తో STM32 ప్రోగ్రామింగ్ గురించి తెలుసుకోవడానికి లింక్ను అనుసరించండి. మేము దీనిని ఆర్డునో లాగా ప్రోగ్రామింగ్ కొనసాగించవచ్చు. ప్రాజెక్ట్ చివరిలో పూర్తి కోడ్ ఇవ్వబడుతుంది.
మొదట మనం స్టెప్పర్ లైబ్రరీ ఫైళ్ళను చేర్చాలి # చేర్చండి
# చేర్చండి
అప్పుడు మేము కాదు అని నిర్వచించాము. భ్రమణంపై పూర్తి చేయవలసిన దశలు, ఇక్కడ మేము 32 ని ఉపయోగిస్తాము ఎందుకంటే మనం పూర్తి-దశ (4 దశ-శ్రేణి) ఉపయోగిస్తున్నాము (360/32 = 11.25 డిగ్రీ). కాబట్టి ఒక దశ కోసం, షాఫ్ట్ 11.25 డిగ్రీని కదిలిస్తుంది, అది స్ట్రైడ్ యాంగిల్. 4 దశల క్రమంలో, ఒక పూర్తి భ్రమణానికి 4 దశలు అవసరం.
# STEPS 32 ని నిర్వచించండి
8 దశల క్రమం (360/64 = 5.625) స్ట్రైడ్ యాంగిల్ ఉన్న హాఫ్ స్టెప్ మోడ్ను కూడా మనం ఉపయోగించవచ్చు.
ప్రతి విప్లవానికి దశలు = 360 / STEP ANGLE
మేము వేగాన్ని సెట్ చేస్తున్నప్పుడు, పొటెన్షియోమీటర్కు అనుసంధానించబడిన PA4 నుండి అనలాగ్ విలువను తీసుకోవాలి. కాబట్టి మేము దాని కోసం పిన్ను ప్రకటించాలి
const int speedm = PA4
అప్పుడు మేము ఆ విలువలను పూర్ణాంక రకం వేరియబుల్లో నిల్వ చేయడం ద్వారా అనలాగ్ విలువను డిజిటల్గా మార్చాము, ఆ తర్వాత వేగాన్ని సెట్ చేయడానికి ADC విలువలను మ్యాప్ చేయాలి కాబట్టి మేము ఈ క్రింది స్టేట్మెంట్ను ఉపయోగిస్తాము. STM32 తో ADC ఉపయోగించడం గురించి ఇక్కడ మరింత తెలుసుకోండి.
int adc = అనలాగ్ రీడ్ (స్పీడ్మ్); int ఫలితం = పటం (adc , 0, 4096, 1, 1023);
వేగాన్ని సెట్ చేయడానికి, మేము stepper.setSpeed (ఫలితం) ను ఉపయోగిస్తాము; మాకు వేగ పరిధి (1-1023) ఉంది.
మోటారుకు అనుసంధానించబడిన పిన్లను సెట్ చేయడానికి మేము దిగువ వంటి ఉదాహరణను సృష్టించాలి. ఈ నమూనాలో చాలా మంది ఇక్కడ పొరపాటు చేస్తున్నందున ఈ దశల్లో జాగ్రత్తగా ఉండండి. వారు తప్పు నమూనాను ఇస్తారు మరియు ఆ కాయిల్స్ కారణంగా శక్తినివ్వలేరు.
స్టెప్పర్ స్టెప్పర్ (STEPS, PA0, PA2, PA1, PA3);
సీరియల్ మానిటర్ నుండి దశల విలువను పొందడానికి క్రింద స్టేట్మెంట్ ఉపయోగించబడుతుంది. ఉదాహరణకు, మాకు ఒక పూర్తి భ్రమణానికి 2048 విలువలు అవసరం (32 * 64 = 2048) అంటే 64 గేర్ నిష్పత్తి మరియు 32 ఒక భ్రమణానికి సగం దశల క్రమం.
rotate = Serial.parseInt ();
దిగువ కోడ్ ఉదాహరణను పిలవడానికి మరియు మోటారును నడపడానికి ఉపయోగించబడుతుంది .రూపం విలువ 1 అయితే ఇది ఫంక్షన్ స్టెప్పర్ను ఒక సారి పిలుస్తుంది మరియు ఒక కదలిక జరుగుతుంది.
stepper.step (తిప్పండి);
ప్రదర్శన వీడియోతో పూర్తి కోడ్ క్రింద ఇవ్వబడింది. వివిధ ఇతర మైక్రోకంట్రోలర్లతో ఇంటర్ఫేసింగ్తో ఇక్కడ అన్ని స్టెప్పర్ మోటారు సంబంధిత ప్రాజెక్టులను తనిఖీ చేయండి