프로젝트에 Arduino의 아날로그 핀을 디지털로 사용할 수 있습니까?

저는 Arduino를 처음 사용하고 Arduino Uno를 사용하고 있습니다. 제가 수행 한 프로젝트에서는 디지털 핀만 사용했습니다.

스테퍼 모터를 사용하는 소형 차량을 만들고 있습니다. 이 차량의 모터를 제어 할 핀이 부족합니다. 아날로그 핀은 무엇입니까? 아날로그 핀을 사용하여 Arduino에 연결하는 나머지 스텝 모터를 제어 할 수 있습니까? 아니면이 장치를 제어하려면 Arduino Uno보다 큰 Arduino를 구입해야합니까?

Answer

예, Arduino의 아날로그 핀을 디지털 출력으로 사용할 수 있습니다.

이 내용은 핀 매핑 섹션의 Arduino 입력 핀 문서 에 설명되어 있습니다.

핀 매핑
아날로그 핀은 별칭 A0 (아날로그 입력 0의 경우), A1 등을 사용하여 디지털 핀과 동일하게 사용할 수 있습니다. 예를 들어 코드는 다음과 같습니다. 아날로그 핀 0을 출력으로 설정하고 HIGH로 설정하려면 :
pinMode (A0, OUTPUT);
digitalWrite (A0, HIGH);

댓글

  • 예 … 죄송합니다. 글을 올렸을 때 늦어서 졸려서 집중력이 떨어 졌던 것을 기억합니다. 댓글을 삭제했습니다.

답변

디지털 쓰기에는 항상 아날로그 핀을 사용할 수 있습니다.

  • 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 핀은 다음과 같을 수 있습니다. 아날로그 출력에 사용됩니다. 핀이 부족한 경우 멀티플렉싱 을 사용하여 더 많이 만들 수 있습니다. 다른 아두 이노를 구할 필요는 없습니다.

코멘트

  • AnalogWrite ()는 0에서 5 사이의 전압을 출력하지 않습니다 (기한 제외)! AnalogWrite ()는 신호의 펄스 폭 변조 만 변경합니다. 출력 전압은 여전히 5 볼트 (또는 VCC가 무엇이든)입니다. " 아날로그 "로 표시된 핀은 0V 또는 5V 만 출력합니다. 변수가 아니고 참고
  • @ 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.

Answer

Arduino의 아날로그 핀은 뾰족한 디지털 핀으로 사용할 수 있습니다. Anindo Ghosh에 의해 밖으로.

그러나 스테퍼 모터를 제어하기위한 핀이 부족하더라도 실제로 다른 보드를 구입할 필요가 없습니다. 레지스터 또는 멀티플렉서와 같은 중간 구성 요소를 사용하여 적절한 스테퍼 모터를 제어 할 수 있습니다.

답변

적당 할 수 있고 스테퍼 작업을 매우 쉽게 만들고 싶은 경우 em> Easy 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); } 

또한 동일한 페이지에서 두 개의 모터를 실행하는 몇 가지 예제 코드가 있습니다. 가속 / 감속 기능이있는 easystepper 보드 : 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(); } 

댓글

  • 이것은 실제로 질문에 대한 답변이 아닙니다 '. 댓글로 작성하는 것이 더 좋습니다. 질문에 답할 수 있도록 구체화 하시겠습니까?
  • @AnnomusPerson : EasyDriver 스테퍼 모터 드라이버 는 재고 및 모든 재고가있는 활성 제품에 나타납니다.

답변

댓글을 달 수 없기 때문에 답변으로 추가

간단히 답변하려면 가능합니다. 방법에 대한 Anindo Ghosh의 답변 을 참조하세요.

참고 그러나 Arduino Nano 의 경우 핀 A6 및 A7은 아날로그 전용입니다. 디지털 모드에서는 사용할 수 없습니다.

댓글

  • 이 답변에는 링크 만 포함되어 있습니다. 링크 / 웹 사이트가 쓸모 없게되어이 답변이 쓸모 없게 될 수 있습니다. 링크를 유지하되 웹 사이트의 관련 부분을 요약하거나 인용하십시오.
  • @Huisman 공정하게 말하면 EE.SE의 다른 질문에 대한 링크는 더 이상 사용되지 않거나 액세스 할 수 없게 될 가능성이 적습니다. 그러나 간단한 요약은 확실히 답을 개선 할 것입니다.
  • @JYelton 나는 링크를 따르지 않았지만 ' 당신은 ' 맞습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다