Minggu, 31 Maret 2013

arduino with dht11 and iic lcd

hari ini saya akan merubah tampilan dht11 yang kemaren tampak di serial monitornya software arduino saya ganti dengan iic lcd......
langsung saja ke bahan yang diperlukan:
-arduino
-sensor suhu dan kelembapan dht11
-iic lcd
-white board 
-kabel jumper

dan ini untuk programnya:
#define DHT11_PIN 0      // define anlog  port 0
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

 
byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while(!(PINC & _BV(DHT11_PIN)))
    {};  // wait  forever until anlog input port 0 is '1'   (NOTICE: PINC reads all the analog input ports 
    //and  _BV(X) is the macro operation which pull up positon 'X'to '1' and the rest positions to '0'. it is equivalent to 1<<X.) 
    delayMicroseconds(30);
    if(PINC & _BV(DHT11_PIN))  //if analog input port 0 is still '1' after 30 us
      result |=(1<<(7-i));     //this position is 1
    while((PINC & _BV(DHT11_PIN)));  // wait '1' finish
    }
    return result;
}
 
 
void setup()
{
  DDRC |= _BV(DHT11_PIN);   //let analog port 0 be output port 
  PORTC |= _BV(DHT11_PIN);  //let the initial value of this port be '1'
  Serial.begin(9600);
  
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.println("Ready");
}
     
void loop()     
{
  lcd.clear();
  byte dht11_dat[5];    
  byte dht11_in;
  byte i;// start condition
      
  PORTC &= ~_BV(DHT11_PIN);    // 1. pull-down i/o pin for 18ms
  delay(18);
  PORTC |= _BV(DHT11_PIN);     // 2. pull-up i/o pin for 40us
  delayMicroseconds(1);
  DDRC &= ~_BV(DHT11_PIN);     //let analog port 0 be input port 
  delayMicroseconds(40);      
   
  dht11_in = PINC & _BV(DHT11_PIN);  // read only the input port 0
  if(dht11_in)
  {
    lcd.println("dht11 start condition 1 not met"); // wait for DHT response signal: LOW
    delay(1000);
    return;
  }
  delayMicroseconds(80);
  dht11_in = PINC & _BV(DHT11_PIN); //  
  if(!dht11_in)
  {
    lcd.println("dht11 start condition 2 not met");  //wair for second response signal:HIGH
    return;
  }
   
  delayMicroseconds(80);// now ready for data reception
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}  //recieved 40 bits data. Details are described in datasheet
   
  DDRC |= _BV(DHT11_PIN);      //let analog port 0 be output port after all the data have been received
  PORTC |= _BV(DHT11_PIN);     //let the  value of this port be '1' after all the data have been received
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];// check check_sum
  if(dht11_dat[4]!= dht11_check_sum)
  {
    lcd.println("DHT11 checksum error");
  }
  lcd.print("humdity = ");
  lcd.print(dht11_dat[0], DEC);
  lcd.print(".");
  lcd.print(dht11_dat[1], DEC);
  lcd.print("%  ");
  lcd.setCursor(0, 1);
  lcd.print("tmpratur = ");
  lcd.print(dht11_dat[2], DEC);
  lcd.print(".");
  lcd.print(dht11_dat[3], DEC);
  lcd.println("C  ");
  delay(2000);  //fresh time
}

setelah anda copy programnya:
yuk kita langsung keperangkaian manualnya:


seperti biasanya setelah perangkaian selsai upload programnya...dan ini untuk hasilnya:

hehehehe....silahkan mencoba....GOOD LUCK..!!!!!!1


Jumat, 29 Maret 2013

arduino with dht 11

setalh libur sehari yuk kita lanjut lagi experiment qta...untuk sekarang kita menggunakan sensor suhu dan kelembab-an dht 11..
langsung saja ke-bahan...

-arduino
-dht 11
-white board
-kabel jumper

ini untuk programnya:


#define DHT11_PIN 0      // define anlog  port 0

byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while(!(PINC & _BV(DHT11_PIN)))
    {};  // wait  forever until anlog input port 0 is '1'   (NOTICE: PINC reads all the analog input ports
    //and  _BV(X) is the macro operation which pull up positon 'X'to '1' and the rest positions to '0'. it is equivalent to 1<<X.)
    delayMicroseconds(30);
    if(PINC & _BV(DHT11_PIN))  //if analog input port 0 is still '1' after 30 us
      result |=(1<<(7-i));     //this position is 1
    while((PINC & _BV(DHT11_PIN)));  // wait '1' finish
    }
    return result;
}


void setup()
{
  DDRC |= _BV(DHT11_PIN);   //let analog port 0 be output port
  PORTC |= _BV(DHT11_PIN);  //let the initial value of this port be '1'
  Serial.begin(9600);
  Serial.println("Ready");
}
   
void loop()    
{
  byte dht11_dat[5];  
  byte dht11_in;
  byte i;// start condition
     
  PORTC &= ~_BV(DHT11_PIN);    // 1. pull-down i/o pin for 18ms
  delay(18);
  PORTC |= _BV(DHT11_PIN);     // 2. pull-up i/o pin for 40us
  delayMicroseconds(1);
  DDRC &= ~_BV(DHT11_PIN);     //let analog port 0 be input port
  delayMicroseconds(40);    
 
  dht11_in = PINC & _BV(DHT11_PIN);  // read only the input port 0
  if(dht11_in)
  {
    Serial.println("dht11 start condition 1 not met"); // wait for DHT response signal: LOW
    delay(1000);
    return;
  }
  delayMicroseconds(80);
  dht11_in = PINC & _BV(DHT11_PIN); //
  if(!dht11_in)
  {
    Serial.println("dht11 start condition 2 not met");  //wair for second response signal:HIGH
    return;
  }
 
  delayMicroseconds(80);// now ready for data reception
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}  //recieved 40 bits data. Details are described in datasheet
 
  DDRC |= _BV(DHT11_PIN);      //let analog port 0 be output port after all the data have been received
  PORTC |= _BV(DHT11_PIN);     //let the  value of this port be '1' after all the data have been received
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];// check check_sum
  if(dht11_dat[4]!= dht11_check_sum)
  {
    Serial.println("DHT11 checksum error");
  }
  Serial.print("Current humdity = ");
  Serial.print(dht11_dat[0], DEC);
  Serial.print(".");
  Serial.print(dht11_dat[1], DEC);
  Serial.print("%  ");
  Serial.print("temperature = ");
  Serial.print(dht11_dat[2], DEC);
  Serial.print(".");
  Serial.print(dht11_dat[3], DEC);
  Serial.println("C  ");
  delay(2000);  //fresh time
}


lanjut ke perangkaiannya:


setelah perangkaian slesai upload programnya.....
dan ini untuk hasilnya:



mudahkan ....SELAMAT MENCOBA....
GOOD LUCK.!!!




Kamis, 28 Maret 2013

arduino with lm35 and iic lcd

halo friend untuk percobaan kali ini saya akan menampilkan hasil dari lm 35 ke iic lcd......intinya  melihat hasil dari lm 35 melalui iic lcd............

langsung saja menuju bahan:

-arduino
-lm 35
-iic lcd
-white board
-kabel jumper

dan ini untuk programnya frend.....


#define pinDataLM35 0   // pin tengah LM35 ke port Analog 0
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);


float temperature;      // variable untuk menyimpan data suhu
                        // float berarti hasilnya akan ada koma
                        // kalau int hasilnya berupa pembulatan

void setup() {
    Serial.begin(9600); // buka serial port, set baud rate 9600 bps
    lcd.init();                      // initialize the lcd

  // Print a message to the LCD.
  lcd.backlight();
}

void loop() {
    lcd.clear();
    /* Baca output dari LM35 yang masuk ke pin analog
       Data yang terbaca sudah dalam bentuk konversi ADC
       Konversi ADC = Vout/Vref*1023
       Jadi bukan dalam bentuk besaran tegangan lagi
       Jika ingin tahu tegangan output LM35 gunakan rumus di atas :
       Tegangan terbaca = Konversi ADC * tegangan referensi / 1024
       Ukur pin 2 dan 3 pd LM35 dengan multimeter untuk memastikan */
    temperature = analogRead(pinDataLM35);

    // Ubah data konversi ADC diatas menjadi besaran suhu
    // menggunakan rumus konversi ADC
    temperature = temperature * (5.0 * 100.0/1024.0);

    // Kirim hasil pembacaan via serial port
    lcd.print("Tmpratur : ");
    lcd.println(temperature);          

    // Berikan pewaktuan agar tidak langsung berubah
    delay(5000);

}

copy programnya...
setelah itu lanjut ke perangkaian manualnya...













setelah sudah anda rangkai seperti pada gambar diatas....
upload programnya....

dan ini untuk hasilnya:


oke deh sekian dulu untuka hari ini..selamat mencoba...dan 
GOOD LUCK.!!!!!!!!!!!!

Selasa, 26 Maret 2013

ARDUINO WITH LM 35 (SENSOR SUHU)

jumpa lagi friend.......untuk kali ini saya akan membahas arduino with sensor suhu lm-35.....

langsung saja friend qta ke-bahannya:

-arduino
-lm 35
-whiteboard
-kabel jumper

dan ini untuk programnya:


#define pinDataLM35 0   // pin tengah LM35 ke port Analog 0

float temperature;      // variable untuk menyimpan data suhu
                        // float berarti hasilnya akan ada koma
                        // kalau int hasilnya berupa pembulatan

void setup() {
    Serial.begin(9600); // buka serial port, set baud rate 9600 bps
}

void loop() {
    /* Baca output dari LM35 yang masuk ke pin analog
       Data yang terbaca sudah dalam bentuk konversi ADC
       Konversi ADC = Vout/Vref*1023
       Jadi bukan dalam bentuk besaran tegangan lagi
       Jika ingin tahu tegangan output LM35 gunakan rumus di atas :
       Tegangan terbaca = Konversi ADC * tegangan referensi / 1024
       Ukur pin 2 dan 3 pd LM35 dengan multimeter untuk memastikan */
    temperature = analogRead(pinDataLM35);

    // Ubah data konversi ADC diatas menjadi besaran suhu
    // menggunakan rumus konversi ADC
    temperature = temperature * (5.0 * 100.0/1024.0);

    // Kirim hasil pembacaan via serial port
    Serial.print(" temperatur-e saiki (Celcius) : ");
    Serial.println(temperature);          

    // Berikan pewaktuan agar tidak langsung berubah
    delay(5000);

}

setelah itu copy programnya .......
sekarang ke mode perangkaiannya...


mudah-kan........
dan ini untuk gambar real-nya and hasilnya diserial monitor arduino




oke selamat mencoba....GOOD LUCK

Senin, 25 Maret 2013

miniatur pintu otomatis with arduino and friend

untuk hari ini saya akan membuat rancangan untuk membuat pintu otomatis dengan menggunakan arduino...
yuk langsung aja menuju bahan yang qta perlukan:

-arduino
-sensor hc-sr04 (sensor jarak)
-motor servo (di-ibaratkan sebagai pintu )
-iic lcd (untuk menampilkan jarak yang di-diteksi hc-sr04)
-white board
-kabel jumper
-2 led 2 resistor (untuk indikator)

dan ini untuk programnya:


#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

LiquidCrystal_I2C lcd(0x27,16,2);
Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  lcd.init();                      // initialize the lcd

  // Print a message to the LCD.
  lcd.backlight();
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  lcd.clear();
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 8) {  // This is where the LED On/Off happens
    digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
  digitalWrite(led2,LOW);
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 0; pos>=90; pos-=1)     // goes from 180 degrees to 0 degrees
  {                              
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }

}
  else {
    digitalWrite(led,LOW);
    digitalWrite(led2,HIGH);
  }
  if (distance >= 40 || distance <= 0){
    lcd.println("Out of range");
  }
  else {
    lcd.print(distance);
    lcd.println(" cm");
    }
  delay(500);
}


seperti biasa copy programnya..
jadi di program ini saya men-seting:jika ada sesuatu mendekat dijarak 4 cm maka motor servo akan bergerak atau gampangnya ketika ada orang mendekat maka pintu akan membuka....
yuk qta langsung ke perangkaian manualnya:



-pin sda pada iic lcd pasangkan dengan pin A4 arduino
-pin scl pada iic lcd pasangkan dengan pin A5 arduino
-gnd pada iic lcd pasangkan dengan pin gnd arduino
-vcc pada iic lcd pasangkan dengan pin vcc 5v arduino
\


-pin trig pada sensor hc-sr04 dipasangakan dengan pin 13 pada arduino.
-pin echo pada sensor hc-sr04 dipasangakan dengan pin 12 pada arduino.
-pin vcc pada sensor hc-sr04 dipasangakan dengan pin 5v pada arduino.
-pin Gnd pada sensor hc-sr04 dipasangakan dengan pin Gnd pada arduino.
-dan led nya dipaangkan dengan pin 10 dan 11 pada arduino



-pin vcc pada motor servo dipasangkan dengan pin 5v di arduino

-pin gnd pada motor servo dipasangkan dengan pin gnd di arduino

-pin output pada motor servo dipasangkan dengan pin 9 di arduino



(maaf saya masih belum bisa menggambarkan sketsa yang langsung jadi satu karena saya masih awam di dunia design software)

dan ini gambar jadinya:



(maaf gambar kurang bersih)

dan ini untuk vidionya:
selamat mencoba dan mengembangkan sendiri......thank's
GOOD LUCK...!!!!!!!!!!!!!!!

Minggu, 24 Maret 2013

arduino with micro servo

yuk lanjut untuk percobaan hari ini qta akan mencoba micro servo dengan arduino.....
langsung saja bahan yang kita butuhkan:

-arduino
-micro servo
-kabel jumper

qta menuju program:
setelah program arduino terbuka pilih file-example-servo-sweep.
seperti gambar dibawah ini:

dan untuk cara merangkainya seperti ini:



setelah itu upload program:





dan ini untuk hasilnya:


+vidionya:hehehehehe



GOOD LUCK YA.!!!!!!!!!!!

arduino with hc-sr04 and iic lcd

hari ini qta akan menggabungkan dengan 2 materi kemaren yaitu iic lcd dan hc-sr04(sensor jarak)dengan arduino...
langsung saja''
bahan yang diperlukan:
-arduino
-iic lcd
-hc-sr04
-whiteboard
-kabel jumper tentunya......

untuk programnya:


#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);


void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  lcd.init();                      // initialize the lcd

  // Print a message to the LCD.
  lcd.backlight();
}

void loop() {
  lcd.clear();
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 4) {  // This is where the LED On/Off happens
    digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
  digitalWrite(led2,LOW);
}
  else {
    digitalWrite(led,LOW);
    digitalWrite(led2,HIGH);
  }
  if (distance >= 200 || distance <= 0){
    lcd.println("Out of range");
  }
  else {
    lcd.print(distance);
    lcd.println(" cm");
  }
  delay(500);
}


seperti biasa setelah anda copy programnya..lanjut ke cara merangkainya......


-pin trig pada sensor hc-sr04 dipasangakan dengan pin 13 pada arduino.
-pin echo pada sensor hc-sr04 dipasangakan dengan pin 12 pada arduino.
-pin vcc pada sensor hc-sr04 dipasangakan dengan pin 5v pada arduino.
-pin Gnd pada sensor hc-sr04 dipasangakan dengan pin Gnd pada arduino.
-dan led nya dipaangkan dengan pin 10 dan 11 pada arduino
-pin sda pada iic lcd pasangkan dengan pin A4 arduino
-pin scl pada iic lcd pasangkan dengan pin A5 arduino
-gnd pada iic lcd pasangkan dengan pin gnd arduino
-vcc pada iic lcd pasangkan dengan pin vcc 5v arduino

ini gambar perangkaian manualnya.:

 sebetulnya sama seperti rangkaian kemarin cuman yang sekarang vcc iic lcd dan
