Машинка живет сама по себе.

lekha777
lekha777 аватар
Offline
Зарегистрирован: 19.04.2016

Всем привет! Я новичек в ардуине. Вообщем у меня такая ситуация: машинка с двумя движками пульт от 2ой соньки, L298,arduino nano. После включения она начинает ехать вперед не смотря на то что пульт даже не включен, даже если его совсем отключить от ардуинки все ровно она едет, глушит моторы только отсоединение от драйвера контактов ена и енб. Прошу заметить раньше она работала потом почемуто затупила и все. драйвер двигателя и ардуинку менял, скетч менял(у меня их два разных, т.к. писать я их не умею они чужие но подходят) из-за чего она могла затупить так??? вот скетч на всякий случай:#include <PS2X_lib.h>  //for v1.6

PS2X ps2x;
int PS2 = 0;
 
#define  in1  10   // direction pin 1
#define  in2  4    // direction pin 2
#define  ena  5    // PWM pin to change speed
#define  in3  7    // direction pin 1
#define  in4  6    // direction pin 2
#define  enb  3    // PWM pin to change speed
  
byte L_speed;      // forward speed
byte R_speed;      // forward speed
byte analogL;
byte analogR;
  
void setup(){
  PS2 = ps2x.config_gamepad(13,11,8,12, true, true);   //Настройка выводов: (clock, command, attention, data, true, true)
  pinMode(in1, OUTPUT);      // connection to L298n
  pinMode(in2, OUTPUT);      // connection to L298n
  pinMode(ena, OUTPUT);      // connection to L298n
  pinMode(in3, OUTPUT);      // connection to L298n
  pinMode(in4, OUTPUT);      // connection to L298n
  pinMode(enb, OUTPUT);      // connection to L298
  Serial.begin(9600);
 
}
 
void loop(){
 
  ps2x.read_gamepad(false, false);
  analogL= ps2x.Analog(PSS_LY);
  analogR= ps2x.Analog(PSS_RY);
  Serial.print(analogL);
  Serial.print("   ");
  Serial.println(analogR);
   
 
  //==========================================================левый мотор
 
  if (analogL == 128) analogWrite(ena, 0);
 
  if (analogL > 128){
 
    L_speed = (analogL*2)-255;
 
    digitalWrite(in1, LOW);
 
    digitalWrite(in2, HIGH);
 
    analogWrite(ena, L_speed);
 
  }
 
  if (analogL < 128){
 
    L_speed = 255-(analogL*2);
 
    digitalWrite(in1, HIGH);
 
    digitalWrite(in2, LOW);
 
    analogWrite(ena, L_speed);
 
  }
  //==========================================================правый мотор
 
  if (analogR == 128) analogWrite(enb, 0);
 
  if (analogR > 128){
 
    R_speed = (analogR*2)-255;
 
    digitalWrite(in3, LOW);
 
    digitalWrite(in4, HIGH);
 
    analogWrite(enb, R_speed);
 
  }
 
  if (analogR < 128){
 
    R_speed = 255-(analogR*2);
 
    digitalWrite(in3, HIGH);
 
    digitalWrite(in4, LOW);
 
    analogWrite(enb, R_speed);
 
  }
 
   delay(50);
 
}
 
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

lekha777 пишет:

Машинка живет сама по себе

Это же прекрасно! Вспомните Стругацких:

«... проработала эта машина ровно четыре минуты. Ее выключили, зацементировали все входы и выходы, отвели от нее энергию, заминировали и обнесли колючей проволокой. Самой настоящей ржавой колючей проволокой - хотите верьте, хотите нет. 
- А в чем, собственно, дело? - спросил Банин. 
- Она начала вести себя, - сказал Горбовский. 
- Не понимаю. 
- И я не понимаю, но ее едва успели выключить. 
- А кто-нибудь понимает? 
- Я говорил с одним из ее создателей. Он взял меня за плечо, посмотрел мне в глаза и произнес только: "Леонид, это было страшно"»

Аркадий и Борис Стругацкие "Далекая Радуга"

А если по теме, то прежде, чем писать, пожалйста ознакомьтесь с правилами форума.