방금 Arduino를 배우기 시작했습니다. 나는 자율성을 얻고 자하는 로봇과 손을 잡는 것에 대해 생각했다. 나는 DC 모터의 모터 컨트롤을 이해하려고 애써왔다. 나는 자원을 찾기 위해 노력했지만 적절하게 내 문제를 설명하는 것을 찾을 수 없다. 나는 모터의 코드를 쓰는 방법을 잘못 이해하고 있음을 이해할 수 없다 (comp sci undergrad). 단지 테스트를 위해 모터를 실행하기위한Arduino Uno DC- 모터 컨트롤러 개념 설명
내 코드입니다 : 난 그냥 아무 소용이 일정한 속도로 모터를 실행하려고
// MotorA
int dir1PinA = 7;
int dir2PinA = 5;
int speedPinA = 6;
//motor B
int dir1PinB = 4;
int dir2PinB = 2;
int speedPinB = 3;
void setup() {
//Serial.begin(9600);
pinMode (dir1PinA, OUTPUT);
pinMode (dir2PinA, OUTPUT);
pinMode (speedPinA,OUTPUT);
pinMode (dir1PinB, OUTPUT);
pinMode (dir2PinB, OUTPUT);
pinMode(speedPinB, OUTPUT);
// put your setup code here, to run once:
}
void loop() {
analogWrite(speedPinA, 500);
analogWrite(speedPinB, 500);
digitalWrite (dir1PinA, LOW);
digitalWrite (dir2PinA, HIGH);
digitalWrite (dir1PinB,HIGH);
digitalWrite (dir2PinB, LOW);
// put your main code here, to run repeatedly:
}
. 같은 방법으로 모터를 제어하는 예제 코드를 발견했지만 루프와 변수가 추가되었습니다.speed
. 작동
테스트 코드는 다음과 같습니다
//Motor A
int dir1PinA = 7;
int dir2PinA = 5;
int speedPinA = 6;
//motor B
int dir1PinB = 4;
int dir2PinB = 2;
int speedPinB = 3;
unsigned long time;
int speed;
int dir;
void setup()
{
pinMode (dir1PinA, OUTPUT);
pinMode (dir2PinA, OUTPUT);
pinMode (speedPinA, OUTPUT);
pinMode (dir1PinB, OUTPUT);
pinMode (dir2PinB, OUTPUT);
pinMode (speedPinB, OUTPUT);
time = millis();
speed = 0;
dir = 1;
}
void loop()
{
analogWrite (speedPinA, speed);
analogWrite (speedPinB, 555 - speed);
// set direction
if (1 == dir)
{
digitalWrite (dir1PinA , LOW);
digitalWrite (dir2PinA, HIGH);
digitalWrite (dir1PinB, HIGH);
digitalWrite (dir2PinB, LOW);
}
else
{
digitalWrite (dir1PinA, HIGH);
digitalWrite (dir2PinA, LOW);
digitalWrite (dir1PinB, LOW);
digitalWrite (dir2PinB, HIGH);
}
if (millis() - time> 5000)
{
time = millis();
speed += 20;
if (speed> 555) {speed = 0;}
if (1 == dir)
{dir = 0;}
else
{dir = 1;}
}
}
지금 내가 거기 루프와 여분의 변수이지만 이론적으로 그들은 단지 일정한 속도로 모터를 실행하는 데 필요한해서는 안 이해합니다. 제 질문은 그 것입니다
두 번째에 있지만 모터의 실행에 절대적으로 중요합니다 상단 스케치에서 무엇을 놓치고 있습니까?
나는 이것이 멍청한 순간이지만 사전에 사과하고 싶습니다.하지만 논리적 인 지식을 찾지 못했습니다.
이것은 C++ 코드가 아닙니다. C++ 태그가있는 이유는 무엇입니까? 여기에 태그는 구체적인 의미를 가지고 있으며 익숙한 이름을 갖고 있거나주의를 끌기 위해 무작위로 추가하는 것은 적절하지 않습니다. 누락 된 부분은 첫 번째 코드의 주석에 분명하게 명시되어 있습니다. 특별히 * 반복적으로 언급하는 것에 유의하십시오. –