Translate

Mengakses Sensor Jarak SRF04 / SRF05 Menggunakan Bascom AVR

Mengakses Sensor Jarak SRF04 / SRF05 Menggunakan Bascom AVR


        Selamat malam kawan2 semua, saya menulis artikel ini jam 02.20 AM (Woow). Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses sensor jarak SRF04 atau SRF05 menggunakan bahasa bascom AVR atau basic. sebenarnya alat yang akan dibuat kali ini adalah alat pengukur jarak dengan maksimal 1 meter panjangnya. jadi alat ini bisa mengukur secara digital tanpa menggunakan penggaris atau alat ukur lainnya. pada alat ini data hasil pengukuran dikirimkan ke komputer melalui RS232. untuk lebih jelasnya berikut adalah skema dan programnya.  




a. Minimum System + Skema





b. Sensor Jarak SRF04






c. Program Bascom AVR Menggunakan Timer0

$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600

Config Timer0 = Timer , Prescale = 256


Config Portb.1 = Output
Config Pinb.0 = Input

Declare Sub Cek_jarak1

Dim Data_jarak1 As Word
Dim Data_jarak_olah1 As Word
Dim Data_jarak_fix1 As Word

Dim Tinggiair1 As Word

Triger1 Alias Portb.1
Pecho1 Alias Pinb.0

Mulai:


Do
Call Cek_jarak1
  Data_jarak1 = Data_jarak1
  Data_jarak_olah1 = Data_jarak1 * 100
  Data_jarak_fix1 = Data_jarak_olah1 / 256

Print Data_jarak_fix1

Waitms 1


Loop

Sub Cek_jarak1:
Reset Triger1
Waitus 10
Set Triger1
Waitus 20
Reset Triger1

Tcnt0 = 0
Bitwait Pecho1 , Set
Start Timer0

Do
If Pecho1 = 0 Then
Data_jarak1 = Tcnt0
Stop Timer0
Exit Do
End If

If Tifr.0 = 1 Then                                          
Stop Timer0
Tifr.0 = 1
Data_jarak1 = &HFF
Exit Do
End If
Loop

Stop Timer0
Waitms 15
End Sub





d. Program Bascom AVR Menggunakan Timer1
 
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600

Ddrd.0 = 0
Ddrd.1 = 1
Config Portd.0 = Input
Config Portd.1 = Output

Config Timer1 = Timer , Prescale = 64

Trigger Alias Portd.1
Echoo Alias Portd.0

Dim Data_timer As Integer
Dim Data_timer1 As Single
Dim Jarak As String * 6

Do

Gosub Ambil_data

Data_timer1 = Data_timer / 11
Jarak = Fusing(data_timer1 , "##.##")

Print "jarak =" ; Jarak

Waitms 200

Loop



Ambil_data:
Set Trigger
Waitus 10
Reset Trigger

Bitwait Echoo , Set
Data_timer = 0
Timer1 = 0
Start Timer1


Do
If Echoo = 0 Then
Data_timer = Timer1
Stop Timer1
Exit Do
End If

If Tifr.2 = 1 Then
Stop Timer1
Tifr.2 = 1
Data_timer = 0
Exit Do

End If

Loop

Stop Timer1
Return





e. VIDEO HASILNYA












Membuat Arduino Dimmer Led (Dimmer Lamp)

Membuat Arduino Dimmer Led (Dimmer Lamp)


       Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat dengan menggunakan arduino yang fungsinya untuk mengendalikan intensitas cahaya led atau bisa disebut dimmer led. jadi terdapat sebuah potensio yang mana fungsinya adalah untuk mengendalikan intensitasnya dengan memutar ke kiri dan ke kanan. aplikasi dari alat ini sangatlah banyak yaitu bisa digunakan untuk mengatur intensitas cahaya lampu rumah atau lampu tidur, kemudian bisa juga untuk lampu dalam mobil atau lampu interior mobil dan lain-lain. untuk lebih jelasnya berikut adalah skema dan programnya.




a. Arduino Uno + Skema






b. Led 





c. Potensio





d. Program Arduino IDE

int led = 9;

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}


void loop() {

  int sensorValue = analogRead(A0);
 
  if(sensorValue > 255){
  sensorValue = 255;
  }
 
  analogWrite(led, sensorValue);
       
}





e. VIDEO HASILNYA













Modul Trainer Mikrokontroller / Modul Training Kit Mikrokontroller

Modul Trainer Mikrokontroller / Modul Training Kit Mikrokontroller


       Selamat pagi, senang berjumpa dengan pembaca semua, pada kesempatan kali ini saya akan memperkenalkan produk terbaru dari kami yaitu modul trainer mikrokontroller atau bisa juga disebut modul training kit, modul ini bisa di custom sesuai pesanan, misal mau ditambahkan sesuatu atau didesain selera pemesan. modul trainer ini memiliki fitur / komponen seperti berikut.

