Today I found an Arduino controlled model train that you can move using your phone.
It uses Arduino Nano as a controller and HC-06 Bluetooth module to connect to the smartphone.
Then the train is driver by the L293D H-Bridge.
Components
Arduino Nano
HC-06 Bluetooth Module
L293D H-Bridge
Connections


// ARDUINORAILMAKET.RU
// SimpleСmdStation.ino
// 05.02.2017
// Author: Steve Massikker
//// GPIO PINS ////
// L298
#define ENA_PIN 3
#define IN1_PIN 4
#define IN2_PIN 5
//// VARIABLES ////
boolean stringComplete = false;
String inputString = "";
void setup() {
// Initialize Serial
Serial.begin(9600);
inputString.reserve(16);
// Initialize Motor Driver
pinMode(ENA_PIN, OUTPUT);
pinMode(IN1_PIN, OUTPUT);
pinMode(IN2_PIN, OUTPUT);
}
void loop() {
if (stringComplete) {
// ----------- START COMMAND PARSING ----------- //
//THROTTLE
if (inputString.charAt(0) =='t') {
if (inputString.charAt(1) =='0') {
analogWrite(ENA_PIN, 0);
}
if (inputString.charAt(1) =='1') {
analogWrite(ENA_PIN, 80);
}
if (inputString.charAt(1) =='2') {
analogWrite(ENA_PIN, 100);
}
if (inputString.charAt(1) =='3') {
analogWrite(ENA_PIN, 150);
}
if (inputString.charAt(1) =='4') {
analogWrite(ENA_PIN, 200);
}
if (inputString.charAt(1) =='5') {
analogWrite(ENA_PIN, 255);
}
}
// DIRECTION
if (inputString.charAt(0) =='d') {
if (inputString.charAt(1) =='r') {
digitalWrite(IN1_PIN, HIGH);
digitalWrite(IN2_PIN, LOW);
}
if (inputString.charAt(1) =='f') {
digitalWrite(IN1_PIN, LOW);
digitalWrite(IN2_PIN, HIGH);
}
if (inputString.charAt(1) =='s') {
digitalWrite(IN1_PIN, LOW);
digitalWrite(IN2_PIN, LOW);
analogWrite(ENA_PIN, 0);
}
}
//TEST
if (inputString.charAt(0) =='j') {
if (inputString.charAt(1) =='a') {
digitalWrite(LED_BUILTIN, HIGH);
}
if (inputString.charAt(1) =='b') {
digitalWrite(LED_BUILTIN, LOW);
}
}
// ----------- END COMMAND PARSING ----------- //
inputString = "";
stringComplete = false;
}
}
// ----------- FUNCTIONS ----------- //
void serialEvent() {
while (Serial.available() ) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == 'z') {
stringComplete = true;
}
}
}


No comments:
Post a Comment