Translate

Membuat Alat Pelacak Posisi Menggunakan GPS EM411 dan SMS GATEWAY ARDUINO

Membuat Alat Pelacak Posisi Menggunakan GPS EM411 dan SMS GATEWAY ARDUINO


         Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang dapat melacak posisi keberadaan suatu benda misalnya sepeda motor atau mobil dengan menggunakan GPS dan SMS. jadi prinsip kerja alat ini yaitu dapat mengirimkan posisi dimana sekarang berada dengan mengirimkan sms "Monitor" maka akan dibalas dengan balasan berupa posisi sekarang yaitu koordinat latitude dan longitude-nya. alat ini menggunakan Arduino sebagai processornya dan modul sms menggunakan SIM800l. untuk GPS menggunakan TinyGPS EM411. untuk lebih jelasnya berikut adalah program dan skemanya.


Link Library GPS




a. Arduino Mega





b. LCD 16x2





c. GPS EM411





d. Modul SMS SIM800L





e. Buck Converter






f. Program Arduino IDE

#include <TinyGPS++.h>
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);

static const uint32_t GPSBaud = 4800;

// The TinyGPS++ object
TinyGPSPlus gps;
#include "sms.h"
SMSGSM sms;


char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
char strsms[5];
char latstr[20];
char lonstr[20];
char latlonstr[20];

void setup()
{

  Serial1.begin(GPSBaud);

     if (gsm.begin(2400)) {
          started=true;
     } else {
     }
     if(started) {

         // if (sms.SendSMS("085726496643", "ALAT READY ok"));
        
     }

  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();

}

void loop()
{

  while (Serial1.available() > 0)
    if (gps.encode(Serial1.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    while(true);
  }
}

void displayInfo()
{

  if (gps.location.isValid())
  {
   
  lcd.setCursor(0, 0);
  lcd.print("LAT= ");
  lcd.print(gps.location.lat(), 6);
  lcd.setCursor(0, 1);
  lcd.print("LNG= ");
  lcd.print(gps.location.lng(), 6);
 
  dtostrf(gps.location.lat(),10,6,latstr);
  dtostrf(gps.location.lng(),10,6,lonstr);
  sprintf(string,"LAT= %s, LONG= %s", latstr, lonstr);
 
 if(gsm.begin(9600)){
  started=true;
 }
 int pos=0;
 if(started){
  pos=sms.IsSMSPresent(SMS_ALL);
  if(pos){
    sms.GetSMS(pos,n,smsbuffer,100);
  
    if(!strcmp(smsbuffer,"monitor")){
      sms.SendSMS(n,string);
    }
    if(!strcmp(smsbuffer,"Monitor")){
      sms.SendSMS(n,string);
    }
 
    delsms();
  }
 }
  delay(100);
 
 
  }
  else
  {


  }

}



void delsms()
{
  for (int i=0; i<10; i++)
  {
      int pos=sms.IsSMSPresent(SMS_ALL);
      if (pos!=0)
      {
        if (sms.DeleteSMS(pos)==1){}else{}
      }
  }
}





g. Gambar Hasilnya







h. VIDEO HASILNYA











Membuat Servo Controller Menggunakan Arduino dan Driver Servo I2C Shield

Membuat Servo Controller Menggunakan Arduino dan Driver Servo I2C Shield


         Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah servo controller dengan menggunakan arduino dan servo driver i2c shield buatan adafruit industries. prinsip kerja alat ini adalah mengendalikan posisi horn servo sesuai dari nilai yang diinputkan melalui tombol. alat ini menggunakan lcd dan tombol untuk mengetahui nilai yang diset oleh user dan juga jika ingin mengembalikan posisi servo pada titik awal juga bisa. alat ini menggunakan arduino sebagai kontrollernya. untuk lebih jelasnya berikut adalah skema dan programnya.




a. Arduino Mega 





b. Driver Servo i2c Shield





c. Motor Servo





d. Program Arduino IDE

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(3, 2, 7, 6, 5, 4);

// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

//setting pin 47
//up pin 53
//down pin 51
//ok pin 49

int btset = 47;
int btup = 53;
int btdown = 51;
int btok = 49;
int xz = 0;
int setx = 0;
int upx = 0;
int downx = 0;
int okx = 0;

int posisi1 = 200;
int posisi2 = 200;

int posisi1x = 200;
int posisi2x = 200;


//#define SERVOMIN  200
//#define SERVOMAX  600

// our servo # counter
uint8_t servonum;

void setup() {
//  Serial.begin(9600);
//  Serial.println("16 channel Servo test!");
  pinMode(btset,INPUT);
  pinMode(btok,INPUT);
  pinMode(btup,INPUT);
  pinMode(btdown,INPUT);

  digitalWrite(btset,HIGH);
  digitalWrite(btok,HIGH);
  digitalWrite(btup,HIGH);
  digitalWrite(btdown,HIGH);
 
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
 
  pwm.begin();
 
  pwm.setPWMFreq(60);  // Analog servos run at ~60 Hz updates

  yield();
}

// you can use this function if you'd like to set the pulse length in seconds
// e.g. setServoPulse(0, 0.001) is a ~1 millisecond pulse width. its not precise!
void setServoPulse(uint8_t n, double pulse) {
  double pulselength;
 
  pulselength = 1000000;   // 1,000,000 us per second
  pulselength /= 60;   // 60 Hz
//  Serial.print(pulselength); Serial.println(" us per period");
  pulselength /= 4096;  // 12 bits of resolution
//  Serial.print(pulselength); Serial.println(" us per bit");
  pulse *= 1000;
  pulse /= pulselength;
//  Serial.println(pulse);
  pwm.setPWM(n, 0, pulse);
}

void loop() {

setx = digitalRead(btset);
okx = digitalRead(btok);
downx = digitalRead(btdown);

  lcd.setCursor(0, 0);
  lcd.print("PILIH MENU");
  lcd.setCursor(0, 1);
  lcd.print(posisi1x);
  lcd.print(" ");
  lcd.print(posisi2x);
 
if(setx == 0){
  lcd.clear();
  delay(200);
  pilih();
  delay(1000);
  pilih2();
  delay(1000);
  }

pwm.setPWM(0, 0, posisi1x);
delay(500);
pwm.setPWM(1, 0, posisi2x);
delay(500);


if(downx == 0){

posisi1x = 200;
posisi2x = 200;

  }



}



void pilih(){

upx = digitalRead(btup);
downx = digitalRead(btdown);
okx = digitalRead(btok);
setx = digitalRead(btset);
  
  lcd.setCursor(0, 0);
  lcd.print("SET SERVO 1  ");
  lcd.print(xz);
  lcd.setCursor(0, 1);
  lcd.print("Posisi= ");
  lcd.print(posisi1);


if(setx == 0){
delay(200);
xz++;
}


if(xz > 1){
xz = 0; 
}


if(upx == 0){
  delay(200);
  if(xz == 0){
  posisi1 = posisi1 + 1;
  }
  if(xz == 1){
  posisi1 = posisi1 + 10;
  }
}

if(downx == 0){
  delay(200);
  if(xz == 0){
  posisi1 = posisi1 - 1;
  }
  if(xz == 1){
  posisi1 = posisi1 - 10;
  }
 
}

if(okx == 0){
  delay(200);
  posisi1x = posisi1;
  lcd.clear();
  return;
}


  pilih(); 
}





void pilih2(){

upx = digitalRead(btup);
downx = digitalRead(btdown);
okx = digitalRead(btok);
setx = digitalRead(btset);
   
  lcd.setCursor(0, 0);
  lcd.print("SET SERVO 2  ");
  lcd.print(xz);
  lcd.setCursor(0, 1);
  lcd.print("Posisi= ");
  lcd.print(posisi2);


if(setx == 0){
delay(200);
xz++;
}


if(xz > 1){
xz = 0; 
}

if(upx == 0){
  delay(200);
  if(xz == 0){
  posisi2 = posisi2 + 1;
  }
  if(xz == 1){
  posisi2 = posisi2 + 10;
  }
}

if(downx == 0){
  delay(200);
  if(xz == 0){
  posisi2 = posisi2 - 1;
  }
  if(xz == 1){
  posisi2 = posisi2 - 10;
  }
 
}

if(okx == 0){
  delay(200);
  posisi2x = posisi2;
  lcd.clear();
  return;
}


  pilih2(); 
}





e. VIDEO HASILNYA











Komunikasi 2 Mikrokontroller dengan 433 MHz RF LINK Kit Bascom AVR

Komunikasi 2 Mikrokontroller dengan 433 MHz RF LINK Kit Bascom AVR


       Pada pembahasan kali ini akan dijelaskan bagaimana cara berkomunikasi antar mikrokontroller, hanya sebatas master dan slave yang jumlahnya 1 master dan 1 slave tidak lebih karena modul 433Mhz RF Link Kit hanya bisa menerima 1 macam data dari transmitter yang terdeteksi oleh receiver, jadi kalau ada dua transmitter dengan frekuensi 433Mhz akan mengakibatkan kerancuan data yang diterima oleh receiver, itulah kelemahan yang ada di modul wireless ini, untuk bentuk alatnya seperti Gambar 6.42a berikut.


       Seperti halnya komunikasi antar mikrokontroller, pada alat ini akan menampilkan data yang dikirimkan oleh transmitter / master kemudian data tersebut ditampilkan ke LCD 16x2 yang terdapat pada bagian receiver / slave, menurut datasheet modul 433Mhz RF Link Kit bisa berkomunikasi maksimal 90 meter di area terbuka tanpa halangan, pada minimum sistem transmitter terdapat satu buah tombol yang mana akan mengirimkan data lain jika di tekan tombol tersebut sehingga total ada 2 data berbeda yang akan dikirimkan, yaitu saat tombol ditekan misal akan mengirimkan huruf “Y” dan saat tombol dilepas akan mengirimkan huruf “X”, seperti itu gambaran kerja alat ini. Fungsi dari alat ini yaitu bisa dikembangkan untuk pengendali gerak robot secara wireless atau yang lainnya. Tujuan dibuatnya alat ini yaitu untuk mengetahui bagaimana berkomunikasi antar mikrokontroller secara wireless menggunakan 433Mhz RF Link Kit.


- Prinsip Kerja Alat

     Alat ini menggunakan 2 buah mikrokontroller bisa bertipe sama atau tidak, tapi yang lebih baik menggunakan mikrokontroller setipe keduanya misal ATMega16 dengan crystal 11.059200 pada bagian master kemudian bagian slave pun seperti itu, jadi setipe lebih bagus, terdapat sebuah tombol push button pada bagian transmitter dan pada bagian receiver terdapat lcd 16x2. Pertama data dikirimkan oleh transmitter melalui port serial TX, kemudian data dilewatkan ke frekuensi 433Mhz yang akan diterima oleh rangkaian receiver, saat data telah diterima maka data tersebut langsung ditampilkan ke layar LCD 16x2, penerimaan data menggunakan port RX serial, jadi bisa disebut komunikasi secara serial dengan media udara / frekuensi 433Mhz, untuk lebih jelasnya perhatikan bagan berikut.      



- Rangkaian Hardware

       Untuk membuat alat ini memerlukan beberapa kompunen yaitu 2 buah minimum sistem ATMega16 dengan LCD display 16x2 dan push button serta modul 433Mhz RF Link Kit wireless.berikut penjelasan masing-masing komponen
a. 433Mhz RF Link Kit Module
       Modul 433Mhz RF Link Kit digunakan untuk mengirimkan data yang berupa angka atau huruf dari master ke receiver, jadi modul ini saat pembelian terdapat 2 buah modul yaitu master dan slave satu paketnya, untuk spsifikasi modul ini seperti berikut

1. Menggunakan media frekuensi 433Mhz
2. Tegangan kerja 5 volt dc
3. Jarak transfer maksimal 90 meter di area terbuka
4. Receiver Data Output: High - 1/2 Vcc, Low - 0.7v 
5. Transmitter Input Voltage: 3-12V 

Untuk menghubungkan ke mikrokontroller, hubungkan modul master ke bagian TX / PortD.1 mikrokontroller kemudian bagian slave dihubungkan ke RX / PortD.0 untuk penerimaan data, berikut gambar dan penjelasannya seperti Gambar






- Rangkaian Minimum Sistem ATMega16




Bahan – bahan :
1. Crystal 12 MHz x 1 buah
2. ATMega16 + Socket 40 pin x 1 buah
3. Capasitor 22p x 2 buah
4. LCD Display x 1 buah
5. Resistor 4K7 x 3 buah
6. Capasitor 104p x 4 buah
7. IC7805T x 1 buah
8. Capasitor polar 100uF x 1 buah
9. Capasitor polar 10uF x 1 buah
10. Capasitor 103p x 1 buah
11. Pinheader Male Secukupnya
12. Pinheader Female Secukupnya
13. Push Button x 1 Buah




- Program untuk master
$regfile = "m16def.dat"
$crystal = 11059200
$baud = 9600
Ddrb.0 = 0
Set Portb.0
Do
If Pinb.0 = 0 Then
Print "Y"
Else
Print "X"
End If
Loop




- Program untuk slave
$regfile = "m16def.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
Dim Teks As String * 16
Cls
Cursor Off
Do
Cls
Input Teks
Upperline
Lcd Teks
Waitms 100
Loop




- Cara Penggunaan Alat
       Untuk menggunakan alat ini pertama aktifkan kedua minimum sistem dengan memberikan tegangan 12 volt atau 9 volt dc kemudian lihat apa yang tertulis pada layar LCD 16x2 bagian slave, jika tombol ditekan akan mengirimkan huruf  “Y” namun jika dilepas atau tidak ditekan maka akan mengirimkan huruf “X”.



- VIDEO HASILNYA










Membuat Genset Switch Otomatis Pengganti Aki dan Inverter

Membuat Genset Switch Otomatis Pengganti Aki dan Inverter


        Pada kesempatan kali ini saya akan membahas mengenai bagaimana cara membuat sebuah alat yang memadukan antara sumber dari aki dan sumber dari genset, prinsip kerja alat ini yaitu terdapat solat panel atau PV (photovoltaic) yang akan mengisi battery aki, tegangan DC aki kemudian dikonversikan ke AC menggunakan inverter untuk menghidupkan lampu AC dan lainnya, jika aki sudah habis maka akan switch otomatis ke genset, jadi genset akan menyala dengan sendirinya tanpa bantuan petugas jaga, sehingga akan lebih cepat dan efisien. yang perlu diperhatikan yaitu mekanisme dalam menghidupkan genset, karena akan ada step CHOOKE dan RUN saat Knob Stater On. Untuk lebih jelasnya berikut adalah skema dan programnya.




a. Arduino Mega





b. Sensor Arus ACS712





c. Sensor Tegangan AC ZMPT101b






d. Mekanisme Genset









e. Program Arduino IDE

#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

int vin = 0;
int iin = 0;

unsigned long start_times[300];
unsigned long stop_times[300];
unsigned long values[300];

// Define various ADC prescaler
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

int a = 0;
int zero = 1;

int switchmr = 17;
int switchck = 16;
int switchmrx = 0;
int switchckx = 0;
int mark = 0;



void setup() {
pinMode(switchmr,INPUT);
pinMode(switchck,INPUT);

pinMode(13,OUTPUT);
pinMode(22,OUTPUT);
pinMode(24,OUTPUT);

pinMode(46,OUTPUT);
pinMode(48,OUTPUT);
pinMode(50,OUTPUT);
pinMode(52,OUTPUT);

digitalWrite(16,HIGH);
digitalWrite(17,HIGH);

  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
  pinMode(14,OUTPUT);
  pinMode(15,OUTPUT);

 
  // set up the ADC
  ADCSRA &= ~PS_128;  // remove bits set by Arduino library

  // you can choose a prescaler from above.
  // PS_16, PS_32, PS_64 or PS_128
  ADCSRA |= PS_128;    // set our own prescaler to 64


 
}


void loop() {
 
  unsigned int i;
  unsigned int z;
  z = 0;
   
  // capture the values to memory
  for(i=0;i<300;i++) {
    start_times[i] = micros();
    values[i] = analogRead(A0);             
 
  if (values[i] >= z) {
  z = values[i]; 
  }
    stop_times[i] = micros();
  }

   int vin = z ;

  z = 0;
 
  //================================
  // capture the values to memory
  for(i=0;i<300;i++) {
    start_times[i] = micros();
    values[i] = analogRead(A1);             
 
  if (values[i] >= z) {
  z = values[i]; 
  }
    stop_times[i] = micros();
  }
     float v1 = z * (5.0/1023.0);
     float iin = (v1-2.5)/0.1 ;

if (iin < 0) {
iin = 0;
}

 z = 0;

//INVEERTER NYALA
if((vin >= 700)&&(mark == 0)){

  //MATIKAN SAKLAR GENSET
  digitalWrite(22,LOW);
  digitalWrite(24,LOW);
  delay(2000); 

  //PUTAR KE CHOOKE
  //kiri
  //mtrkanan
  digitalWrite(46,LOW);
  digitalWrite(48,HIGH);
  delay(200);
  digitalWrite(46,LOW);
  digitalWrite(48,LOW);
  lcd.clear();
 
  cuke();
 
  delay(5000);
 
//HIDUPKAN RELAY INVERTER
  digitalWrite(14,HIGH);
  digitalWrite(15,HIGH);
  delay(1000);


/*
//PUTAR KE RUN
//kanan 
//mtrkiri
  digitalWrite(50,HIGH);
  digitalWrite(52,LOW);
  delay(200);
  digitalWrite(50,LOW);
  digitalWrite(52,LOW);
  lcd.clear();

  run();
*/

  mark = 1;
 
}



// KONDISI INVERTER OFF
if((vin < 700)&&(mark == 1)){

//RELAY INVERTER OFF
  digitalWrite(14,LOW);
  digitalWrite(15,LOW);
  delay(3000);

//HIDUPKAN SAKLAR GENSET
  digitalWrite(22,HIGH);
  digitalWrite(24,LOW); 
  delay(3000);

/*
//PUTAR KE CHOOKE
  //kiri
  //mtrkanan
  digitalWrite(46,LOW);
  digitalWrite(48,HIGH);
delay(200);
  digitalWrite(46,LOW);
  digitalWrite(48,LOW);
  lcd.clear();
 
  cuke();
 
  delay(5000);
*/

//PUTAR KE RUN
//kanan 
//mtrkiri
  digitalWrite(50,HIGH);
  digitalWrite(52,LOW);
  delay(200);
  digitalWrite(50,LOW);
  digitalWrite(52,LOW);
  lcd.clear();

  run();

  delay(2000);

//MATIKAN SAKLAR GENSET
  digitalWrite(22,LOW);
  digitalWrite(24,LOW);
  delay(10000);
 
  digitalWrite(24,HIGH);

  mark = 0;
 
}

lcd.clear();
delay(1000);

if(vin > 700){
vin = 220;
}else if(vin < 700){
vin = 0;
}

  lcd.setCursor(0, 0);
  lcd.print("v= ");
  lcd.print(vin);
 
  lcd.setCursor(0, 1);
  lcd.print("I= ");
  lcd.print(iin);
 

delay(2000);
lcd.clear();


}


void run(){

  lcd.setCursor(0, 0);
  lcd.print("RUN");

 
  //kanan
//mtrkanan
  digitalWrite(46,HIGH);
  digitalWrite(48,LOW);
 
switchmrx = digitalRead(17);
 
if(switchmrx == 0){
  digitalWrite(46,LOW);
  digitalWrite(48,LOW);

  return;

    
run();
}



void cuke(){

  lcd.setCursor(0, 0);
  lcd.print("choke");

//kiri 
//mrtkiri
  digitalWrite(50,LOW);
  digitalWrite(52,HIGH);

 switchckx = digitalRead(16);

 if(switchckx == 0){
 digitalWrite(50,LOW);
 digitalWrite(52,LOW);

 mark = 0;
 return;
 }

cuke();
}






f. VIDEO HASILNYA









 

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