Машинка на L293D и ИК пульте
- Войдите на сайт для отправки комментариев
Сб, 30/05/2020 - 16:20
Всем добрый день!!1
Помогите пожалуйста с проектом на ардуино
Есть скетч для управления 2 коллекторными моторами
#include <Shift595.h> // https://sites.google.com/site/shift595arduino/downloads
#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
Кто поможет????
Нужно срочно
помогите!!!!
вставьте код по правилам форума
Нужно срочно
Насколько срочно? Прямо срочно-срочно? А чё ножкой не топнули?
Нужно срочно
помогите!!!!
Очень срочно???!!! Тогда за деньги!!! Туда идите!!!
Прямо моск разорвал.