Petr Kiselev » 15 май 2015, 20:14
Вот скетч для Танкетки, который написал мой студент Малахов Иван. Это входит в его дипломный проект.
Скетч Танкетки
От Малахова Ивана
//Моторы
int IN1 = 2;
int IN2 = 3;
int IN3 = 4;
int IN4 = 5;
//Приемник
int IN8 = 8;//0(A) НАЗАД
int IN9 = 9; //1(B) ПРАВО
int IN10 = 10; //2(C) ПРЯМО
int IN11 = 11;//3(D) ЛЕВО
//ФАРЫ
//ЗАДНИЕ
int IN6 = 6; //Право
int IN7 = 7;//Лево
//ПЕРЕДНИЕ
int IN12 = 12; //Право
int IN13 = 13;//Лево
void setup()
{
Serial.begin(9600);
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
pinMode (IN6, OUTPUT);
pinMode (IN7, OUTPUT);
pinMode (IN12, OUTPUT);
pinMode (IN13, OUTPUT);
pinMode (IN8, INPUT);
pinMode (IN9, INPUT);
pinMode (IN10, INPUT);
pinMode (IN11, INPUT);
digitalWrite (IN6, LOW);
digitalWrite (IN7, LOW);
digitalWrite (IN12, LOW);
digitalWrite (IN13, LOW);
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
void loop() {
if (digitalRead(IN10)==HIGH ){
//ПРЯМО
//Левый борт
digitalWrite (IN1,HIGH ); //Назад
digitalWrite (IN2,LOW); //Вперед
//Правый борт
digitalWrite (IN3,HIGH ); //Назад
digitalWrite (IN4,LOW); //Вперед
}
if (digitalRead(IN8)==HIGH ){
//НАЗАД
//Левый борт
digitalWrite (IN1,LOW ); //Назад
digitalWrite (IN2,HIGH); //Вперед
//Правый борт
digitalWrite (IN3,LOW); //Назад
digitalWrite (IN4,HIGH); //Вперед
digitalWrite (IN6,HIGH ); //Правая задняя фара
digitalWrite (IN7,HIGH); //Левая задняя фара
digitalWrite (IN12,LOW ); //Правая задняя фара
digitalWrite (IN13,LOW); //Левая задняя фара
}
if (digitalRead(IN11)==HIGH ){
//ЛЕВО
//Левый борт
digitalWrite (IN1,LOW ); //Назад
digitalWrite (IN2,HIGH); //Вперед
//Правый борт
digitalWrite (IN3,HIGH ); //Назад
digitalWrite (IN4,LOW); //Вперед
digitalWrite (IN7,HIGH ); //Левая задняя фара
digitalWrite (IN13,HIGH); //Левая передняя фара
digitalWrite (IN12,LOW );
digitalWrite (IN6,LOW);
}
if (digitalRead(IN9)==HIGH ){
//ПРАВО
//Левый борт
digitalWrite (IN1,HIGH ); //Назад
digitalWrite (IN2,LOW); //Вперед
//Правый борт
digitalWrite (IN3,LOW ); //Назад
digitalWrite (IN4,HIGH); //Вперед
digitalWrite (IN6,HIGH ); //Правая задняя фара
digitalWrite (IN12,HIGH); //Правая передняя фара
digitalWrite (IN7,LOW );
digitalWrite (IN13,LOW);
}
if ( (digitalRead(IN8)==LOW) and (digitalRead(IN9)==LOW) and (digitalRead(IN10)==LOW) and (digitalRead(IN11)==LOW)){
//СТОП
//Левый борт
digitalWrite (IN1, LOW); //Назад
digitalWrite (IN2, LOW); //Вперед
//Правый борт
digitalWrite (IN3, LOW); //Назад
digitalWrite (IN4, LOW); //Вперед
digitalWrite (IN6,HIGH ); //Правая задняя фара
digitalWrite (IN7,HIGH); //Левая задняя фара
digitalWrite (IN12,LOW );
digitalWrite (IN13,LOW);
}
}//Конец void loop
Добавлено спустя 6 минут 8 секунд:
Кстати, сегодня исправили Танкетку. Заменили моторы. Стояли 180 об/мин, поставили 77 об/мин. Совсем другое дело! Черех ноги и полозья столов перебирается запросто.