Помогите с кодом на Arduino mega 2560.
- Войдите на сайт для отправки комментариев
Помогите с кодом на Arduino mega 2560
Хотельсь бы реализовать управление роботом по Wi FI.
Управление едет через роутер WR702N, теперь надо разобратся с дуиной.
Прошу вашей помощи......
Есьть код под Arduino Mini Pro :
int led = 13;
boolean laight = 0;
int incomingByte = 0;
int action = 0;
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT);
pinMode(4, OUTPUT); //light
pinMode(5, OUTPUT); // шим 1
pinMode(6, OUTPUT); // шим 2
pinMode(7, OUTPUT); // 11
pinMode(8, OUTPUT); // 12
pinMode(11, OUTPUT); // 21
pinMode(12, OUTPUT); // 22
}
void loop() {
//Serial.print("1");
if (Serial.available() > 0) { //если есть доступные данные// считываем байт
incomingByte = Serial.read();
// отсылаем то, что получили
digitalWrite(13, HIGH);
if(incomingByte == 97) // A
action = 7;
if(incomingByte == 100) // D
action = 8;
if(incomingByte == 115) // S
action = 11;
if(incomingByte == 119) // W
action = 12;
if(incomingByte == 108) // L
laight=!laight;
digitalWrite(4, laight);
//analogWrite(8, 255);
//analogWrite(9, 255);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(action, HIGH);
delay(250);
digitalWrite(action, LOW);
action = 0;
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(13, LOW);
Serial.print("250: ");
Serial.println(incomingByte, DEC);
}
}
Подключаю дуину к L298N.
Зашивал етот код в Arduino mega 2560, - шим 5. 6. работает а 7. 8. 11. 12. нет. помогите.
и еще хотелось бы добавить управление серво - камерой и прочие.
Прошу вашей помощи...
Я особо в програмировании не разбираюсь.
Вот набросал скетч ля управление ботом, гляньте плиз.... может что упростить, переделать.
Управление камарой надо както сгладить.Что поворот бил плавний ане сразу с 90 га 180градусав.
Скетч:
#include <Servo.h>
Servo servo1;
Servo servo2;
const int SERVO1_PIN = 8;
const int SERVO2_PIN = 9;
const int MAX_POS = 1023;
const int MAX_ANGLE = 180;
int incomingByte;
void setup()
{
servo1.attach(SERVO1_PIN);
servo2.attach(SERVO2_PIN);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(115200);
}
void loop()
{
if (Serial.available() > 0) {
incomingByte = Serial.read();
// Установка серво 1 в среднее положение
if (incomingByte == '5') {
servo1.write(90);
}
// Установка серво 2 в среднее положение
if (incomingByte == '5') {
servo2.write(90);
}
// При нажатой 8 повернуть серво 1 на 180 и при отсуствии возвратить в середину
if (incomingByte == '8') {
servo1.write(180);
delay(150);
servo1.write(90);
}
// При нажатой 2 повернуть серво 1 на 10 и при отсуствии возвратить в середину
if (incomingByte == '2') {
servo1.write(10);
delay(150);
servo1.write(90);
}
// При нажатой 4 повернуть серво 2 на 180 и при отсуствии возвратить в середину
if (incomingByte == '4') {
servo2.write(180);
delay(150);
servo2.write(90);
}
// При нажатой 6 повернуть серво 2 на 10 и при отсуствии возвратить в середину
if (incomingByte == '6') {
servo2.write(10);
delay(150);
servo2.write(90);
}
// При нажатой 7 повернуть серво 1 на 180 и при отсуствии возвратить в середину
// При нажатой 7 повернуть серво 2 на 180 и при отсуствии возвратить в середину
if (incomingByte == '7') {
servo1.write(180);
servo2.write(180);
delay(150);
servo1.write(90);
servo2.write(90);
}
// При нажатой 9 повернуть серво 1 на 180 и при отсуствии возвратить в середину
// При нажатой 9 повернуть серво 2 на 10 и при отсуствии возвратить в середину
if (incomingByte == '9') {
servo1.write(180);
servo2.write(10);
delay(150);
servo1.write(90);
servo2.write(90);
}
// При нажатой 1 повернуть серво 1 на 10 и при отсуствии возвратить в середину
// При нажатой 1 повернуть серво 2 на 180 и при отсуствии возвратить в середину
if (incomingByte == '1') {
servo1.write(10);
servo2.write(180);
delay(150);
servo1.write(90);
servo2.write(90);
}
// При нажатой 3 повернуть серво 1 на 10 и при отсуствии возвратить в середину
// При нажатой 3 повернуть серво 2 на 10 и при отсуствии возвратить в середину
if (incomingByte == '3') {
servo1.write(10);
servo2.write(10);
delay(150);
servo1.write(90);
servo2.write(90);
}
// При нажатой Q двигатся влево передним ходом
if (incomingByte == 'Q') {
digitalWrite(2, HIGH);
digitalWrite(5, HIGH);
delay(120);
digitalWrite(2, LOW);
digitalWrite(5, LOW);
}
// При нажатой W двигатся вперед
if (incomingByte == 'W') {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(120);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
// При нажатой E двигатся вправопередним ходом
if (incomingByte == 'E') {
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(120);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
// При нажатой A двигатся влево задним ходом
if (incomingByte == 'A') {
digitalWrite(4, HIGH);
digitalWrite(3, HIGH);
delay(120);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
}
// При нажатой S двигатся назад
if (incomingByte == 'S') {
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(120);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
// При нажатой D двигатся вправо задним ходом
if (incomingByte == 'D') {
digitalWrite(5, HIGH);
digitalWrite(2, HIGH);
delay(120);
digitalWrite(5, LOW);
digitalWrite(2, LOW);
}
// При нажатой R посигналить
if (incomingByte == 'R') {
digitalWrite(6, HIGH);
delay(120);
digitalWrite(6, LOW);
}
// При нажатой F включить фари
if (incomingByte == 'F') {
digitalWrite(7, HIGH);
}
// При нажатой G виключить фари
if (incomingByte == 'G') {
digitalWrite(7, LOW);
}
}
}
Жду вашых советов.
Спасибо!