Advertisement
Guest User

codArduino

a guest
Dec 13th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Servo.h>
  2. int trigPin = 9;
  3. int echoPin = 12;
  4. int oprire = 0;
  5. // Pinii motor 1
  6. #define mpin00 5
  7. #define mpin01 6
  8. // Pinii motor 2
  9. #define mpin10 3
  10. #define mpin11 11
  11. int distanta;
  12. long duration;
  13. Servo srv;
  14. void setup() {
  15.   Serial.begin(9600);
  16.   pinMode(trigPin, OUTPUT);
  17.   pinMode(echoPin, INPUT);
  18. }
  19. // Functie pentru controlul unui motor
  20. // Intrare: pinii m1 si m2, directia si viteza
  21. void StartMotor (int m1, int m2, int forward, int speed)
  22. {
  23.  
  24.  if (speed==0) // oprire
  25.  {
  26.  digitalWrite(m1, 0);
  27.  digitalWrite(m2, 0);
  28.  }
  29.  else
  30.  {
  31.  if (forward)
  32.  {
  33.  digitalWrite(m2, 0);
  34.  analogWrite (m1, speed); // folosire PWM
  35.  }
  36.  else
  37.  {
  38.  digitalWrite(m1, 0);
  39.  analogWrite(m2, speed);
  40.  }
  41.  }
  42. }
  43. // Functie de siguranta
  44. // Executa oprire motoare, urmata de delay
  45. void delayStopped(int ms)
  46. {
  47.  StartMotor (mpin00, mpin01, 0, 0);
  48.  StartMotor (mpin10, mpin11, 0, 0);
  49.  delay(ms);
  50. }
  51. // Utilizare servo
  52. // Pozitionare in trei unghiuri
  53. // La final, ramane in mijloc (90 grade)
  54.  
  55. void playWithServoC(int pin, long cm) {
  56.   srv.attach(pin);
  57.   srv.write(90);
  58.   Serial.print("C");
  59.   Serial.println(cm);
  60.   delay(1500);
  61.   srv.detach();
  62. }
  63.  
  64. void playWithServoR(int pin, long cm) {
  65.   srv.attach(pin);
  66.   srv.write(0);
  67.   Serial.print("R");
  68.   Serial.println(cm);
  69.   delay(1500);
  70.   srv.detach();
  71. }
  72.  
  73. void playWithServoL(int pin, long cm) {
  74.   srv.attach(pin);
  75.   srv.write(180);
  76.   Serial.print("L");
  77.   Serial.println(cm);
  78.   delay(1500);
  79.   srv.detach();
  80. }
  81. void playWithServo(int pin)
  82. {
  83.  srv.attach(pin);
  84.  srv.write(0);
  85.  delay(1000);
  86.  srv.write(180);
  87.  delay(1000);
  88.  srv.write(90);
  89.  delay(1000);
  90.  srv.detach();
  91. }
  92.  
  93. int distance(){
  94.   digitalWrite(trigPin, LOW);
  95.   delayMicroseconds(5);
  96.   digitalWrite(trigPin, HIGH);
  97.   delayMicroseconds(10);
  98.   digitalWrite(trigPin, LOW);
  99.   pinMode(echoPin, INPUT);
  100.   duration = pulseIn(echoPin, HIGH);
  101.   distanta = duration / 2 * 0.034;
  102.   return distanta;
  103. }
  104. void loop() {
  105.   int cm = distance();
  106.  
  107.   Serial.println(cm);
  108.   delay(300);
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement