Робот-манипулятор на Arduino
- Войдите на сайт для отправки комментариев
Пт, 01/04/2016 - 19:16
Добрый день хочу создать робот манипулятор на шаговых двигателях по управлению от пульта. Идея такова: нажимаю определенную кнопку включается режим программирования, то есть я руковожу рукой с пульта для выполнения определенной операции, затем я нажимаю на следующую кнопку и задаю количество выполнения этого цикла, затем нажимаю третью кнопку и система автоматически повторяет действия, которые я делал с помощью пульта, предварительно возвращаясь в исходное положение.
Вроде код написал а когда начинаю нажимать кнопки на пульте действия не происходит помогите понять что не так.
#include <IRremote.h> int RECV_PIN = 11; //вхід ІК приймача IRrecv irrecv(RECV_PIN); decode_results results; #include <Stepper_28BYJ.h> // зміна кіькості кроків для вашого двигуна #define STEPS 4078 Stepper_28BYJ stepper1(STEPS, 2, 3, 4, 5); Stepper_28BYJ stepper2(STEPS, 0, 1, 8, 9); Stepper_28BYJ stepper3(STEPS, 10, 12, 13, A0); Stepper_28BYJ stepper4(STEPS, A1, A2, A3, A4); int avto=0;// кількість виконання автоматичної роботи int diya=0;// загальна кількість дій в автоматичній роботі int chikl[100]; void setup() { irrecv.enableIRIn(); // включити приймач stepper1.setSpeed(13); stepper2.setSpeed(13); stepper3.setSpeed(13); stepper4.setSpeed(13); } int m11 (){ stepper1.step(1000); // робимо 1000 кроків в одну сторону } int m12 (){ stepper1.step(-1000); // робимо 1000 кроків в іншу сторону } int m21 (){ stepper2.step(1000); // робимо 1000 кроків в іншу сторону } int m22 (){ stepper2.step(-1000); // робимо 1000 кроків в іншу сторону } int m31 (){ stepper3.step(1000); // робимо 1000 кроків в іншу сторону } int m32 (){ stepper3.step(-1000); // робимо 1000 кроків в іншу сторону } int m41 (){ stepper4.step(1000); // робимо 1000 кроків в іншу сторону } int m42 (){ stepper4.step(-1000); // робимо 1000 кроків в іншу сторону } void loop() { if (irrecv.decode(&results)) { // програмування роботи if (results.value == 0xE318261B) // код кнопки CH- { if (results.value == 0x9716BE3F) // код кнопки { m11 (); diya++; chikl[diya]=11; } if (results.value == 0x3D9AE3F7) // код кнопки { m12 (); diya++; chikl[diya]=12; } if (results.value == 0x6182021B) // код кнопки { m21 (); diya++; chikl[diya]=21; } if (results.value == 0x8C22657B) // код кнопки { m22 (); diya++; chikl[diya]=22; } if (results.value == 0x488F3CBB) // код кнопки { m31 (); diya++; chikl[diya]=31; } if (results.value == 0x449E79F) // код кнопки { m32 (); diya++; chikl[diya]=32; } if (results.value == 0xF2D9EC99) // код кнопки { m41 (); diya++; chikl[diya]=41; } if (results.value == 0x1BC0157B) // код кнопки { m42 (); diya++; chikl[diya]=42; } irrecv.resume(); } // встановлення кількості виконання авт.роботи if (results.value == 0x511DBB) // код кнопки { if (results.value == 0x9716BE3F) // код кнопки { avto=1; } if (results.value == 0x3D9AE3F7) // код кнопки { avto=2; } if (results.value == 0x6182021B) // код кнопки { avto=3; } if (results.value == 0x8C22657B) // код кнопки { avto=4; } if (results.value == 0x488F3CBB) // код кнопки { avto=5; } if (results.value == 0x449E79F) // код кнопки { avto=6; } if (results.value == 0xF2D9EC99) // код кнопки { avto=7; } if (results.value == 0x1BC0157B) // код кнопки { avto=8; } if (results.value == 0x3EC3FC1B) // код кнопки { avto=9; } irrecv.resume(); } // автоматичне виконання if (results.value == 0xEE886D7F) // код кнопки { for (int nn=1; nn<=avto; nn++) { // повернення двигунів в початковий стан for (int n=1; n<=diya; n++) { if (chikl[n]==11) { m12 (); delay(200); } if (chikl[n]==12) { m11 (); delay(200); } if (chikl[n]==21) { m22 (); delay(200); } if (chikl[n]==22) { m21 (); delay(200); } if (chikl[n]==31) { m32 (); delay(200); } if (chikl[n]==32) { m31 (); delay(200); } if (chikl[n]==41) { m42 (); delay(200); } if (chikl[n]==42) { m41 (); delay(200); } } // виконання програми for (int n=1; n<=diya; n++) { if (chikl[n]==11) { m11 (); delay(200); } if (chikl[n]==12) { m12 (); delay(200); } if (chikl[n]==21) { m21 (); delay(200); } if (chikl[n]==22) { m22 (); delay(200); } if (chikl[n]==31) { m31 (); delay(200); } if (chikl[n]==32) { m32 (); delay(200); } if (chikl[n]==41) { m41 (); delay(200); } if (chikl[n]==42) { m42 (); delay(200); } } } irrecv.resume(); } //обнулення роботи if (results.value == 0x20FE4DBB) // код кнопки { diya=0; avto=0; irrecv.resume(); } irrecv.resume(); } }