Модернизация 3.0

Начали глубокую модернизацию роботов. Теперь собираем так, чтоб привод колеса был на шестеренке, рама вмещала в себя мотор, микроконтроллер, драйвер двигателя, отсек для батарей. Что повлекло за собой усложнение и увеличение конструкции.

Программирование пока на уровне познания какие команды за что отвечают и как влияют на работу моторов и как робот будет себя вести.

Программа для езды робота по разным направлениям

// первичные установки
const int f = 5; // контакт для движения левого мотора вперед
const int b = 6; // контакт для движения левого мотора назад
const int f2 = 3; // контакт для движения правого мотора вперед
const int b2 = 11; // контакт для движения правого мотора назад
int s; // переменная скорости
int s2; // переменная скорости 2

// первичные настройки
void setup() {

pinMode(f,OUTPUT); // устанавливаем, что контакт f это выход
pinMode(b,OUTPUT); // устанавливаем, что контакт b это выход
pinMode(f2,OUTPUT); // устанавливаем, что контакт f2 это выход
pinMode(b2,OUTPUT); // устанавливаем, что контакт b2 это выход
s=255; // устанавливаем максимальную скорость
s2=0; // устанавливаем минимальную скорость
}

//основная программа исполнения
void loop() {
forward(); // команда вперед
delay(6000); // ждем 6 секунд
left(); // команда влево
delay(1000); // ждем 1 секунду
forward(); // команда вперед
delay(6000); // ждем 6 секунд
right(); // команда вправо
delay(1000); // ждем 1 секунду

}
// подпрограмма движения вперед
void forward(){
analogWrite(f,s); // подаем на контакт f уровень сигнала 255
analogWrite(b,s2); // подаем на контакт b уровень сигнала 0
analogWrite(f2,s); // подаем на контакт f2 уровень сигнала 255
analogWrite(b2,s2); // подаем на контакт b2 уровень сигнала 0
}

// подпрограмма движения назад
void back(){
analogWrite(f,s2); // подаем на контакт f уровень сигнала 0
analogWrite(b,s); // подаем на контакт b уровень сигнала 255
analogWrite(f2,s2); // подаем на контакт f2 уровень сигнала 0
analogWrite(b2,s); // подаем на контакт b2 уровень сигнала 255
}

// подпрограмма движения влево
void left(){
analogWrite(f,s2); // подаем на контакт f уровень сигнала 0
analogWrite(b,s2); // подаем на контакт b уровень сигнала 0
analogWrite(f2,s-185); // подаем на контакт f2 уровень сигнала 70
analogWrite(b2,0); // подаем на контакт b2 уровень сигнала 0
}
//подпрограмма движения вправо
void right(){
analogWrite(f,s-185); // подаем на контакт f уровень сигнала 70
analogWrite(b,s2); // подаем на контакт b уровень сигнала 0
analogWrite(f2,s2); // подаем на контакт f2 уровень сигнала 0
analogWrite(b2,s2); // подаем на контакт b2 уровень сигнала 0
}
//подпрограмма стоп
void stop1(){
analogWrite(f,s2); // подаем на контакт f уровень сигнала 0
analogWrite(b,s2); // подаем на контакт b уровень сигнала 0
analogWrite(f2,s2); // подаем на контакт f2 уровень сигнала 0
analogWrite(b2,s2); // подаем на контакт b2 уровень сигнала 0
}

Views All Time
Views All Time
46
Views Today
Views Today
1
0

Автор публикации

не в сети 2 часа

koordinator

0
Комментарии: 2Публикации: 196Регистрация: 02-12-2017

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *