Translate

Mengakses 3 SERVO Menggunakan Arduino

Mengakses 3 SERVO Menggunakan Arduino


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses 3 buah servo dengan menggunakan satu buah Arduino, alat ini bisa diaplikasikan ke alat-alat yang membutuhkan servo sebagai penggerak utamanya, namun saran dari saya jika ingin menggunakan servo lebih dari satu lebih baik menggunakan tegangan dengan arus yang cukup dan juga menggunakan servo driver seperti XISC-32 atau yang lainnya. untuk lebih jelasnya berikut komponen dan programnya. 




a. Arduino Uno




b. Motor Servo






c. Program Arduino IDE

#include <Servo.h>
#include <Wire.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;

int bt = 2;
int btx = 0;

void setup() {
myservo1.attach(8);
myservo2.attach(9);
myservo3.attach(10);
 
  myservo1.write(100);
  myservo2.write(100); 
  myservo3.write(100); 

pinMode(bt,INPUT_PULLUP);

}



void loop(){

btx = digitalRead(bt); 

if(btx == 0){ 
 myservo1.write(150);
 delay(1000);
 myservo1.write(100);
 delay(1000);

  
 myservo2.write(150);
 delay(1000);
 myservo2.write(100);
 delay(1000);

  
 myservo3.write(150);
 delay(1000);
 myservo3.write(100);
 delay(1000);

}

}





d. VIDEO HASILNYA









ARDUINO SMART TRASHBIN Tempat Sampah Pemisah Sampah Basah dan Kering Menggunakan Sensor Jarak HC-SRF04 dan Sensor Air / Hujan

ARDUINO SMART TRASHBIN Tempat Sampah Pemisah Sampah Basah dan Kering Menggunakan Sensor Jarak HC-SRF04 dan Sensor Air / Hujan


             Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah tempat sampah otomatis yang dapat memisahkan antara sampah basah dan kering dengan menggunakan Arduino dan sensor air beserta sensor jarak. alat ini menggunakan servo sebagai penggeraknya. untuk lebih jelasnya berikut adalah komponen dan programnya.




a. Arduino Uno




b. Sensor Jarak HC-SRF04




c. Sensor Air / Hujan




d. Motor Servo SG90






e. Program Arduino IDE

#include <Servo.h>
#include <Wire.h>

#define trigPin 2
#define echoPin 3
#define trigPinx 4
#define echoPinx 5

long duration, distance;
long durationx, distancex;
int dataadc1, dataadc2;

Servo myservo1;
Servo myservo2;

 
void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPinx, OUTPUT);
  pinMode(echoPinx, INPUT);
 
  myservo1.attach(9);
  myservo2.attach(10);
  myservo1.write(100);
  myservo2.write(100);
 
  delay(2000);
}



void loop() {

  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;

  digitalWrite(trigPinx, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPinx, HIGH);
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPinx, LOW);
  durationx = pulseIn(echoPinx, HIGH);
  distancex = (durationx/2) / 29.1;

  dataadc1 = analogRead(A0);
  dataadc2 = analogRead(A1);

  Serial.print("Jarak1 = ");
  Serial.print(distance);
  Serial.print(" cm | Jarak2 = ");
  Serial.print(distancex);
  Serial.print(" cm | ");
 
  Serial.print("adc1 = ");
  Serial.print(dataadc1);
  Serial.print(" | ");
  Serial.print("adc2 = ");
  Serial.print(dataadc2);
  Serial.println("  ");
 
 
  //buka
  if(distance < 50){
  myservo1.write(150);
  delay(5000);
  mulai();
  }
 
  //tutup
  if(distance >= 50){
  myservo1.write(100);
  }
   
  delay(200);
}

void mulai(){
 
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;

  digitalWrite(trigPinx, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPinx, HIGH);
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPinx, LOW);
  durationx = pulseIn(echoPinx, HIGH);
  distancex = (durationx/2) / 29.1;

  dataadc1 = analogRead(A0);
  dataadc2 = analogRead(A1);

  Serial.print("Jarak1 = ");
  Serial.print(distance);
  Serial.print(" cm | Jarak2 = ");
  Serial.print(distancex);
  Serial.print(" cm | ");
 
  Serial.print("adc1 = ");
  Serial.print(dataadc1);
  Serial.print(" | ");
  Serial.print("adc2 = ");
  Serial.print(dataadc2);
  Serial.println("  ");
 
  //basah ke kanan
  if((distancex <= 20) && (dataadc1 < 1000)){
  myservo2.write(50);
  delay(5000);
  myservo2.write(100);
  delay(5000);
  return;
  }
 
  //basah ke kanan
  if((distancex <= 20) && (dataadc2 < 1000)){
  myservo2.write(50);
  delay(5000);
  myservo2.write(100);
  delay(5000);
  return;
  }

  //basah ke kanan
  if((distancex <= 20) && (dataadc1 < 1000) && (dataadc2 < 1000)){
  myservo2.write(50);
  delay(5000);
  myservo2.write(100);
  delay(5000);
  return;
  }
 
  //kering ke kiri
  if((distancex <= 20) && (dataadc1 > 1000) && (dataadc2 > 1000)){
  myservo2.write(150);
  delay(5000);
  myservo2.write(100);
  delay(5000);
  return;
  }

delay(200); 
mulai();
}





f. VIDEO HASILNYA