क्या मैं डिजिटल के रूप में अपनी परियोजना के लिए Arduino पर एनालॉग पिन का उपयोग कर सकता हूं?


27

मैं Arduino का उपयोग करने के लिए नया हूं, और मेरे पास एक Arduino Uno है। मेरे द्वारा की गई परियोजनाओं के लिए, मैंने केवल डिजिटल पिन का उपयोग किया है।

मैं एक छोटा वाहन बना रहा हूं जिसमें स्टेपर मोटर्स का उपयोग किया गया है। मैं इस वाहन के लिए मोटर्स को नियंत्रित करने के लिए पिन से बाहर चला गया हूं। एनालॉग पिन के लिए क्या हैं? क्या मेरे लिए संभव है कि मैं पिनडू के बाकी हिस्सों को नियंत्रित करने के लिए एनालॉग पिन का उपयोग करूं, जिसे मैं अरडूइनो से जोड़ता हूं, या क्या मुझे इस गर्भनिरोधक को नियंत्रित करने के लिए अरडूइनो ऊनो से बड़ा अरुदिनो खरीदना होगा?

जवाबों:


22

हां, Arduino पर एनालॉग पिन डिजिटल आउटपुट के रूप में उपयोग किया जा सकता है।

यह पिन मैपिंग अनुभाग में Arduino इनपुट पिन प्रलेखन में प्रलेखित है :

पिन मैपिंग
एनालॉग पिन का उपयोग डिजिटल रूप से डिजिटल पिन के लिए किया जा सकता है, उपनाम A0 (एनालॉग इनपुट 0 के लिए), A1 आदि का उपयोग करके। उदाहरण के लिए, कोड इस तरह दिखेगा पिन पिन को आउटपुट में सेट करने के लिए, और सेट करने के लिए। यह उच्च:
pinMode (A0, OUTPUT);
digitalWrite (A0, HIGH);


हाँ क्षमा करें। मुझे याद है कि जब मैंने पोस्ट किया था तब तक देर हो चुकी थी और मुझे नींद आ रही थी और एकाग्रता खो रही थी। मैंने टिप्पणी हटा दी।
अनाम पेंगुइन

27

आप डिजिटल लेखन के लिए हमेशा एनालॉग पिन का उपयोग कर सकते हैं।

  • digitalRead()सभी पिन पर काम करता है। यह प्राप्त एनालॉग मूल्य को केवल गोल करेगा और इसे आपके सामने प्रस्तुत करेगा। यदि analogRead(A0)512 से अधिक या बराबर है, digitalRead(A0)तो 1 होगा, और 0 होगा।
  • digitalWrite()सभी पिन पर काम करता है, की अनुमति के साथ पैरामीटर 0 या 1. digitalWrite(A0,0)रूप में ही है analogWrite(A0,0), और digitalWrite(A0,1)के रूप में ही हैanalogWrite(A0,255)
  • analogRead()केवल एनालॉग पिंस पर काम करता है। यह 0 और 1023 के बीच कोई भी मूल्य ले सकता है।
  • analogWrite()सभी एनालॉग पिन और सभी डिजिटल PWM पिन पर काम करता है । आप इसे 0 और 255 के बीच किसी भी मूल्य की आपूर्ति कर सकते हैं।

एनालॉग पिन आपको एनालॉग वैल्यू पढ़ने / लिखने देते हैं - मूल रूप से, 0 या 5 (जैसे डिजिटल के साथ) का वोल्टेज देने के बजाय, वे 0 और 5 के बीच वोल्टेज की एक सीमा दे सकते हैं (इनपुट और आउटपुट दोनों के रूप में)। ध्यान दें कि एनालॉग आउटपुट के दौरान वोल्टेज केवल मल्टीमीटर के साथ मनाया वोल्टेज है। वास्तव में, एनालॉग पिन एक आउटपुट प्राप्त करने के लिए 0V और 5V सिग्नल की दालों को भेजता है जो "एनालॉग" (यह PWM है) दिखता है।

पिन की संख्या के बारे में: ध्यान रखें कि PWM पिन का उपयोग एनालॉग आउटपुट के लिए किया जा सकता है। यदि आप पिन से बाहर निकलते हैं, तो आप अधिक बनाने के लिए मल्टीप्लेक्सिंग का उपयोग कर सकते हैं । एक और Arduino प्राप्त करना आवश्यक नहीं है।


