BimoSora

AtSanitizer

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