1. Minimum System ATMega 8535/16/32
2. Voltage Regulator / Rangkaian Step Down Tegangan
3. 8 buah led merah
4. 1 buah buzzer
5. 1 Buah LCD 16x2
6. Rangkaian Serial RS232
7. Downloader USB-ASP
8. Rangkain Motor Driver L293
9. 2 Buah Push Button
10. Buku Panduan Belajar Mikrokontroller

       Lengkap-kan?, tunggu apalagi segera pesan sekarang melalui kontak diatas, untuk pemesanan custom bisa chat via WA atau BBM. waktu pembuatan 3 hari jadi, biaya relatif terjangkau dengan komponen seperti diatas. jika ada yang ditanyakan silahkan chat kami via WA atau BBM. untuk foto lebih detailnya seperti berikut ini.

 Harga : Rp. 850.000 ( Belum Termasuk Ongkir )




 - Foto Alat













Membuat Lampu DIMMER Menggunakan Solid State Relay (SSR) dengan Penampil OLED LCD128x64 dan Kendali SLIDER POTENSIO ARDUINO

Membuat Lampu DIMMER Menggunakan Solid State Relay (SSR) dengan Penampil OLED LCD 128x64 dan Kendali SLIDER POTENSIO ARDUINO


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang digunakan untuk DIMMER lampu menggunakan ARDUINO dan PWM. device kendali tegangan AC yang digunakan adalah solid stste relay (SSR) maksimal arus 2A dan pengatur PWM menggunakan analog slider potensio yang mana cara kerja slider potensio ini sama seperti potensio putar namun yang membedakan yaitu jika potensio biasa itu diputar untuk merubah resistansinya, kalau slider potensio dengan digeser ke atas atau ke bawah untuk merubah resistansinya. mikrokontroller yang digunakan adalah Arduino. penampil nilai PWM dan ADC nya menggunakan LCD OLED 128x64. pada percobaan kali ini menggunakan frekuensi PWM 20 KHz. untuk lebih jelasnya berikut skema dan programnya.




a. Arduino UNO





b. Solid State Relay (SSR)






c. Analog Slider Potensio





d. LCD OLED 128x64






e. Program Arduino IDE

#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);  
#include <PWM.h>

//use pin 11 on the Mega instead, otherwise there is a frequency cap at 31 Hz
int led = 9;                // the pin that the LED is attached to
//int brightness = 0;         // how bright the LED is
//int fadeAmount = 125;         // duty cycle
int32_t frequency = 20000; //frequency (in Hz)

int x;
char tmp_string1[8];
char tmp_string2[8];
int dataadc;
int z;


void draw(void) {

  //float dua angka dibelakang koma
  itoa(z, tmp_string1, 8);
  itoa(dataadc, tmp_string2, 8);
 
  // graphic commands to redraw the complete screen should be placed here
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr(0, 22, "Intensitas= ");
  u8g.drawStr(0, 50, tmp_string1);
  u8g.drawStr(60, 50, tmp_string2);

}

void setup(void) {
 
  //initialize all timers except for 0, to save time keeping functions
  InitTimersSafe();
  Serial.begin(9600);
  //sets the frequency for the specified pin
  bool success = SetPinFrequencySafe(led, frequency);

  //if the pin frequency was set successfully, turn pin 13 on
  if(success) {
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);  
  }


  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
}

void loop(void) {
 
 dataadc = analogRead(A0);

// nilai 1777 maks adc sensor, nilai 0 min adc sensor 
// akan dirubah ke range 0 - 255 , min 0 dan maks 255
 z = map(dataadc, 0, 1777, 0, 255);
     
 pwmWrite(led, z);

  // picture loop
  u8g.firstPage();
  do {
    draw();
  } while( u8g.nextPage() );

  // rebuild the picture after some delay
  delay(500);
}




f. VIDEO HASILNYA













Mengakses Motor Stepper Menggunakan Arduino

Mengakses Motor Stepper Menggunakan Arduino


        Pada kesempatan ini saya akan menjelaskan mengenai bagaimana cara untuk mengendalikan motor steper dengan menggunakan Arduino, jadi ada 2 hal yang bisa dilakukan oleh Arduino terhadap motor stepper yaitu yang pertama adalah kendali kecepatan putarannya dan yang kedua adalah kendali arah putarannya,  jadi Arduino dapat mengendalikan dua buah opsi tersebut. aplikasi alat ini yaitu untuk buka tutup pintu atau pagar, untuk konveyor dan lain sebagainya. yang perlu diperhatikan yaitu konsumsi arus dari motor stepper dan juga konsumsi dayanya, karena jika supply tidak mencukupi kebutuhan tegangan dan arus motor maka akan terjadi drop tegangan. untuk lebih jelasnya berikut adalah skema dan penjelasan programnya.




a. Arduino UNO





b. Skema Motor Stepper Unipolar





c. Skema Motor Stepper Bipolar





d. Motor Stepper dan Driver ULN2003






e. Program Arduino IDE

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

