Технический форум по робототехнике.
int command;
...
command = Serial.read();
...
if(command == 'q')
{ analogWrite(5, 0); Serial.println("levo 0"); }
if(command == 'w')
{ analogWrite(5, 51); Serial.println("levo 51"); }
if(command == 'e')
{ analogWrite(5, 102); Serial.println("levo 102"); }
if(command == 'r')
{ analogWrite(5, 153); Serial.println("levo 153"); }
if(command == 't')
{ analogWrite(5, 204); Serial.println("levo 204"); }
if(command == 'y')
{ analogWrite(5, 255); Serial.println("levo 255"); }
byte[] buffer = new byte[2]; // создаем два байта для отправки
buffer[0] = 9; // первый байт - номер сервы, в моем случае 9 или 10 (как и их номер пинов на Ардуине)
buffer[1] = Convert.ToByte(trackBar2.Value); //значение ползунка от 0 до 255
try //попытка отправки байтов
{
serialPort1.Write(buffer, 0, 3);
}
catch
{
}
#include <Servo.h> // включаем библиотеку Серво
Servo myservo9; // вводим myservo9
Servo myservo10; // вводим myservo10
void setup()
{
myservo9.attach(9); //присваиваем myservo9 9-й пин
myservo10.attach(10); //присваиваем myservo10 10-й пин
Serial.begin(9600); // устанавливаем последовательное соединение, скорость 9600
}
void loop ()
{
if (Serial.available() > 1) //если есть доступные данные больше 1 байтов
{
byte a,b; // принимаем байты и разбиваем их
a = Serial.read(); // первый байт
b = Serial.read(); // второй байт
// УПРАВЛЯЕМ СЕРВАМИ
if(a==9) // если первый байт 9, управляем 9-й сервой
{
myservo9.write(b); // b это значение ползунка
}
if(a==10)
{
myservo10.write(b);
}
}
}
void setup() {
Serial.begin(9600);
Serial.println("TURRET ON");
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
if(Serial.available() > 5)
{
byte a,b,c,d,e,f; // принимаем байты и разбиваем их
a = Serial.read(); // первый байт
b = Serial.read(); // второй байт
c = Serial.read();
d = Serial.read();
e = Serial.read();
f = Serial.read();
//вкл выкл
if(a == 1)
{ digitalWrite(2, HIGH); Serial.println("power on"); }
if(a == 0)
{ digitalWrite(2, LOW); Serial.println("power off"); }
//выстрел
if(b == 1)
{ digitalWrite(3, HIGH); Serial.println("shot on"); }
if(b == 0)
{ digitalWrite(3, LOW); Serial.println("shot off"); }
//влево
if(c == 1)
{ analogWrite(6, 0);
analogWrite(5, d); Serial.println("left");Serial.println(d); }
//вправо
if(c == 0)
{ analogWrite(5, 0);
analogWrite(6, d); Serial.println("right");Serial.println(d); }
//верх
if(e == 1)
{ analogWrite(11, 0);
analogWrite(10, f); Serial.println("up"); Serial.println(f); }
//вниз
if(e == 0)
{ analogWrite(10, 0);
analogWrite(11, f); Serial.println("down"); Serial.println(f); }
Serial.flush();
}
}
int charg = 4;
boolean lastchart = false;
void setup() {
Serial.begin(9600);
Serial.println("TURRET ON");
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
if (digitalRead(charg) == HIGH && lastchart == false)
{ lastchart = true;
Serial.println("chart on"); }
if (digitalRead(charg) == LOW && lastchart == true)
{ lastchart = false;
Serial.println("chart off"); }
if(Serial.available() > 5)
{
byte a,b,c,d,e,f; // принимаем байты и разбиваем их
a = Serial.read(); // первый байт
b = Serial.read(); // второй байт
c = Serial.read();
d = Serial.read();
e = Serial.read();
f = Serial.read();
//вкл выкл
if(a == 1)
{ digitalWrite(2, HIGH); Serial.println("power on"); }
if(a == 0)
{ digitalWrite(2, LOW); Serial.println("power off"); }
//выстрел
if(b == 1)
{ digitalWrite(3, HIGH); Serial.println("shot on"); }
if(b == 0)
{ digitalWrite(3, LOW); Serial.println("shot off"); }
//влево
if(c == 1)
{ analogWrite(6, 0);
analogWrite(5, d); Serial.println("left");Serial.println(d); }
//вправо
if(c == 0)
{ analogWrite(5, 0);
analogWrite(6, d); Serial.println("right");Serial.println(d); }
//верх
if(e == 1)
{ analogWrite(11, 0);
analogWrite(10, f); Serial.println("up"); Serial.println(f); }
//вниз
if(e == 0)
{ analogWrite(10, 0);
analogWrite(11, f); Serial.println("down"); Serial.println(f); }
Serial.flush();
}
}
Nesenin писал(а):предусмотрел "защиту" от включения 2х управляющих линий на "H мостах" двигателей (а вот скорость переключения ограничивать не стал).