Program Robot Pemadam Api

  Berikut ini adalah program robot pemadam api.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define in1 2 //L298n Motor Driver pins.
#define in2 3
#define in3 4
#define in4 5
#define LED 6

int command; //Int to store app command state.
int Speed = 204; // 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; //Set the radius of a turn, 0 - 255 Note:the robot will malfunction if this is higher than int Speed.
int brakeTime = 45;
int brkonoff = 1; //1 for the electronic braking system, 0 for normal.

int gasPin = A0;
int flamePin = 13;
// Your threshold value
int gasSensorThres = 150;

void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(LED, OUTPUT); //Set the LED pin.

lcd.begin();
lcd.backlight();

pinMode(gasPin, INPUT);
pinMode(flamePin, INPUT);
Serial.begin(9600); //Set the baud rate to your Bluetooth module.
}

void loop() {
int gasSensor = analogRead(gasPin);
int flameSensor = digitalRead(flamePin);

if (gasSensor > gasSensorThres) {
lcd.setCursor(0, 0);
lcd.print("Ada Asap");
delay(3000);
lcd.setCursor(9, 0);
lcd.print(":Bahaya");
}

if (flameSensor == LOW) {
lcd.setCursor(0, 1);
lcd.print("Ada Api");
delay(3000);
lcd.setCursor(7, 1);
lcd.print(":SiramApi");
}

if (Serial.available() > 0) {
command = Serial.read();
Stop(); //Initialize with motors stoped.
switch (command) {
case 'F':
forward();
break;
case 'B':
back();
break;
case 'L':
left();
break;
case 'R':
right();
break;
case 'G':
forwardleft();
break;
case 'I':
forwardright();
break;
case 'H':
backleft();
break;
case 'J':
backright();
break;
case 'V':
{
digitalWrite(LED, HIGH);
}
break;
case 'v':
{
digitalWrite(LED, LOW);
};
break;
case '0':
Speed = 100;
break;
case '1':
Speed = 140;
break;
case '2':
Speed = 153;
break;
case '3':
Speed = 165;
break;
case '4':
Speed = 178;
break;
case '5':
Speed = 191;
break;
case '6':
Speed = 204;
break;
case '7':
Speed = 216;
break;
case '8':
Speed = 229;
break;
case '9':
Speed = 242;
break;
case 'q':
Speed = 255;
break;
}
Speedsec = Turnradius;
if (brkonoff == 1) {
brakeOn();
} else {
brakeOff();
}
}
}

void forward() {
analogWrite(in1, Speed);
analogWrite(in3, Speed);
}

void back() {
analogWrite(in2, Speed);
analogWrite(in4, Speed);
}

void left() {
analogWrite(in3, Speed);
analogWrite(in2, Speed);
}

void right() {
analogWrite(in4, Speed);
analogWrite(in1, Speed);
}
void forwardleft() {
analogWrite(in1, Speedsec);
analogWrite(in3, Speed);
}
void forwardright() {
analogWrite(in1, Speed);
analogWrite(in3, Speedsec);
}
void backright() {
analogWrite(in2, Speed);
analogWrite(in4, Speedsec);
}
void backleft() {
analogWrite(in2, Speedsec);
analogWrite(in4, Speed);
}

void Stop() {
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
}

void brakeOn() {
//Here's the future use: an electronic braking system!
// read the pushbutton input pin:
buttonState = command;
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == 'S') {
if (lastButtonState != buttonState) {
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
delay(brakeTime);
Stop();
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
}
}

void brakeOff() {
}

Atau silakan download di sini. >> DOWNLOAD <<

Comments