int speedstep = 0;
int stepCount = 0;  // number of steps the motor has taken

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);

void setup() {

}

void loop() {
  //kecepatan putaran 0 - 1023
  speedstep = 900;
 
  // map it to a range from 0 to 100:
  int motorSpeed = map(speedstep, 0, 1023, 0, 100);
 
  // set the motor speed:
  if (motorSpeed > 0) {
    myStepper.setSpeed(motorSpeed);
   
    // step 1/100 of a revolution:
    //cw
    myStepper.step(stepsPerRevolution / 100);
   
    //ccw
    //myStepper.step(-stepsPerRevolution / 100);
   
  }
}




f. Program Arduino Tanpa Library

//sesuaikan dengan PIN yang dipasang
int IN1=8;
int IN2=9;
int IN3=10;
int IN4=11;
int step = 100;
int delaytime=40; //makin kecil delay, makin cepat motor berputar

void setup(){
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
}

void loop(){
//maju 60;
for (int i=0; i<60; i++){
maju();
}
}

void maju(){
//step 4
step1();
delay(delaytime);
//step 3
step2();
delay(delaytime);
//step 2
step3();
delay(delaytime);
//step 1
step4();
delay(delaytime);
}

void mundur(){
//step 4
step4();
delay(delaytime);
//step 3
step3();
delay(delaytime);
//step 2
step2();
delay(delaytime);
//step 1
step1();
delay(delaytime);
}

void step1(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}
void step2(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void step3(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void step4(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}






g. VIDEO HASILNYA














Mengakses RFID RDM6300 / RDM630 dengan Arduino

Mengakses RFID RDM6300 / RDM630 dengan Arduino


       Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses RFID Reader RDM6300 / RDM630 dengan menggunakan Arduino. modul RFID ini sangatlah mudah sekali diakses dan juga harga yang relatif murah dari pada produk RFID reader lainnya. prinsip kerja dari alat ini sangatlah sederhana yaitu menampilkan kode Tag Card dan mencocokkan ID-nya, jika sama maka akan terdapat tulisan yang telah ditentukan, jika berbeda maka ada tulisan yang telah ditentukan pula. alat ini sangat cocok buat buka-tutup pintu atau mesin absensi karyawan. untuk lebih jelasnya berikut adalah skema dan programnya. 




a. Arduino Uno + Skema






b. RFID Reader RDM6300 / RDM630





c. RFID Tag Card 






d. Program Arduino IDE

//sumber:
//http://h-language.blogspot.co.id/2016/06/rdm6300-125khz-rfid-arduino.html

#include <SoftwareSerial.h>
SoftwareSerial RFID(4, 5); // RX and TX

String Teks;
String NoKartu  ;  //No kartu RFID

void setup()
{
Serial.begin(9600);
RFID.begin(9600);
Serial.println("Dekatkan kartu RFID anda …");

NoKartu="48006B440D"; // Masukkan nomor kartu untuk akses (dalam hexa)
}
boolean state=false;
char c;

void loop()
{
while(RFID.available()>0){

delay(5);
c=RFID.read();
Teks += c;
}
if(Teks.length()>20) Cek();
Teks="";
}

void Cek()
{

Teks=Teks.substring(1,11);
Serial.println("ID Kartu anda : "+Teks);
Serial.println("ID Akses : "+NoKartu);

if(NoKartu.indexOf(Teks)>=0)
Serial.println("Akses diterima, pintu terbuka otomatis …");
else Serial.println("Akses ditolak…");

delay(2000);

Serial.println(" ");

Serial.println("Dekatkan kartu RFID anda …");

}





e. VIDEO HASILNYA














Mengakses Sensor Warna / Color Sensor TCS3200 dengan Arduino Untuk Mendeteksi Warna

Mengakses Sensor Warna / Color Sensor TCS3200 dengan Arduino Untuk Mendeteksi Warna


      Pada tulisan kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat deteksi warna dengan menggunakan sensor warna TCS3200. mikrokontroller yang digunakan adalah Arduino Uno. prinsip kerja dari alat ini hanyalah mengambil data frequency yang dihasilkan oleh sensor, yang mana selanjutnya bisa dilakukan diagnose terhadap warna terkait dengan menggunakan perintah IF dan IF else. untuk lebih jelasnya berikut adalah skema dan programnya. 




a, Arduino Uno





b. Sensor Warna TCS3200




c. Program Arduino IDE

//sumber:
//http://howtomechatronics.com/tutorials/arduino/arduino-color-sensing-tutorial-tcs230-tcs3200-color-sensor/
#define S0 2
#define S1 3
#define S2 4
#define S3 5
#define sensorOut 6
int frequency = 0;


void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
 
  // Setting frequency-scaling to 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
 
  Serial.begin(9600);
}


void loop() {
  // Setting red filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);
  // Setting Green filtered photodiodes to be read
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);
  // Setting Blue filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}





d. VIDEO HASILNYA