0% found this document useful (0 votes)
7 views

Kod

This document contains an Arduino sketch for controlling a robotic vehicle with servo motors and sensors. It includes setup for motor control, sensor input, and communication via serial commands to move the robot forward, backward, left, or right. The code also handles automatic responses based on sensor readings and includes a mechanism to stop the motors and control a servo for a lid.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Kod

This document contains an Arduino sketch for controlling a robotic vehicle with servo motors and sensors. It includes setup for motor control, sensor input, and communication via serial commands to move the robot forward, backward, left, or right. The code also handles automatic responses based on sensor readings and includes a mechanism to stop the motors and control a servo for a lid.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

#include <Servo.

h>

Servo servo_kapak ;

const int RPWM1 = 8;

const int LPWM1 = 7;

const int R_EN1 = 3;

const int L_EN1 = 2;

const int RPWM2 = 12;

const int LPWM2 = 11;

const int R_EN2 = 6;

const int L_EN2 = 5;

static int sag_sensor = 22 ;

static int sol_sensor = 23 ;

static int on_sensor = 24 ;

static int arka_sensor = 25 ;

static int kapak_sensor = 9 ;

int motorSpeed = 50;

int delay_dgr = 2000;

bool trutles = false ;

bool val = true ;

int dgr = 0 ;

char data; // Variable to store received data

char mode ;
void setup() {

pinMode(RPWM1, OUTPUT);

pinMode(LPWM1, OUTPUT);

pinMode(R_EN1, OUTPUT);

pinMode(L_EN1, OUTPUT);

pinMode(RPWM2, OUTPUT);

pinMode(LPWM2, OUTPUT);

pinMode(R_EN2, OUTPUT);

pinMode(L_EN2, OUTPUT);

pinMode(28 , OUTPUT);

pinMode(29 , OUTPUT);

pinMode(30 , OUTPUT);

pinMode(31 , OUTPUT);

pinMode(32 , OUTPUT);

pinMode(33 , OUTPUT);

pinMode(34 , OUTPUT);

pinMode(35, OUTPUT);

pinMode(36 , OUTPUT);

pinMode(37 , OUTPUT);

pinMode(26,INPUT);
servo_kapak.attach(10);

digitalWrite(R_EN1, HIGH);

digitalWrite(L_EN1, HIGH);

digitalWrite(R_EN2, HIGH);

digitalWrite(L_EN2, HIGH);

digitalWrite(28,LOW);

digitalWrite(30,LOW);

digitalWrite(32,LOW);

digitalWrite(34,LOW);

digitalWrite(36,LOW);

Serial.begin(9600);

stopMotors(0);

servo_kapak.write(90);

void loop() {

if (digitalRead(9) == LOW) {

stopMotors(0);

servo_kapak.write(30);

delay(5000);

servo_kapak.write(90);

}
if (val) {

if (Serial.available() > 0) {

data = Serial.read(); // Read received data

Serial.println(data);

// Control motor movement based on received data

switch (data) {

case 'F': // Move Forward

moveForward(25);

break;

case 'B': // Move Backward

moveBackward(25);

break;

case 'L': // Turn Left

turnRight(25);

break;

case 'R': // Turn Right

turnLeft(25);

break;

case 'S': // Stop

stopMotors(0);

break;

case 'X':

val = !val ;

break;
}

else if (!val){

if(digitalRead(on_sensor) == HIGH && digitalRead(arka_sensor) == HIGH


&& digitalRead(sag_sensor) == HIGH && digitalRead(sol_sensor) ==
HIGH ){

moveForward(0);

else if(digitalRead(on_sensor) == LOW && digitalRead(arka_sensor) ==


HIGH && digitalRead(sag_sensor) == HIGH && digitalRead(sol_sensor) ==
HIGH){

dgr = dgr+1 ;

delay(100);

if(dgr == 1 || dgr == 2){

moveBackward(0);

delay(800);

turnRight(0);

delay(delay_dgr);

else if (dgr == 3 || dgr == 4){

moveBackward(0);

delay(800);

turnRight(0);

delay(delay_dgr);
}

if(dgr == 5){

dgr = 0 ;

else if (digitalRead(on_sensor) == LOW && digitalRead(sag_sensor) ==


LOW && digitalRead(arka_sensor) == HIGH && digitalRead(sol_sensor) ==
HIGH ){

moveBackward(0);

delay(800);

turnLeft(0);

delay(delay_dgr);

else if (digitalRead(on_sensor) == LOW && digitalRead(sag_sensor) ==


HIGH && digitalRead(arka_sensor) == HIGH && digitalRead(sol_sensor)
== LOW ){

moveBackward(0);

delay(800);

turnRight(0);

delay(delay_dgr);

else if (digitalRead(on_sensor) == HIGH && digitalRead(sag_sensor) ==


HIGH && digitalRead(arka_sensor) == HIGH && digitalRead(sol_sensor)
== LOW ){

moveBackward(0);

delay(800);

turnRight(0);

delay(delay_dgr);
}

else if (digitalRead(on_sensor) == HIGH && digitalRead(sag_sensor) ==


LOW && digitalRead(arka_sensor) == HIGH && digitalRead(sol_sensor) ==
HIGH ){

moveBackward(0);

delay(800);

turnLeft(0);

delay(delay_dgr);

else if (digitalRead(on_sensor) == HIGH && digitalRead(sag_sensor) ==


LOW && digitalRead(arka_sensor) == HIGH && digitalRead(sol_sensor) ==
LOW ){

moveBackward(0);

delay(800);

else if(digitalRead(on_sensor) == LOW && digitalRead(sag_sensor) ==


LOW && digitalRead(sol_sensor) == LOW && digitalRead(arka_sensor) ==
HIGH ){

moveBackward(0);

else if (digitalRead(on_sensor) == LOW && digitalRead(sag_sensor) ==


LOW && digitalRead(sol_sensor) == LOW && digitalRead(arka_sensor) ==
LOW ){

stopMotors(0);

beep();
}

if (Serial.available() > 0) {

data = Serial.read(); // Read received data

Serial.println(data);

// Control motor movement based on received data

switch (data) {

case 'X': // Move Forward

val = !val;

break;

void moveForward(int dgr) {

analogWrite(RPWM1, 0);

analogWrite(LPWM1, motorSpeed + dgr - 9);

analogWrite(RPWM2, 0);

analogWrite(LPWM2, motorSpeed + dgr );

delay(10);

Serial.println("Ileri gidiyor");

}
void moveBackward(int dgr) {

analogWrite(RPWM1, motorSpeed+ dgr);

analogWrite(LPWM1, 0);

analogWrite(RPWM2, motorSpeed+ dgr);

analogWrite(LPWM2, 0);

Serial.println("Geri gidiyor");

void turnLeft(int dgr) {

analogWrite(RPWM1, 0);

analogWrite(LPWM1, motorSpeed + dgr);

analogWrite(RPWM2, motorSpeed + dgr);

analogWrite(LPWM2, 0);

Serial.println("Sola donuyor");

void turnRight(int dgr) {

analogWrite(RPWM1, motorSpeed + dgr);

analogWrite(LPWM1, 0);

analogWrite(RPWM2, 0);

analogWrite(LPWM2, motorSpeed + dgr);


Serial.println("Saga donuyor");

void stopMotors(int dgr) {

analogWrite(RPWM1, 0);

analogWrite(LPWM1, 0);

analogWrite(RPWM2, 0);

analogWrite(LPWM2, 0);

Serial.println("Motorlar durdu");

void beep (){

// buzzer

You might also like