1910krest nul

Материал из УМКИwiki
Перейти к навигации Перейти к поиску
//////////////////////////////////////////////
//     2021.02.18 woronin,  umkiedu@gmail.com
//     работа с двумя моторами езда вперед c поворотом
//     Robot UMKI controller  K6_3
//     при езде плотером из двух сервомоторов  рисует крестики и нолики
//////////////////////////////////////////////
int mLspeed = 5; // 5-й управляет вращением  левого мотора
int motorL = 4; // 4-й контакт определяет направление вращения  первого левого мотора
int mRspeed = 3; // 3-й управляет вращением  правого мотора
int motorR = 2; // 2-й контакт определяет направление вращения  первого правого мотора
#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
Servo servo1; // объявляем переменную servo типа "servo1"
Servo servo2; // объявляем переменную servo типа "servo2"


void setup()
{
  pinMode(mLspeed, OUTPUT); // конфигурим контакты как работающие на выход
  pinMode(mRspeed, OUTPUT);
  pinMode(motorR, OUTPUT);
  pinMode(motorL, OUTPUT);
  servo1.attach(10); // привязываем сервопривод к  выходу 10
  servo2.attach(9); // привязываем сервопривод к  выходу 9

}

void krestik()
{
  servo2.write(95); // точка 0
  delay(500); // ждем
  servo1.write(65); // точка 0
  delay(500); // ждем

  servo1.write(110); // точка 1
  delay(500); // ждем
  servo1.write(50); // точка 2
  delay(500); // ждем
  servo1.write(110); // точка 1
  delay(500); // ждем
  servo1.write(50); // точка 2
  delay(500); // ждем

  servo1.write(65); // точка 0
  delay(500); // ждем

  servo2.write(60); // точка 3
  delay(500); // ждем
  servo2.write(110); // точка 4
  delay(500); // ждем
  servo2.write(60); // точка 3
  delay(500); // ждем
  servo2.write(110); // точка 4
  delay(500); // ждем

}

void nolik()
{
  servo1.write(110); // точка 1
  delay(500); // ждем
  servo2.write(60); // точка 3
  delay(500); // ждем
  servo1.write(50); // точка 2
  delay(500); // ждем
  servo2.write(110); // точка 4
  delay(500); // ждем
  servo1.write(110); // точка 1
  delay(500); // ждем
  servo2.write(60); // точка 3
  delay(500); // ждем
  servo1.write(50); // точка 2
  delay(500); // ждем
  servo2.write(110); // точка 4
  delay(500); // ждем
}

void loop()
{
  digitalWrite (motorR, HIGH);// Вперед
  digitalWrite (motorL, HIGH);
  digitalWrite (mRspeed, HIGH); //  включаем вращение моторов
  digitalWrite (mLspeed, HIGH);
  delay(1000); // Вращаем 1 сек

  digitalWrite (mRspeed, LOW); // стоп
  digitalWrite (mLspeed, LOW);


  krestik();
  digitalWrite (motorR, LOW);// Вправо
  digitalWrite (motorL, HIGH);
  digitalWrite (mRspeed, HIGH); //  включаем вращение моторов
  digitalWrite (mLspeed, HIGH);
  delay(500); // Вращаем 0.5 сек

  digitalWrite (mRspeed, LOW); // стоп
  digitalWrite (mLspeed, LOW);
  delay(1000); //останов 1 сек.

  digitalWrite (motorR, HIGH);// Вперед
  digitalWrite (motorL, HIGH);
  digitalWrite (mRspeed, HIGH); //  включаем вращение моторов
  digitalWrite (mLspeed, HIGH);
  delay(1000); // Вращаем 1 сек

  digitalWrite (mRspeed, LOW); // стоп
  digitalWrite (mLspeed, LOW);


  nolik();
  digitalWrite (motorR, LOW);// Вправо
  digitalWrite (motorL, HIGH);
  digitalWrite (mRspeed, HIGH); //  включаем вращение моторов
  digitalWrite (mLspeed, HIGH);
  delay(500); // Вращаем 0.5 сек

  digitalWrite (mRspeed, LOW); // стоп
  digitalWrite (mLspeed, LOW);
  delay(1000); //останов 1 сек.
}