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










Cara Memprogram Arduino - TUTORIAL UPLOAD VERIFY IMPORT LIBRARY SOFTWARE ARDUINO IDE

Cara Memprogram Arduino - TUTORIAL UPLOAD VERIFY IMPORT LIBRARY SOFTWARE ARDUINO IDE


            Pada kesempatan kali ini saya akan menjelaskan mengenai basic tutorial dalam memprogram board arduino, jadi akan dicontohkan mengenai bagaimana cara setting awal sebelum memprogram arduino dan juga cara upload yang benar menggunakan software Arduino IDE. Software Arduino IDE yang digunakan kali ini yaitu versi 1.0.5. disini juga dicontohkan mengenai bagaimana cara meletakkan library atau import library. untuk lebih jelasnya berikut penjelasan lengkapnya.




a. Setting Awal Arduino (Pilih Board dan Port)




b. Untuk Menguji Board Arduino Pilih File -> Example -> Basics -> Blink




c. Sehingga seperti berikut, untuk awalan pilih verify lalu upload




d. Untuk import libarary yaitu ekstrak file.rar lalu taruh di Document/Arduino/Libraries/

 




e. VIDEO TUTORIALNYA








ARDUINO ALAT MONITOR JARAK DAN KECEPATAN MULTIPLE SENSOR HB100 DAN HC-SRF04 VIA BLUETOOTH INTERFACE HANDPHONE ANDROID

ARDUINO ALAT MONITOR JARAK DAN KECEPATAN MULTIPLE SENSOR HB100 DAN HC-SRF04 via BLUETOOTH INTERFACE HANDPHONE ANDROID


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk memantau kecepatan dan jarak menggunakan sensor HB100 dan HC-SRF04. alat ini menggunakan interface handphone android. jadi ada dua data yang dikirimkan dari arduino ke handphone android via bluetooth. untuk lebih jelasnya berikut adalah komponen dan programnya. 




a. Arduino Uno




b. Sensor Kecepatan HB100




c. Sensor Jarak HC-SRF04




d. Modul Bluetooth HC-05






e. Program Arduino IDE

 // Frequency input pin: 8 for ARDUINO UNO. Connect the IF pin from the preamp
 // Frequency input pin: 49 for ARDUINO MEGA. Connect the IF pin from the preamp

#include <FreqMeasure.h>
#define trigPin 2
#define echoPin 3

long duration, distance;
int buzzer = 11;
float frequency;
int freq;

void setup() {
  Serial.begin(9600);
  FreqMeasure.begin();
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzer, OUTPUT);
  digitalWrite(buzzer, LOW);
}

double sum=0;
int count=0;

void loop() {
  if (FreqMeasure.available()) {
    // average 30 readings together
    sum = sum + FreqMeasure.read();
    count = count + 1;
    if (count > 30) {
       frequency = FreqMeasure.countToFrequency(sum / count);
      float spd = frequency / 19.49; //conversion from frequency to kilometers per hour
      //to improve speed, we update only the bottom row of the LCD
//      Serial.print("F= ");
//      Serial.print(frequency);
//      Serial.print("Hz ");
//      Serial.print("SPD= ");
//      Serial.print(spd);
//      Serial.println("km/h");
 
  freq = frequency;
 
  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;

  Serial.print("Hasil|");
  Serial.print(frequency);
  Serial.print("|");
  Serial.println(distance);
 
  sum = 0;
  count = 0;

    }
  }
 
 
  if((freq <= 5) && (distance <= 10))
  {
  digitalWrite(buzzer, HIGH);
  }
 
  else if((freq > 10)&&(freq < 20) && (distance > 10) && (distance < 20))
  {
  digitalWrite(buzzer, HIGH);
  delay(200);
  digitalWrite(buzzer, LOW);
  delay(200);
  }
 
  else if((freq >= 20) && (distance >= 20))
  {
  digitalWrite(buzzer, LOW);
  }
 
  else
 
  {
  digitalWrite(buzzer, LOW);
  }
 
 delay(300);
}





f. Program Android









g. VIDEO HASILNYA










Membuat Power Supply / Adaptor Sendiri 12v / -12v / 5v / -5v dan GND

Membuat Power Supply / Adaptor Sendiri 12v / -12v / 5v / -5v dan GND


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat power supply atau adaptor yang bisa digunakan untuk power microcontroller atau arduino, adaptor ini juga bisa berfungsi untuk menjalankan alat selain microcontroller yang penting tegangan dan arusnya tidak melebihi batas saja. untuk lebih jelasnya berikut adalah skemanya.



a. SKEMATIK 




b. SKEMA PCB BOARD






c. DAFTAR KOMPONEN

- Dioda 1N4004
- Trafo 2A CT
- Heat sink
- Capasitor Polar 2200uF/50v
- Capasitor Polar 220uF/35v
- Capasitor Polar 100uF/50v
- Capasitor Polar 10uF/50v
- Capasitor Ceramics non Polar 100nF
- Capasitor Milar 100nF / 50v
- IC 7805 dan 7905
- IC 7812 dan 7912
- Resistor 330 ohm / 0.25 watt
- Led 3mm merah
- Pin Screw / T-Block 2 Pin 
- Transistor 2N3055 dan 2N2955
- Kabel Secukupnya





d. VIDEO HASILNYA








Alat Deteksi Gas Alkohol Menggunakan microcontroller ATMega32 BASCOM AVR

Alat Deteksi Gas Alkohol Menggunakan Microcontroller ATMega32 BASCOM AVR


        Pada kesempatan berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang berfungsi untuk mendeteksi kadar gas alkohol dengan satuan PPM. alat ini menggunakan sensor TGS2620 dan indikator berupa led dan buzzer. interface yang digunakan adalah LCD 16x2. untuk lebih jelasnya berikut adalah komponen dan programnya. 




a. Minimum System ATMega32




b. LCD 16x2




c. Sensor Gas TGS2620






d. Program Bascom AVR 

'tutorial kalibrasi cek link ini
'http://kursuselektronikaku.blogspot.com/2014/09/membuat-detektor-gas-lpg-liquified.html

$regfile = "m32def.dat"
$crystal = 11059200
$baud = 9600

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2

Cursor Off Noblink
Cls

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim Dataadc As Word
 Dim Gas_ref As Word
Dim Gas As Single
Dim Lpg As String * 5
Dim Vol As String * 5
Dim Tegangan As Single
Dim Teganganx As Single
Dim A As Single
Dim Vo As Single
Dim X As Single
Dim Y As Single
Dim Rs As Single
Dim D As Single
Dim E As Single
Dim Ppm As Single
Dim Ro As Single

Ddrd.7 = 1
Ddrd.4 = 1

Portd.7 = 0
Portd.4 = 0

Ddrb.0 = 1
Ddrb.1 = 1

Start Adc

Do

Gas_ref = Getadc(0)                                         'Nilai tegangan ADC dr out sensor
Gas = Gas_ref
Ro = 633750                                                 'kadar Rs dalam udara bersih (ADC minimal)

Teganganx = Gas_ref / 1023
Tegangan = Teganganx * 5.15                                 'untuk Nilai Menampilkan Tegangan

X = 5.15 - Tegangan
Y = X / Tegangan
Rs = Y * 10000                                              'untuk menemukan nilai Rs

D = Rs / Ro
E = 325.0 / D                                               'dari grafik excel ditemukan 325.0x^-1.54
Ppm = E ^ 0.649                                             '1/1.54
Vol = Fusing(tegangan , "#.##")

Locate 1 , 1
Lcd "Vol= " ; Vol ; "       "
Locate 2 , 1
Lcd "PPM= " ; Fusing(ppm , "#.##") ; "       "

If Ppm > 50 Then
Portb.0 = 0
Portb.1 = 1

'buzzer
Portd.7 = 1
Portd.4 = 0

End If

If Ppm < 50 Then
Portb.0 = 1
Portb.1 = 0

'buzzer
Portd.7 = 0
Portd.4 = 0

End If


Waitms 200
Loop






e. VIDEO HASILNYA









ARDUINO SOIL MOISTURE MONITOR KELEMBABAN TANAH

ARDUINO SOIL MOISTURE MONITOR KELEMBABAN TANAH


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk memonitor kelembaban tanah, alat ini menggunakan arduino dan sensor soil moisture, kemudian interface menggunakan lcd 16x2. untuk lebih jelasnya berikut adalah komponen dan programnya



a. Arduino Uno





b. Sensor Soil Moisture




c. LCD 16x2 + I2C






d. Program Arduino IDE

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

int dryValue = 1023;
int wetValue = 0;
int friendlyDryValue = 100;
int friendlyWetValue = 0;
float nddi;
int rawValue;
float mapping;

void setup()
{
lcd.begin();
lcd.clear();
lcd.noCursor();
lcd.backlight();
}

void loop()
{
 
 rawValue = analogRead(A0);          
 //mapping = map(rawValue, dryValue, wetValue, friendlyDryValue, friendlyWetValue);
 //nddi = mapping /100;

  nddi = map(rawValue, dryValue, wetValue, friendlyDryValue, friendlyWetValue);

  lcd.setCursor(0, 0);
  lcd.print("S= ");
  lcd.print(nddi);
  lcd.print("       ");
 
 
/* 
  if( nddi <= -0.05 ){
  lcd.setCursor(0, 1);
  lcd.print("AIR            ");
  }
 
  if(( nddi > -0.05 )&&(nddi <= 0.01 )){
  lcd.setCursor(0, 1);
  lcd.print("NORMAL         ");
  }
 
  if(( nddi > 0.01 )&&(nddi <= 0.15 )){
  lcd.setCursor(0, 1);
  lcd.print("KERING RINGAN   ");
  }
 
  if(( nddi > 0.15 )&&(nddi <= 0.25 )){
  lcd.setCursor(0, 1);
  lcd.print("KERING SEDANG   ");
  }
 
  if(( nddi > 0.25 )&&(nddi <= 1.00 )){
  lcd.setCursor(0, 1);
  lcd.print("KERING BERAT   ");
  }
 
  if( nddi > 1.00 ){
  lcd.setCursor(0, 1);
  lcd.print("KERING SEKALI   ");
  }
*/

 delay(200);
}





e. VIDEO HASILNYA