kz ru
Каталог

Arduino Bluetooth Car Application

https://www.tinkercad.com/things/4AExYidYZJ5

https://play.google.com/store/apps/details?id=com.electro_tex.bluetoothcar&pcampaignid=web_share

 

 

 

 

 

/**
       d8888  888                   888           8888888888                   d8b                                    
      d88888  888                   888           888                          Y8P                                    
     d88P888  888                   888           888                                                                 
    d88P 888  888  8888b.  .d8888b  88888b.       8888888    88888b.   .d88b.  888 88888b.   .d88b.   .d88b.  888d888 
   d88P  888  888     "88b 88K      888 "88b      888        888 "88b d88P"88b 888 888 "88b d8P  Y8b d8P  Y8b 888P"   
  d88P   888  888 .d888888 "Y8888b. 888  888      888        888  888 888  888 888 888  888 88888888 88888888 888     
 d8888888888  888 888  888      X88 888  888      888        888  888 Y88b 888 888 888  888 Y8b.     Y8b.     888     
d88P     888  888 "Y888888  88888P' 888  888      8888888888 888  888  "Y88888 888 888  888  "Y8888   "Y8888  888     
                                                                          888                                        
                                                                     Y8b d88P                                        
                                                                      "Y88P"                                         
*/

#include <Servo.h>
#include "SDHT.h"
SDHT dht;

// Объявляем пины для Сервоприводов
int PIN_SERVO_A = 9;
int PIN_SERVO_B = 6;

// Объявляем пины для левого двигателя
int PIN_IN1 = 2;
int PIN_IN2 = 3;

// Объявляем пины для правого двигателя
int PIN_IN3 = 4;
int PIN_IN4 = 5;

// Объявляем пины для фар
int PIN_LED = 13;

// Объявляем пины для HC-SR04
int PIN_ECHO = 10;
int PIN_TRIG = 11;

// Создаем объект
Servo servoA;
Servo servoB;

void setup() {
  Serial.begin(9600);
  Serial.setTimeout(5);

  pinMode(PIN_IN1, OUTPUT);
  pinMode(PIN_IN2, OUTPUT);
  pinMode(PIN_IN3, OUTPUT);
  pinMode(PIN_IN4, OUTPUT);

  pinMode(PIN_LED, OUTPUT);

  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);

  servoA.attach(PIN_SERVO_A);
  servoB.attach(PIN_SERVO_B);
}

void loop() {
  char inputValue;
  String value = "";
  while (Serial.available() > 0) {    //Чтение данных
    String linea = Serial.readString();
    Serial.println(linea);
    for (int i = 0 ; i < linea.length(); i++) {
      int caracter = linea[i];
      if (isDigit(caracter)) {        // Если цифра
        value += (char)caracter;     // Мы сохраняем прочитанное значение
      } else if (caracter != '\n') {   // Мы спрашиваем, отличается ли это от новой строки
        inputValue = caracter;          // Сохраняем прочитанный код
      } else {
        break;
      }
    }
  }
  if (inputValue == 'F') {
    forward();
  }
  if (inputValue == 'B') {
    back();
  }
  if (inputValue == 'L') {
    left();
  }
  if (inputValue == 'R') {
    right();
  }
  if (inputValue == 'S') {
    stop();
  }

  if (inputValue == 'T') {
    ledOn();
  }
  if (inputValue == 'Y') {
    ledOff();
  }


  if (inputValue == 'M') {
    if (value != "") {
      turnServoA(value.toInt());
    }
  }
  if (inputValue == 'N') {
    if (value != "") {
      turnServoB(value.toInt());
    }
  }

  Serial.print("D");
  Serial.println(measureDistance());


  if (dht.read(DHT11, 2)) {
    Serial.print("H");
    Serial.print(String(double(dht.celsius) / 10, 1));
  }


  delay(10);
}

long measureDistance() {
  digitalWrite(PIN_TRIG, LOW);
  delayMicroseconds(5);
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);

  long duration = pulseIn(PIN_ECHO, HIGH);

  return microsecondsToCentimeters(duration);
}

long microsecondsToCentimeters (long microseconds) {
  return microseconds / 29 / 2;
}

void ledOn() {
  digitalWrite(PIN_LED, HIGH);
}
void ledOff() {
  digitalWrite(PIN_LED, LOW);
}
void turnServoA(int angle) {
  servoA.write(angle);
}

void turnServoB(int angle) {
  servoB.write(180 - angle);
}
void forward() {
  digitalWrite (PIN_IN1, HIGH);
  digitalWrite (PIN_IN2, LOW);
  digitalWrite (PIN_IN3, HIGH);
  digitalWrite (PIN_IN4, LOW);
}
void back() {
  digitalWrite (PIN_IN1, LOW);
  digitalWrite (PIN_IN2, HIGH);
  digitalWrite (PIN_IN3, LOW);
  digitalWrite (PIN_IN4, HIGH);
}

void stop() {
  digitalWrite (PIN_IN1, LOW);
  digitalWrite (PIN_IN2, LOW);
  digitalWrite (PIN_IN3, LOW);
  digitalWrite (PIN_IN4, LOW);
}

void left() {
  digitalWrite (PIN_IN1, LOW);
  digitalWrite (PIN_IN2, HIGH);
  digitalWrite (PIN_IN3, HIGH);
  digitalWrite (PIN_IN4, LOW);
}

void right() {
  digitalWrite (PIN_IN3, LOW);
  digitalWrite (PIN_IN4, HIGH);
  digitalWrite (PIN_IN1, HIGH);
  digitalWrite (PIN_IN2, LOW);
}
Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
Нет в наличии
Предзаказ
арт.
Комплект для сборки движущейся колесной платформы (2WD) на двух двигателях....
4800 тг
Нет в наличии
Предзаказ
арт.
Комплект для сборки движущейся колесной платформы (4WD) на четырех двигателях....
7000 тг
Нет в наличии
Предзаказ
арт.
Комплект для сборки движущейся колесной платформы (2WD) на двух двигателях....
5500 тг 5000 тг
Нет в наличии
Предзаказ
арт.
4200 тг
Нет в наличии
Предзаказ
арт.
14500 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином