Ви не увійшли.
Доброго вечора, маю машинку на радіоуправлінні, добавив замість її плати Ардуіно R3, 2 мотори+драйвер для них l298n для передньої і задньої осі і ще кілька датчиків (USB модуль, дальноміри). Створив додаток, машинка їздить, але при надсиланні цифри повороту вона повертає, але не повертається в початкове положення.
Підскажіть як зробити,щоб під час відпускання кнопки повороту вона поверталася в початкове положення
пробував ставити на аналогові analogWrite(IN1, 255); analogWrite(IN2, 0); не повертає взагалі
пробував if(incomingByte == '3') {digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); delay(1000); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); }, це поворот в іншу сторону , а не на середину. Не знаю, що робити
#include <SoftwareSerial.h>
#include <Wire.h>
#include <VL53L0X.h>
char incomingByte; // входящие данные
SoftwareSerial mySerial(10, 11); // RX, TX
int IN1 = 5; //передня вісь
int IN2 = 4; //передня вісь
int IN3 = 3; //задня вісь
int IN4 = 2; //задня вісь
void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
if (mySerial.available() > 0) { //если пришли данные
incomingByte = mySerial.read(); // считываем байт
if(incomingByte == '1') {
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
if(incomingByte == '2') {
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(incomingByte == '3') {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
}
if(incomingByte == '4') {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
}
if(incomingByte == '0') {
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}}
Остання редакція Бодя96 (2018-11-25 21:07:01)
Неактивний