gabbyshimoni icon

small project example code

gabbyshimoni | PRO | 03/16/24 11:49:31 AM UTC | 0 ⭐ | 10895 👁️ | Never ⏰ | [Arduino]
C++ |

2.39 KB

|

Software

|

0 👍

/

0 👎

//push button
#define pbPin 2
int pbState = 0; // 0 - released  1 - pressed
 
//potentiometer
#define potPin A0
int potValue = 0; // range 0-1023
 
// servo motor
#include <Servo.h>
Servo rightServo, leftServo;
 
// dc motor
#define motor1 7
#define motor2 8
#define motorSpeed 6
 
// ultra sonic sensor
#define trig 4
#define echo 5
long distance, duration;
 
// LED
#define Rpin 3
#define Gpin 11
#define Bpin 12
 
void setup() {
  Serial.begin(9600);
  pinMode(pbPin , INPUT);
  pinMode(potPin , INPUT);
  pinMode(motor1 , OUTPUT);
  pinMode(motor2 , OUTPUT);
  pinMode(motorSpeed , OUTPUT);
  pinMode(trig , OUTPUT);
  pinMode(echo , INPUT);
  pinMode(Rpin , OUTPUT);
  pinMode(Gpin , OUTPUT);
  pinMode(Bpin , OUTPUT);
  rightServo.attach(9);
  leftServo.attach(10);
}
 
void loop() {
  // קבלת מידע
  pbState = digitalRead(pbPin);
  Serial.print("pbState=");
  Serial.println(pbState);
  potValue = analogRead(potPin); // 0-1023
  Serial.print("potValue=");
  Serial.println(potValue);
 
  // איתחול השידור על ידי איפוס חיבור ה TRIG
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  // שליחת פולס מעורר
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  // סיום פולס מעורר
  digitalWrite(trig, LOW);
  // המתנה והד מוחזר ומדידת זמן
  duration = pulseIn(echo, HIGH);
  //חישוב המרחק
  distance = duration / 29 / 2;
  Serial.print("distance[cm]=");
  Serial.println(distance);
 
  // עיבוד מידע
 
  if (pbState == 1) {
    // פעולה
    rightServo.write(45);
    delay(300);
    leftServo.write(120);
    delay(300);
  }
  else {
    // פעולה
    rightServo.write(0);
    delay(300);
    leftServo.write(0);
    delay(300);
  }
 
  if (distance < 70) {
    int Speed = map(potValue , 0, 1023, 0, 255); // 0-255
    analogWrite(motorSpeed , Speed);
    digitalWrite(motor1, HIGH);
    digitalWrite(motor2, LOW);
    digitalWrite(Rpin , LOW);
    digitalWrite(Gpin , HIGH);
    digitalWrite(Bpin , LOW);
    delay(500);
    digitalWrite(Rpin , LOW);
    digitalWrite(Gpin , LOW);
    digitalWrite(Bpin , HIGH);
    delay(500);
  }
  else {
    analogWrite(motorSpeed , 0);
    digitalWrite(motor1, LOW);
    digitalWrite(motor2, LOW);
    digitalWrite(Rpin , HIGH);
    digitalWrite(Gpin , LOW);
    digitalWrite(Bpin , LOW);
  }
 
 
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