कैसे एक स्टेपर मोटर तार करने के लिए?


10

मैंने हाल ही में इन स्टीपर मोटर और ड्राइवर बोर्डों में से एक खरीदा है - और मुझे रास्पबेरी पाई से इसे कैसे कनेक्ट करना है, इसके बारे में कोई दस्तावेज नहीं मिल रहा है - मैं AdaFruit ट्यूटोरियल का उपयोग करने का प्रयास कर रहा हूं और जब मैंने उचित किए गए सभी कनेक्शन प्राप्त कर लिए हैं gpio पिन जुड़ा हुआ है (ड्राइवर बोर्ड पर एलईडी ठीक से प्रकाश करते हैं, मोटर कुछ भी नहीं करता है)।

क्या किसी को पता है कि मैं रास्पबेरी पीआई को एक स्टेपर मोटर से कैसे कनेक्ट कर सकता हूं, इसके बारे में अधिक जानकारी के लिए मैं देख सकता हूं?

अपडेट: 15 नवंबर 2013 मेरा प्रोग्राम कोड यह है

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

#enable_pin = 18
coil_A_1_pin = 4
coil_A_2_pin = 17
coil_B_1_pin = 23
coil_B_2_pin = 24

#GPIO.setup(enable_pin, GPIO.OUT)
GPIO.setup(coil_A_1_pin, GPIO.OUT)
GPIO.setup(coil_A_2_pin, GPIO.OUT)
GPIO.setup(coil_B_1_pin, GPIO.OUT)
GPIO.setup(coil_B_2_pin, GPIO.OUT)

#GPIO.output(enable_pin, 1)

def forward(delay, steps):  
  for i in range(0, steps):
    setStep(1, 0, 1, 0)
    setStep(0, 1, 1, 0)
    setStep(0, 1, 0, 1)
    setStep(1, 0, 0, 1)

def backwards(delay, steps):  
  for i in range(0, steps):
    setStep(1, 0, 0, 1)
    setStep(0, 1, 0, 1)
    setStep(0, 1, 1, 0)
    setStep(1, 0, 1, 0)


def setStep(w1, w2, w3, w4):
  GPIO.output(coil_A_1_pin, w1)
  GPIO.output(coil_A_2_pin, w2)
  GPIO.output(coil_B_1_pin, w3)
  GPIO.output(coil_B_2_pin, w4)

while True:
  delay = raw_input("Delay between steps (milliseconds)?")
  steps = raw_input("How many steps forward? ")
  forward(int(delay) / 1000.0, int(steps))
  steps = raw_input("How many steps backwards? ")
  backwards(int(delay) / 1000.0, int(steps))

मेरा ब्रेडबोर्ड ऐसा दिखता है यहाँ छवि विवरण दर्ज करें

मेरा ड्राइवर बोर्ड इस तरह दिखता है यहाँ छवि विवरण दर्ज करें

मेरे पास है

IN1 => GPIO 4

IN2 => GPIO 17

IN3 => GPIO 23

IN4 => GPIO 24


क्या एलईड सही अनुक्रम में 0.5 सेकंड की देरी के साथ प्रकाश कर रहे हैं?
जॉन ला रोय नोव

काश मैं कई बार वोट कर पाता।
लोको

वे देरी के साथ सही क्रम में प्रकाश कर रहे हैं।
स्टीव फ्रेंच

जवाबों:


6

आपको 5 वोल्ट बस ड्राइवरों को 3.3 वोल्ट की आवश्यकता है। आपके द्वारा खरीदी गई मोटर किट Arduino के लिए थी जो 5 वोल्ट gpio का उपयोग करती है, आरपीआई 3.3 वोल्ट का उपयोग करता है, बस लीड्स की यात्रा करने के लिए पर्याप्त है, लेकिन काम नहीं करता है। आपको एक मोटर नियंत्रक भी मिल सकता है जो 3.3 वोल्ट नियंत्रण रेखाओं को स्वीकार करता है।

याद रखें हमेशा अपनी वोल्ट रेटिंग चेक करें !!


[स्मैक हेड] मैंने ऐसा नहीं सोचा था - क्या मोटर नियंत्रक को काम करने का कोई तरीका है जिसे आप सोच सकते हैं - मुझे लगता है कि मैं यहां कुछ चमत्कारी चीज मांग रहा हूं, या क्या मैं सिर्फ भाग्य से बाहर हूं?
स्टीव फ्रेंच

