Поворот сервы
- Войдите на сайт для отправки комментариев
Пт, 24/01/2014 - 23:38
Помоги пожалуйста справиться с проблемой . Как должна выглядеть программа для того чтобы при нажатии(удержание) кнопки ,серва поворачивалась , а когда кнопку отпускали серва останавливалась . и так же в обраную сторону ,но уже с использованием другой кнопки . У меня в программе получаеться , что при нажати на кнопку серва поворачиваеться на определенный градус и все .
#include <Servo.h>
#include <IRremote.h>
unsigned long Value1 = 0xECE16110;
unsigned long Value2 = 0xB8FBED4A;
unsigned long Value3 = 0x32D390AC;
unsigned long Value4 = 0x13D1970;
unsigned long Value5 = 0x7EBDC4EA;
unsigned long Value6 = 0x37E8B354;
int RECV_PIN = 11; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
Servo sg90;
Servo mg995_1;
Servo mg995_2;
int pos = 0;
int var = 0;
void setup() {
irrecv.enableIRIn(); // включить приемник
sg90.attach(3); // серво подключён на цифровой вход pin 10
mg995_1.attach(4);
mg995_2.attach(5);
}
void loop() {
if (irrecv.decode(&results)) {
irrecv.resume();
}
//для 1 сервы
if(results.value == Value1){
sg90.attach(5);
}
else if(results.value == Value4){
sg90.write(5);
//for(pos =180; pos>=1; pos-=1)
} // {
// sg90.write(pos);
// delay(15); // }
//для сервы 2
else if(results.value == Value2){
mg995_1.attach(10);
}
else if(results.value == Value5){
mg995_1.write(80);
}
//для сервы 3
else if(results.value == Value3){
mg995_2.attach(70);
}
else if(results.value == Value6){
mg995_2.write(160);
}
}while (var < 100);
}
#include <Servo.h> #include <IRremote.h> #define RECV_PIN 11 //вход ИК приемника IRrecv irrecv(RECV_PIN); decode_results results; unsigned long Value1 = 0xECE16110; unsigned long Value2 = 0xB8FBED4A; Servo sg90; int sg90pos = 0; void setup() { irrecv.enableIRIn(); // включить приемник sg90.attach(3); } void loop() { if (irrecv.decode(&results)) { if(results.value == Value1) sg90pos++; else if(results.value == Value2) sg90pos--; sg90pos = constrain(sg90pos, 0, 180); sg90.write(sg90pos); delay(20); irrecv.resume(); } }Спасибо , но программа работает только при многократном нажатии а не на удержание кнопки , и серва поворачиваетьсяочень медленно
Спасибо , но программа работает только при многократном нажатии а не на удержание кнопки , и серва поворачиваетьсяочень медленно
Максим, прекращай новичкам помогать.
Значит ваш пульт при удержании кнопки выдает отличный код от первоначального.
Точно! Спасибо большое