hcsr-o4 boleh digabungin...
begitu juga gnd-nya....











setelah perangkaian selesai silahkan di-upload programnya..........
dan ini untuk hasilnya :



oke sekian dulu untuk percobaan kali ini....dan selamat mencoba..
GOOD LUCK..!!!










Jumat, 22 Maret 2013

arduino with hcsr-04


kali inii saya akan membahas tentang arduino dengan SENSOR JARAK (HC-SR04).
bahannya adalah:

-arduino uno
-sensor JARAK (HC-SR04)
-WHITEBOARD
-kabel jumper
-2 led (WARNA TERSERAH SELERA)
-2 r 560 ohm

dan ini untuk programnya 

#define#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 4) {  // This is where the LED On/Off happens
    digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
  digitalWrite(led2,LOW);
}
  else {
    digitalWrite(led,LOW);
    digitalWrite(led2,HIGH);
  }
  if (distance >= 200 || distance <= 0){
    Serial.println("Out of range");
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(500);

seperti biasa setelah anda copy gan lalu masuk-kan programnya......
dan untuk cara merangkainya:

-pin trig pada sensor hc-sr04 dipasangakan dengan pin 13 pada arduino.
-pin echo pada sensor hc-sr04 dipasangakan dengan pin 12 pada arduino.
-pin vcc pada sensor hc-sr04 dipasangakan dengan pin 5v pada arduino.
-pin Gnd pada sensor hc-sr04 dipasangakan dengan pin Gnd pada arduino.
dan led nya dipaangkan dengan pin 10 dan 11 pada arduino

setelah dirangkai dan di-upload ini lah hasilnya



 ini hasil pada serial monitor di arduino software......


















oke deh sekian dulu.selamat mencoba.............wkwkwkwkwk ^_^

menggunakan software arduino

untuk penggunaan software arduino
- setelah anda download softwarenya dari sini:
http://arduino.cc/en/main/software

setelah itu. instal softwarenya eperti layaknya menginstal software biasanya...ato biasanya dia langsung portable..

setelah terinstal
-buka arduino






























setelah program terbuka lalu pilih tools-board-arduino uno

lalu hubungkan antara arduino dengan pc atau laptop anda


lalu cocok-kan portnya...seperti gambar diatas...


setelah semua selesai maka software dan arduinonya sudah siap digunakan...

contoh:

upload file dan program akan terkirim ke arduino...
simple kan.....
selamat mencoba.......

arduino with iic lcd

Untuk perkenalan apa sih arduino itu?


Arduino adalah platform prototyping berbasis open-source elektronik  yang mudah digunakan (fleksibel) baik dari perangkat keras (hardware) maupun perangkat lunaknya (software). dan Arduino adalah modul pengembangan menggunakan chip Atmel AVR. jadi gampangnya arduino itu modul microcontroler yang sudah jadi dan gampang penggunaan dan dari segi harga juga cocok bagi para pengemar electronika..

dan nggak usah basa basi lagi ayo qta langsung praktek :

untuk pertama silahkan download softwarenya disini :
http://arduino.cc/en/main/software

setelah anda sudah download softwarenya ayuk kita langsung praktek saja...

bahan: 
-arduino
-iic lcd               
-kabel jumper

dan ini programnya:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display


void setup()

{
lcd.init(); // initialize the lcd 

// Print a message to the LCD.

lcd.backlight();
lcd.print("hallo");
lcd.setCursor(0, 1);
lcd.print("arduino-mania");
}

void loop()

{
}

-setelah anda copy program diatas lalu masuk-kan ke program anda setelah itu download programnnya arduinonya langsung.oke

dan untuk cara perangkaian seperti berikut:


pin sda pada iic lcd pasangkan dengan pin A4 arduino
pin scl pada iic lcd pasangkan dengan pin A5 arduino
gnd pada iic lcd pasangkan dengan pin gnd arduino
vcc pada iic lcd pasangkan dengan pin vcc 5v arduino

dan ini lah hasilnya:

selamat mencoba.....dan insyaallah setiap hari akan ada update terbaru...