2017-03-01 1 views
0

ここでコードは実行されますが、エラーはありません。私のセットアップ: 1.ラズベリーパイB + 2. L293D DCモータ 3. 2のDCモータ 4.利用wiringPiライブラリラズベリーパイB +、l293dと2つのDCモーター、PWMを使用した可変速度、c/C++のコードですが、動作しません。

例1:

#include <iostream> 
#include <wiringPi.h> 
#include <softPwm.h> 

using namespace std; 

// motor pins (pwm) 
// motor left 
int motor_l_u = 26; 
int motor_l_v = 27; 

// motor right 
int motor_r_u = 28; 
int motor_r_v = 29; 

// pwm 
int pwmValue = 1023; 
int pwmValueInit = 0; 

int main(void) { 

if (wiringPiSetup() == -1) 
    return -1; 

if (wiringPiSetupSys() == -1) 
    return -1; 

pinMode(motor_l_u, OUTPUT); 
pinMode(motor_l_v, OUTPUT); 
pinMode(motor_r_u, OUTPUT); 
pinMode(motor_r_v, OUTPUT); 
digitalWrite(motor_l_u, LOW); // at start turn off the GPIO 
digitalWrite(motor_l_v, LOW); // at start turn off the GPIO 
digitalWrite(motor_r_u, LOW); // at start turn off the GPIO 
digitalWrite(motor_r_v, LOW); // at start turn off the GPIO 
pinMode(motor_l_u, PWM_OUTPUT); 
pinMode(motor_l_v, PWM_OUTPUT); 
pinMode(motor_r_u, PWM_OUTPUT); 
pinMode(motor_r_v, PWM_OUTPUT); 

// prepare GPIOs for motors 
softPwmCreate(motor_l_u, pwmValueInit, pwmValue); 
softPwmCreate(motor_l_v, pwmValueInit, pwmValue); 

softPwmCreate(motor_r_u, pwmValueInit, pwmValue); 
softPwmCreate(motor_r_v, pwmValueInit, pwmValue); 

// acceleration forward 
for (int var = 0; var < pwmValue; ++var) { 
    if (debug == 1) { 
     cout << "set speed to " << var << endl; 
    } 
    softPwmWrite(motor_r_u, (pwmValue - var)); 
    softPwmWrite(motor_r_v, var); 

    softPwmWrite(motor_l_u, var); 
    softPwmWrite(motor_l_v, (pwmValue - var)); 
    delay(10); 
} 
// acceleration backward 
for (int var = 0; var < pwmValue; ++var) { 
    if (debug == 1) { 
     cout << "set speed to " << var << endl; 
    } 
    softPwmWrite(motor_r_u, var); 
    softPwmWrite(motor_r_v, (pwmValue - var)); 

    softPwmWrite(motor_l_u, (pwmValue - var)); 
    softPwmWrite(motor_l_v, var); 
    delay(10); 
} 
return -1; 
} 

私のもう一つの例がそうである、ありません車輪の回転をコンパイルする際のエラー。

#include <iostream> 
#include <wiringPi.h> 
#include <softPwm.h> 

using namespace std; 

// motor pins (pwm) 
// motor left 
int motor_l_u = 26; 
int motor_l_v = 27; 

// motor right 
int motor_r_u = 28; 
int motor_r_v = 29; 

// pwm 
int pwmValue = 1023; 
int pwmValueInit = 0; 

int main(void) { 

if (wiringPiSetup() == -1) 
    return -1; 

if (wiringPiSetupSys() == -1) 
    return -1; 

pinMode(motor_l_u, OUTPUT); 
pinMode(motor_l_v, OUTPUT); 
pinMode(motor_r_u, OUTPUT); 
pinMode(motor_r_v, OUTPUT); 
digitalWrite(motor_l_u, LOW); // at start turn off the GPIO 
digitalWrite(motor_l_v, LOW); // at start turn off the GPIO 
digitalWrite(motor_r_u, LOW); // at start turn off the GPIO 
digitalWrite(motor_r_v, LOW); // at start turn off the GPIO 
pinMode(motor_l_u, PWM_OUTPUT); 
pinMode(motor_l_v, PWM_OUTPUT); 
pinMode(motor_r_u, PWM_OUTPUT); 
pinMode(motor_r_v, PWM_OUTPUT); 

// prepare GPIOs for motors 
pwmWrite(motor_l_u, pwmValueInit); 
pwmWrite(motor_l_v, pwmValueInit); 

pwmWrite(motor_r_u, pwmValueInit); 
pwmWrite(motor_r_v, pwmValueInit); 

// acceleration forward 
for (int var = 0; var < pwmValue; ++var) { 
    if (debug == 1) { 
     cout << "set speed to " << var << endl; 
    } 
    pwmWrite(motor_r_u, (pwmValue - var)); 
    pwmWrite(motor_r_v, var); 

    pwmWrite(motor_l_u, var); 
    pwmWrite(motor_l_v, (pwmValue - var)); 
    delay(10); 
} 
// acceleration backward 
for (int var = 0; var < pwmValue; ++var) { 
    if (debug == 1) { 
     cout << "set speed to " << var << endl; 
    } 
    pwmWrite(motor_r_u, var); 
    pwmWrite(motor_r_v, (pwmValue - var)); 

    pwmWrite(motor_l_u, (pwmValue - var)); 
    pwmWrite(motor_l_v, var); 
    delay(10); 
} 
return -1; 
} 

私は:-(私の問題を見ていないのpythonコードを投稿していないしてください

+0

間違っていました。。 - lpthread " – david

答えて

0

このセクションでは、「G ++ test_motors_2.cpp -o test_motors_2 -lwiringPiでコンパイル

pinMode(motor_l_u, OUTPUT); 
pinMode(motor_l_v, OUTPUT); 
pinMode(motor_r_u, OUTPUT); 
pinMode(motor_r_v, OUTPUT); 
digitalWrite(motor_l_u, LOW); // at start turn off the GPIO 
digitalWrite(motor_l_v, LOW); // at start turn off the GPIO 
digitalWrite(motor_r_u, LOW); // at start turn off the GPIO 
digitalWrite(motor_r_v, LOW); // at start turn off the GPIO 
pinMode(motor_l_u, PWM_OUTPUT); 
pinMode(motor_l_v, PWM_OUTPUT); 
pinMode(motor_r_u, PWM_OUTPUT); 
pinMode(motor_r_v, PWM_OUTPUT); 
関連する問題