Машинка на L293D и ИК пульте

Тимофей Шишкин
Offline
Зарегистрирован: 09.01.2020

Всем добрый день!!1

Помогите пожалуйста с проектом на ардуино 

Есть скетч для управления 2 коллекторными моторами

#include <IRremote.h> 
#define POWER_KEY 0x61D66897 // коды пульта ДУ
#define KEY1 0x61D6D02F  // вперед 
#define KEY2 0x61D6A857 // назад
#define KEY3 0x61D618E7  // влево
#define KEY4 0x61D630CF  // вправо
#define M1A 2 
#define M1B 3 
#define M2A 1
#define M2B 4
#define M4A 0
#define M4B 6
#define M3A 5
#define M3B 7
#define PWM_M1 11
#define PWM_M2 3
#define PWM_M3 6
#define PWM_M4 5
#define SER1 10
#define SER2 9
#define PWRON 7
IRrecv irrecv(SER1);
Shift595 Shifter(8, 12, 4, 1);
decode_results results;
 /* определяем два массива с перечислением пинов для каждого мотора */
unsigned char RightMotor[3] =  {M3A, M3B, PWM_M3};
unsigned char LeftMotor[3] = {M4A, M4B, PWM_M4}; 
long prestro1Millis = 0;        // до мигания ( в целом переменная времени)
int key;
int v= 10;
void setup()
  irrecv.enableIRIn();
  pinMode(PWRON, OUTPUT); 
  digitalWrite(PWRON, LOW); // включение 74HC595
  pinMode(PWM_M1, OUTPUT); // включение L293D
  pinMode(PWM_M2, OUTPUT); 
  pinMode(PWM_M3, OUTPUT); 
  pinMode(PWM_M4, OUTPUT); 
  digitalWrite(PWM_M1, HIGH);
  digitalWrite(PWM_M2, HIGH);
  digitalWrite(PWM_M3, HIGH);
  digitalWrite(PWM_M4, HIGH);
}
void loop(){
  unsigned long curstro1Millis = millis();  // устанавливаем время в сейчас
  if ((curstro1Millis - prestro1Millis) > 200) // проверяем интервал
  {
  if (irrecv.decode(&results)) {
        if (results.value == KEY1)
          key = 1;
         else if (results.value == KEY2)
          key = 2;
         else if (results.value == KEY3)
          key = 3;
           else if (results.value == KEY4)
          key = 4;
           else if (results.value == POWER_KEY)
           {
            key = 0;
            v= 10;
           }
          if (results.value == 0xFFFFFFFF)
          {
            key = key;
            v= v+10;
          }
        irrecv.resume();// Receive the next value
    }
    else
    {
      key = 0;
      v= 10;
     }
    prestro1Millis = curstro1Millis;
    } 
      if (key == 1){ 
        Motor (RightMotor, v);
        Motor (LeftMotor, v);
     }
     else if (key == 2){
        Motor (RightMotor, -v);
        Motor (LeftMotor, -v);     
     }
     else if (key == 3){
        Motor (RightMotor, -v);
        Motor (LeftMotor, v);
     }
     else if (key == 4){
        Motor (RightMotor, v);
        Motor (LeftMotor, -v);  
     } 
     else if (key == 0) {       
        Motor (RightMotor,0);
        Motor (LeftMotor,0);  
     }
}
   void Motor(unsigned char * motor, int v) {
    if (v>100) v=100;
    if (v<-100) v=-100;
    if (v>0) {
      Shifter.setRegisterPin(motor[0], LOW);
      Shifter.setRegisterPin(motor[1], HIGH);
      digitalWrite(motor[2], v*2.55);
      Serial.println(motor[0]);
    }
    else if (v<0) {
      Shifter.setRegisterPin(motor[0], HIGH);
      Shifter.setRegisterPin(motor[1], LOW);
      digitalWrite(motor[2], (-v)*2.55);
    }
    else {
      Shifter.setRegisterPin(motor[0], LOW);
      Shifter.setRegisterPin(motor[1], LOW);
      digitalWrite(motor[2], 0);
    } 
}
Его нужно переделать так чтобы можно было управлять 4 коллекторными моторами через L293D
Кто поможет????
 
Тимофей Шишкин
Offline
Зарегистрирован: 09.01.2020

Нужно срочно

помогите!!!!

 

b707
Онлайн
Зарегистрирован: 26.05.2017

вставьте код по правилам форума

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Тимофей Шишкин пишет:

Нужно срочно

Насколько срочно? Прямо срочно-срочно? А чё ножкой не топнули?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Тимофей Шишкин пишет:

Нужно срочно

помогите!!!!

Очень срочно???!!! Тогда за деньги!!! Туда идите!!!

Прямо моск разорвал.