@SteveFrench यही कारण है कि वे दोहरी वोल्टेज बस ड्राइवर बनाते हैं जो वोल्टेज के बीच बफ़र करते हैं, मैंने कुछ महीने पहले eBay पर खरीदा था, लेकिन भाग नहीं याद कर सकते हैं। वे आम और आसानी से उपलब्ध हैं
hildred

लेकिन तस्वीर में लाल 5 वी पिन से जुड़ा है, 3.3 नहीं। यह ठीक नहीं होना चाहिए ?? मैं इसे अपने आप का इस्तेमाल किया है नहीं है, लेकिन मुझे लगता है कि कुछ चेतावनियां देखते हैं ..
गोल्डीलॉक्स

1
@goldilocks यह नियंत्रक चिप पर निर्भर करता है, लेकिन शायद नहीं। मैंने कंट्रोलर चिप के लिए डेटाशीट को नहीं देखा था, लेकिन जब vcc 3.3v से जुड़ा होता है तो ज्यादातर डुअल वोल्टेज चिप्स 3.3v io का उपयोग करते हैं। लेकिन कोशिश करने से पहले आपको यह सुनिश्चित करना होगा कि यह एक दोहरी वोल्टेज चिप है, अधिकांश एकल वोल्टेज हैं। व्यापक वोल्टेज चिप्स भी हैं, लेकिन नीचे की रेखा आपकी चिप के लिए डेटा शीट की जांच करती है।
hildred

0

एडैफ़र्ट लेख कहता है

हालांकि नीचे दिए गए कोड में GPIO कनेक्टर के 18 पिन को एक सक्षम पिन के रूप में उपयोग किया जा रहा है, यह केवल L293D का उपयोग करते समय आवश्यक है।

यदि एल ई डी प्रकाश कर रहे हैं, और आपने दोहरी जांच की है कि आपके पास लाल तार पर 5 वी है, तो यह मोटर के दोषपूर्ण होने का संदेह करने का समय है।

मोटर डिस्कनेक्ट होने के साथ, प्रत्येक तार और लाल तार के बीच प्रतिरोध की जांच करने के लिए एक मल्टीमीटर का उपयोग करें। वे सभी के बारे में एक ही होना चाहिए


मैंने enable_pin पर टिप्पणी की है और किसी अलग मोटर का उपयोग किया है, जिसका कोई लाभ नहीं है। मैं आज म्यूटिमीटर दृष्टिकोण की कोशिश कर रहा हूं - आपकी मदद के लिए धन्यवाद
स्टीव फ्रेंच

मैंने प्रतिरोध की जाँच की - प्रतिरोध में कोई अंतर नहीं - बहुत खराब।
स्टीव फ्रेंच

लाल तार पर 5v के परीक्षण का एक अच्छा तरीका क्या होगा? मैं सीधे वहाँ पर मल्टीमीटर डालने की कोशिश की है, लेकिन कुछ भी रजिस्टर करने के लिए पल्स काफी लंबे समय तक नहीं लगता है।
स्टीव फ्रेंच

0

सबसे पहले, आप किस बिजली की आपूर्ति का उपयोग कर रहे हैं? मेरे द्वारा देखे जाने वाले विन्यास में, वही Vcc का उपयोग RPi, मोटर और बोर्ड (जम्पर शॉर्टेड) ​​को चलाने के लिए किया जाता है। मुझे आश्चर्य है कि रास्पबेरी को रीसेट नहीं करता है (+5 वी से बहुत अधिक ड्राइंग ऐसा करने के लिए जाता है), लेकिन मुझे वास्तव में मोटर की विशेषताओं का पता नहीं है - इसलिए, शायद?

क्या आप मोटर से रेड को बिजली की आपूर्ति से 5 वी और जीएनडी को क्रम में 4 टर्मिनलों से जोड़कर (न्यूनतम, एकल चरण) स्थानांतरित करने के लिए स्टेपर प्राप्त कर सकते हैं?

यदि एल ई डी ऊपर प्रकाश करता है, और मोटर नहीं चलती है, तो यह वास्तव में ऐसा लगता है जैसे यह पर्याप्त वर्तमान नहीं हो रहा है। यदि यह मामला है, या तो एक मजबूत बिजली की आपूर्ति प्राप्त करें, या (अनुशंसित) मोटर को अलग करने के लिए एक अलग पीएसयू जोड़ें - जम्पर को हटा दें और इसके स्थान पर Vcc को सबसे बाहरी पिन संलग्न करें, और GND को ब्रेडबोर्ड पर उसी लाइन से कनेक्ट करें "-" तार (सामान्य जमीन, जो पहले से ही वहां नहीं है, उसे डिस्कनेक्ट न करें)

(एक छोटी सी संभावना है कि बोर्ड में भी कुछ गड़बड़ है। क्या आप बोर्ड के रिवर्स साइड की एक अच्छी तस्वीर प्रदान कर सकते हैं?) (मिलाप पक्ष)


मैं सीधे जाने के लिए स्टेपर मोटर प्राप्त कर सकता हूं - मैं अब दूसरी विधि की कोशिश कर रहा हूं।
स्टीव फ्रेंच

बस vcc विधि की कोशिश की - एक ही परिणाम। हो सकता है कि इन बोर्डों को किसी कारण से पीआई के साथ इस्तेमाल नहीं किया जा सके।
स्टीव फ्रेंच

यदि एलईडी सही रोशनी करती है, तो बोर्ड सही काम करता है। या तो मोटर दोषपूर्ण है या इसे पर्याप्त वर्तमान नहीं मिलता है (या, बल्कि संभावना नहीं है, मोटर पक्ष पर तारों / कनेक्टर क्षतिग्रस्त हैं।) क्या आपने कोशिश की है कि अगर मोटर बोर्ड का उपयोग किए बिना चलती है, तो बस सीधे अपने संपर्कों से बिजली कनेक्ट करें?
एसएफ।

0

AdaFruit कोड और तुम्हारा को देखकर, ऐसा लगता है कि चरण अनुक्रम गलत है, विशेष रूप से ऐसा लगता है कि आपको एक ही समय में एक ही समय में दो पिन ड्राइव करने की आवश्यकता है।

मुझे लगता है कि निम्नलिखित अनुक्रम को AdaFruit कोड के आधार पर काम करना चाहिए:

# Define simple sequence
StepCount1 = 4
Seq1 = []
Seq1 = range(0, StepCount1)
Seq1[0] = [1,0,1,0]
Seq1[1] = [0,1,1,0]
Seq1[2] = [0,1,0,1]
Seq1[3] = [1,0,0,1]

मैंने कॉपी किया होगा कि गलती से प्रोग्राम का वास्तविक अनुक्रम आपके पास है।
फ्रांसीसी में स्टीव फ्रेंच

0

मैं यहाँ गाइड का अनुसरण कर रहा हूँ http://www.raspberrypi-spy.co.uk/2012/07/stepper-motor-control-in-python/ , GPIO पिनों की अच्छी समूहीकरण, लेकिन स्टैकएक्सचेंज में समाप्त हो गया क्योंकि मोटर कुछ नहीं कर रहा था। सिवाय इसके था। जब उठाया गया तो मैं एक छोटा "दिल की धड़कन" महसूस कर सकता था जब हर बार एलईडी बदल जाती थी, तो मैंने वेटटाइम पैरामीटर को 0.5 से छोटे और छोटे मानों में बदल दिया, जब तक कि 0.001 ने 8.5 सेकंड में पूर्ण रोटेशन की अनुमति नहीं दी।

लेकिन मैंने अनुक्रम प्रकार को 2 (निर्माताओं) में बदल दिया क्योंकि टाइप 1 कभी-कभी काम करने वाले "दिल की धड़कन" के साथ भी मोटर को रोक देता था।

मैंने कोड को बदल दिया है इसलिए मैं उन चरणों की संख्या का परीक्षण कर सकता हूं जो एक पूर्ण रोटेशन ने लिया और कमांड लाइन स्विच को दक्षिणावर्त या दक्षिणावर्त घुमाने के लिए बनाया।

0.001 पर वेटटाइम के साथ एक परीक्षण सीडब्ल्यू चल रहा है और फिर उसी संख्या में सीडीडब्ल्यू का उपयोग करके थोड़ी मात्रा में त्रुटि का उत्पादन किया गया है, जहां यह शुरू नहीं हुआ था।

0.01 तक वेट्टी टाइम सेट करने से मुझे 4100 चरणों के बार-बार निष्पादन की अनुमति मिली या तो CW या CCW हमेशा एक ही बिंदु पर समाप्त हुए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.