8
एनालॉग वाइट () 0 से 5 के बीच (नियत को छोड़कर) के बीच वोल्टेज का उत्पादन नहीं करता है! AnalogWrite () केवल सिग्नल की पल्स चौड़ाई मॉडुलन को बदलता है। आउटपुट वोल्टेज अभी भी 5volts (या जो भी VCC है)। "एनालॉग" चिह्नित पिंस केवल 0V या 5V आउटपुट करेगा। वे परिवर्तनशील नहीं हैं और ध्यान दें
बाल्डेंगीर

1
@ JamesC4S: अच्छी बात, संपादित। धन्यवाद :)
मनीषीर्थ

काफी बेहतर! :)
बाल्डेंगिनर

DigitalRead () और digitalWrite () एनालॉग पिंस स्लोअर पर हैं? यदि digitalRead () राउंड वैल्यू है, तो मैं सोच सकता हूँ कि डिजिटल पिन पर digitalRead () की तुलना में यह कितना धीमा है?
जॉक्ल

यह बहुत संक्षिप्त और जानकारीपूर्ण है, धन्यवाद, हालांकि मैं मानता हूं कि एक छोटी सी त्रुटि है। ठीक डॉक्स के अनुसार : the Arduino (ATmega) will report HIGH if: a voltage greater than 3.0V is present at the pin (5V boards)जो इस पोस्ट में कथन का खंडन करता है If analogRead(A0) is greater than or equal to 512, digitalRead(A0) will be 1, else 0
डॉटान्चेन

6

Arduino पर एनालॉग पिंस का उपयोग डिजिटल पिंस के रूप में किया जा सकता है, जैसा कि अनिंदो घोष ने बताया है।

हालांकि, भले ही आप अपने स्टेपर मोटर्स को नियंत्रित करने के लिए पिन से बाहर निकलते हैं, आपको वास्तव में एक और बोर्ड खरीदने की आवश्यकता नहीं है। आप बस उचित स्टेपर मोटर को नियंत्रित करने के लिए एक रजिस्टर या एक मल्टीप्लेक्स जैसे एक मध्यवर्ती घटक का उपयोग कर सकते हैं।


4

आप इसे बर्दाश्त कर सकते हैं, और आप वास्तव में एक स्टेपर के साथ काम बनाना चाहते हैं सुपर आसान की जाँच आसान Stepper । मैं बहुत प्रसन्न हुआ।

से उदाहरण कोड पेज

http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-080645.jpg



Example 1: Basic Arduino setup
This is the most basic example you can have with an Arduino, an Easy Driver, and a stepper motor. Connect the motor's four wires to the Easy Driver (note the proper coil connections), connect a power supply of 12V is to the Power In pins, and connect the Arduino's GND, pin 8 and pin 9 to the Easy Driver.

Then load this sketch and run it on your Arduino or chipKIT:
void setup() {                
  pinMode(8, OUTPUT);     
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}

void loop() {
  digitalWrite(9, HIGH);
  delay(1);          
  digitalWrite(9, LOW); 
  delay(1);          
}

एक ही पृष्ठ से, यहां दो उदाहरण कोड को दो ईज़ीस्टीपर बोर्ड के साथ चलाने के लिए है, त्वरण / मंदी के साथ: http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414- 081018.jpg


#include <AccelStepper.h>

// Define two steppers and the pins they will use
AccelStepper stepper1(1, 9, 8);
AccelStepper stepper2(1, 7, 6);

int pos1 = 3600;
int pos2 = 5678;

void setup()
{  
  stepper1.setMaxSpeed(3000);
  stepper1.setAcceleration(1000);
  stepper2.setMaxSpeed(2000);
  stepper2.setAcceleration(800);
}

void loop()
{
  if (stepper1.distanceToGo() == 0)
  {
    delay(500);
    pos1 = -pos1;
    stepper1.moveTo(pos1);
  }
  if (stepper2.distanceToGo() == 0)
  {
    delay(500);
    pos2 = -pos2;
    stepper2.moveTo(pos2);
  }
  stepper1.run();
  stepper2.run();
}

यह वास्तव में सवाल का जवाब नहीं देता है; यह एक टिप्पणी के रूप में बेहतर होगा। क्या आप इसे मांस दे सकते हैं ताकि यह प्रश्न का उत्तर दे सके?
मनिशिथ

@AnnonomusPerson: ईज़ीड्राइवर स्टेपर मोटर चालक एक सक्रिय उत्पाद को स्टॉक और सब कुछ में दिखाई देता है।
20
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.