Arduino аниматроник (хвост) на сервоприводе
- Войдите на сайт для отправки комментариев
Сб, 08/12/2018 - 23:56
не могу написать программу, что бы хвост начинал плавное нарастание скорости, есть программа где только движение. Что именно мне сделать ?
#include <Servo.h>
#define TailPin 3 //вывод для подключения привода
#define KeyPin 4 //вывод для подключения кнопки
#define MaxAngleShift 30 //отклонение от начального положения
//в одну сторону, градусы
//т.е. ход привода = 2 * значение
#define MoveDelay 20 //задержка при изменении угла (мс),
//определяет скорость движения,
//чем, больше значение, тем меньше скорость
#define INIT_TAIL_POS 120 //начальное положение привода, градусы
#define MoveTimes 5 //количество движений после нажатия кнопки
Servo Tail;
void setup()
{
pinMode(KeyPin, INPUT);
digitalWrite(KeyPin, HIGH);
Tail.attach(TailPin);
Tail.write(INIT_TAIL_POS);
delay(300);
Tail.detach();
}
//---------------------------------------------
void loop()
{
if (digitalRead(KeyPin) == 0)
{
delay(70);
if (digitalRead(KeyPin) == 0)
{
Tail.attach(TailPin);
for(byte i=0; i <= MaxAngleShift; i++)
{
Tail.write(INIT_TAIL_POS + i);
delay(MoveDelay);
}
for(byte j=0; j<MoveTimes; j++)
{
for(byte i=0; i <= 2*MaxAngleShift; i++)
{
Tail.write(INIT_TAIL_POS + MaxAngleShift - i);
delay(MoveDelay);
}
for(byte i=0; i <= 2*MaxAngleShift; i++)
{
Tail.write(INIT_TAIL_POS - MaxAngleShift + i);
delay(MoveDelay);
}
}
Tail.write(INIT_TAIL_POS);
delay(300);
Tail.detach();
}
}
}
Для начала - ознакомиться со постом #2 в этой теме: http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov