Advertisement
BimoSora

AtSanitizer Prog

May 11th, 2020
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. #include <Servo.h>
  2. // membuat nama objek servo untuk pengontrolan servo
  3. Servo myservo;
  4. // variable
  5. int pos = 0;
  6. int trig= 11; // membuat varibel trig yang di set ke-pin 3
  7. int echo= 12; // membuat variabel echo yang di set ke-pin 2
  8. long durasi; // membuat variabel durasi
  9. int jarak; // membuat variabel jarak
  10. int pinSpeaker= 8; // membuat variabel Buzzer yang di set ke-pin 8
  11.  
  12. void setup() {
  13. pinMode(trig, OUTPUT); // set pin trig menjadi OUTPUT
  14. pinMode(echo, INPUT); // set pin echo menjadi INPUT
  15. pinMode(pinSpeaker, OUTPUT); // set pin buzzer menjadi OUTPUT
  16. Serial.begin(9600); // digunakan untuk komunikasi Serial dengan komputer
  17. myservo.attach(9); // objek servo diletakan pada pin 9
  18. }
  19.  
  20. void loop() {
  21. // start dari 0 derajar sampai 180 derajat
  22. for(pos = 0; pos < 180; pos += 1)
  23. {
  24. // pada posisi 1 derajat
  25. // memberitahu servo untuk pergi ke posisi 'pos'
  26. myservo.write(pos);
  27. // tunggu 50ms untuk pencapaian posisi servo
  28. delay(50);
  29. jarak = calculateDistance(); // mencatat jarak
  30. if(jarak <= 10) // Ketika ada objek musuh mendekat dengan jarak kurang dari 10 cm dari Sensor Ultrasonik maka Buzzer akan menyala
  31. {
  32. digitalWrite(pinSpeaker, HIGH);
  33. }else{
  34. digitalWrite(pinSpeaker, LOW);
  35. }
  36. }
  37. // start dari 180 derajat ke 0 derajat
  38. for(pos = 180; pos>=1; pos-=1)
  39. {
  40. // memberitahu servo untuk pergi ke posisi 'pos'
  41. myservo.write(pos);
  42. // tunggu 50ms untuk pencapaian posisi servo
  43. delay(50);
  44. jarak = calculateDistance(); // mencatat jarak
  45. if(jarak <= 10) // Ketika ada objek musuh mendekat dengan jarak kurang dari 10 cm dari Sensor Ultrasonik maka Buzzer akan menyala
  46. {
  47. digitalWrite(pinSpeaker, HIGH);
  48. }else{
  49. digitalWrite(pinSpeaker, LOW);
  50. }
  51. }
  52. }
  53.  
  54. void playTone(long duration, int freq) {
  55. duration *= 1000;
  56. int period = (1.0 / freq) * 1000000;
  57. long elapsed_time = 0;
  58. while (elapsed_time < duration) {
  59. digitalWrite(pinSpeaker,HIGH);
  60. delayMicroseconds(period / 2);
  61. digitalWrite(pinSpeaker, LOW);
  62. delayMicroseconds(period / 2);
  63. elapsed_time += (period);
  64. }
  65. }
  66.  
  67. int calculateDistance(){
  68. // program dibawah ini agar trigger memancarakan suara ultrasonic
  69. digitalWrite(trig, LOW);
  70. delayMicroseconds(2);
  71. digitalWrite(trig, HIGH);
  72. delayMicroseconds(10);
  73. digitalWrite(trig, LOW);
  74. delayMicroseconds(8);
  75.  
  76. durasi= pulseIn(echo, HIGH); // menerima suara ultrasonic
  77. jarak= (durasi/2) / 29.1; // mengubah durasi menjadi jarak (cm)
  78. Serial.println(jarak); // menampilkan jarak pada Serial Monitor
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement