Arduino. Пример программы для Кегельринга
Это не лучший вариант. Это не до конца написанный вариант. Это вариант который был написал для объяснения отдельных элементов программирования.
const int pingPin = 7;
void setup() {
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
/*forward (1000);
right (100);
forward (500);
right (100);
forward (500);*/
Serial.print(UltraSonic ());
while ((UltraSonic ()>50)||(UltraSonic ()==0))
{
right (100);
}
}
int UltraSonic ()
{
long duration, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
cm = duration/29/2;
return cm;
}
void forward (int t)
{
digitalWrite(5, HIGH);
digitalWrite(7, LOW);
digitalWrite(9, HIGH);
digitalWrite(11, LOW);
delay(t);
}
void right (int t)
{
digitalWrite(5, HIGH);
digitalWrite(7, LOW);
digitalWrite(9, LOW);
digitalWrite(11, HIGH);
delay(t);
}
const int pingPin = 7;
void setup() {
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
/*forward (1000);
right (100);
forward (500);
right (100);
forward (500);*/
Serial.print(UltraSonic ());
while ((UltraSonic ()>50)||(UltraSonic ()==0))
{
right (100);
}
}
int UltraSonic ()
{
long duration, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
cm = duration/29/2;
return cm;
}
void forward (int t)
{
digitalWrite(5, HIGH);
digitalWrite(7, LOW);
digitalWrite(9, HIGH);
digitalWrite(11, LOW);
delay(t);
}
void right (int t)
{
digitalWrite(5, HIGH);
digitalWrite(7, LOW);
digitalWrite(9, LOW);
digitalWrite(11, HIGH);
delay(t);
}
Комментарии
Отправить комментарий