1502 datleen test: различия между версиями
Перейти к навигации
Перейти к поиску
Woronin (обсуждение | вклад) Нет описания правки |
Woronin (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 2: | Строка 2: | ||
////////////////////////////////////////////// | ////////////////////////////////////////////// | ||
// 2021.02.20 woronin, umkiedu@gmail.com | // 2021.02.20 woronin, umkiedu@gmail.com | ||
// Датчик линии цифровой сигнал, тестируем движение | // Датчик линии цифровой сигнал, тестируем движение робота порциями (дискретно) | ||
// Robot UMKI controller K6_3 | // Robot UMKI controller K6_3 | ||
// включаем правый и левый мотор по | // включаем правый и левый мотор по максимому, для поворотов, при езде по датчикам линии | ||
////////////////////////////////////////////// | ////////////////////////////////////////////// | ||
const int | const int sensorL = A0; // Присоедниняем левый датчик к A0 | ||
const int | const int sensorR = A1; // Присоедниняем правый датчик к A1 | ||
int | int Lsensor; // Переменная для левого датчика | ||
int | int Rsensor; // Переменная для правого датчика | ||
int motorR1 = 2; // направление вращения первого правого мотора | int motorR1 = 2; // направление вращения первого правого мотора | ||
int motorL1 = 4; // направление вращения первого левого мотора | int motorL1 = 4; // направление вращения первого левого мотора | ||
int mLspeed = 3; // 3 управляет | int mLspeed = 3; // 3 управляет скоростью вращения левого мотора | ||
int mRspeed = 5; // 5 управляет | int mRspeed = 5; // 5 управляет скоростью вращения правого мотора | ||
void setup() | void setup() // Задаем параметры инициализации переменных | ||
{ | { | ||
pinMode( sensorR , INPUT); | pinMode( sensorR , INPUT);// конфигурим порт на вход | ||
pinMode( sensorL , INPUT); | pinMode( sensorL , INPUT); | ||
pinMode(mLspeed, OUTPUT); // конфигурим порт на выход | |||
pinMode(mLspeed, OUTPUT); // конфигурим | |||
pinMode(mRspeed, OUTPUT); | pinMode(mRspeed, OUTPUT); | ||
pinMode(motorR1, OUTPUT); | pinMode(motorR1, OUTPUT); | ||
pinMode(motorL1, OUTPUT); | pinMode(motorL1, OUTPUT); | ||
Serial.begin(9600); // Подключаем монитор порта на скорости общения 9600 байт в сек | |||
} | } | ||
// Основной бесконечный цикл | // Основной бесконечный цикл | ||
void loop() { | void loop() { | ||
Rsensor=digitalRead(sensorR); | Rsensor=digitalRead(sensorR);// считываем значение из порта в переменную | ||
Lsensor=digitalRead(sensorL); | Lsensor=digitalRead(sensorL); | ||
if ((Lsensor == 0)&&(Rsensor==0)) {// если оба датчика видят белый | if ((Lsensor == 0)&&(Rsensor==0)) {// если оба датчика видят белый | ||
Serial.println("Lsensor =0 Rsensor=0"); | Serial.println("Lsensor =0 Rsensor=0"); // печатаем отладочную информацию в монитор порта | ||
digitalWrite(motorR1, HIGH ); // правый мотор вперед | digitalWrite(motorR1, HIGH ); // правый мотор вперед | ||
digitalWrite(mRspeed, HIGH); // правого мотора на максимуме | digitalWrite(mRspeed, HIGH); // правого мотора на максимуме | ||
digitalWrite(motorL1 , HIGH ); // левый мотор вперед | digitalWrite(motorL1 , HIGH ); // левый мотор вперед | ||
digitalWrite(mLspeed, HIGH); // левого мотора на максимуме | digitalWrite(mLspeed, HIGH); // левого мотора на максимуме | ||
delay(200); | delay(200); // время включения в млсек | ||
} | } | ||
if ((Lsensor == 1)&&(Rsensor==0)) {// если левый датчик видит черный | if ((Lsensor == 1)&&(Rsensor==0)) {// если левый датчик видит черный |
Текущая версия от 17:20, 20 февраля 2021
//////////////////////////////////////////////
// 2021.02.20 woronin, umkiedu@gmail.com
// Датчик линии цифровой сигнал, тестируем движение робота порциями (дискретно)
// Robot UMKI controller K6_3
// включаем правый и левый мотор по максимому, для поворотов, при езде по датчикам линии
//////////////////////////////////////////////
const int sensorL = A0; // Присоедниняем левый датчик к A0
const int sensorR = A1; // Присоедниняем правый датчик к A1
int Lsensor; // Переменная для левого датчика
int Rsensor; // Переменная для правого датчика
int motorR1 = 2; // направление вращения первого правого мотора
int motorL1 = 4; // направление вращения первого левого мотора
int mLspeed = 3; // 3 управляет скоростью вращения левого мотора
int mRspeed = 5; // 5 управляет скоростью вращения правого мотора
void setup() // Задаем параметры инициализации переменных
{
pinMode( sensorR , INPUT);// конфигурим порт на вход
pinMode( sensorL , INPUT);
pinMode(mLspeed, OUTPUT); // конфигурим порт на выход
pinMode(mRspeed, OUTPUT);
pinMode(motorR1, OUTPUT);
pinMode(motorL1, OUTPUT);
Serial.begin(9600); // Подключаем монитор порта на скорости общения 9600 байт в сек
}
// Основной бесконечный цикл
void loop() {
Rsensor=digitalRead(sensorR);// считываем значение из порта в переменную
Lsensor=digitalRead(sensorL);
if ((Lsensor == 0)&&(Rsensor==0)) {// если оба датчика видят белый
Serial.println("Lsensor =0 Rsensor=0"); // печатаем отладочную информацию в монитор порта
digitalWrite(motorR1, HIGH ); // правый мотор вперед
digitalWrite(mRspeed, HIGH); // правого мотора на максимуме
digitalWrite(motorL1 , HIGH ); // левый мотор вперед
digitalWrite(mLspeed, HIGH); // левого мотора на максимуме
delay(200); // время включения в млсек
}
if ((Lsensor == 1)&&(Rsensor==0)) {// если левый датчик видит черный
Serial.println("Lsensor =1 Rsensor=0");
digitalWrite( motorR1, HIGH ); // правый мотор вперед
digitalWrite(mRspeed, HIGH); // правого мотора на максимуме
digitalWrite( motorL1 , LOW ); // левый мотор Назад
digitalWrite(mLspeed, HIGH); // левого мотора на максимуме
delay(200);
}
if ((Lsensor == 0)&&(Rsensor==1)) {// если правый датчик видит черный
Serial.println("Lsensor =0 Rsensor=1");
digitalWrite( motorR1, LOW ); // правый мотор Назад
digitalWrite(mRspeed, HIGH); // правого мотора на максимуме
digitalWrite( motorL1 , HIGH ); // левый мотор вперед
digitalWrite(mLspeed, HIGH); // левого мотора на максимуме
delay(200);
}
if ((Lsensor == 1)&&(Rsensor==1)) {// если оба датчика видит черный
Serial.println("Lsensor =1 Rsensor=1");
digitalWrite( motorR1, LOW ); // правый мотор Назад
digitalWrite(mRspeed, HIGH); // правого мотора на максимуме
digitalWrite( motorL1 , LOW ); // левый мотор Назад
digitalWrite(mLspeed, HIGH); // левого мотора на максимуме
delay(200);
}
digitalWrite(mRspeed, LOW); // скорость правого мотора стоп
digitalWrite(mLspeed, LOW); // скорость левого мотора стоп
delay(200);
}