Translate

JUAL MINIMUM SISTEM / SISTEM MINIMUM ATMEGA 16 / ATMEGA 32 / ATMEGA 8535 / ATMEGA 8

JUAL MINIMUM SISTEM  / SISTEM MINIMUM ATMEGA 16 / ATMEGA 32 / ATMEGA 8535 / ATMEGA 8


             Jual minimum syetem atau sistem minimum untuk keperluan project atau tugas akhir, harga bervariasi tergantung jenis pcb yang digunakan dan variasi pcb yang akan digunakan, kami menjual minimum system ATMega 32 / 16 / 8535 / 8. ada yang include IC mikrokontroller ada yang tidak include seperti gambar dibawah ini.


a. Skema Sistem Minimum





b. Harga dan Gambar

1. Rp. 125.000,00 = Tanpa IC MCU dan Plus LCD 16x2




2. Rp. 185.000,00 = Dengan IC MCU dan Plus LCD 16x2





3. ATMega8 Dengan LCD 16x2 = Rp. 150.000












Membuat Pasien Monitor Dengan Arduino - Android dan Sensor Suhu DS18B20, Kelembaban 808H5V6, Pulse Sensor Detak Jantung, GSR

Membuat Pasien Monitor Dengan Arduino - Android dan Sensor Suhu DS18B20, Kelembaban 808H5V6, Pulse Sensor Detak Jantung, GSR


               Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat untuk pasien monitor, jadi alat ini bisa mengukur detak jantung, suhu tubuh dan kelembaban, kelenjar keringat (GSR). Sensor yang dipakai adalah sensor suhu DS18B20, sensor detak jantung pulse sensor, sensor kelembaban 808H5V6, sensor GSR. untuk interface menggunakan android dan LCD Display 16x2. untuk lebih jelasnya berikut program dan skemanya.



a. Arduino UNO + LCD 16x2




b. Sensor Suhu DS18B20




c. Pulse Sensor Detak Jantung




d. Bluetooth HC-05




e. Sensor Kelembaban 808H5V6




f. Sensor GSR ( Kelenjar Keringat )




g. Program Arduino IDE

//library OneWire DS18B20 bisa didownload disini

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

OneWire  ds(10);  //output ds18b20 ke pin 10 arduino

int n = 0;
int bpm = 0;
int x = 0;
int suhux = 0;
int bpmx = 0;

void setup() {
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
  pinMode(13, OUTPUT);
  Serial.begin(9600);
 
  lcd.setCursor(0, 0);
  lcd.print("WELLCOME");
  delay(20000);
  lcd.clear();
 
}

void loop() {
    
  n = n + 1;
  
  int dataadc1 = analogRead(A1);           
 
  lcd.setCursor(0, 0);
  lcd.print("n = ");
  lcd.print(n);
    
  lcd.setCursor(0, 1);
  lcd.print("BPM = ");
  lcd.print(bpm);
 
  if ((dataadc1 > 512) && (x > 1)) {   
  digitalWrite(13, HIGH);
  x = 0;
  bpm = bpm + 1;
  }
 
  else if ((dataadc1 < 512) && (x < 1)) {
  x = 2; 
  digitalWrite(13, LOW);
 
  }
 
  delay(200);
 
  if ( n > 300 ) {
  lcd.clear();
  datatampil();
  }
 

}


void datatampil() {
 
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius, fahrenheit;
 
  if ( !ds.search(addr)) {
    ds.reset_search();
    delay(250);
    return;
  }
 

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on at the end
 
  delay(1000);     // maybe 750ms is enough, maybe not

  present = ds.reset();
  ds.select(addr);   
  ds.write(0xBE);       

  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();

  }

  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    // at lower res, the low bits are undefined, so let's zero them
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
    //// default is 12 bit resolution, 750 ms conversion time
  }
  celsius = (float)raw / 16.0;

  
 
  int datalembab = analogRead(A3);

  float voltlembab = datalembab * (5.0 / 1023.0 );
  float persen = (32.86 * voltlembab) + 0.025 ;
 
  int datagsr = analogRead(A0);
  float voltgsr = datagsr * (5.0 / 1023.0 );
 
 
  lcd.setCursor(0, 0);
  lcd.print("Temp= ");
  lcd.print(celsius);
  lcd.print(" C");
 
  lcd.setCursor(0, 1);
  lcd.print("BPM = ");
  lcd.print(bpm);


  delay(3000);
  lcd.clear();
   
  lcd.setCursor(0, 0);
  lcd.print("Lembab= ");
  lcd.print(persen);
  lcd.print(" %");

  lcd.setCursor(0, 1);
  lcd.print("GSR= ");
  lcd.print(voltgsr);
  lcd.print(" v");
   
  delay(3000);
  lcd.clear();


 if ( bpm >= 100 ) {
  lcd.setCursor(0, 0);
  lcd.print("istirahat");

 }
else if ( bpm < 60 ) {
  lcd.setCursor(0, 0);
  lcd.print("ke dokter");

 }

 if ( celsius >= 37.5 ) {
  lcd.setCursor(0, 1);
  lcd.print("kompres badan");

 
 }
else if ( celsius < 34.0 ) {
 
   lcd.setCursor(0, 1);
  lcd.print("olah raga");

 }

  delay(3000);
  lcd.clear();


 if ( voltgsr >= 4 ) {
  lcd.setCursor(0, 0);
  lcd.print("hibur diri");

 }

 if ( persen < 38 ) {
  lcd.setCursor(0, 1);
  lcd.print("minum vitamin");

 } 

  delay(3000);
  lcd.clear();


  Serial.print("suhu = ");
  Serial.print(celsius);
  Serial.println(" c");
 
  Serial.print("BPM = ");
  Serial.println(bpm);

  Serial.print("Lembab = ");
  Serial.print(persen);
  Serial.println(" %");
 
  Serial.print("GSR = ");
  Serial.print(voltgsr); 
  Serial.println(" v");

  Serial.println("  ");
 
 if ( bpm >= 100 ) {
 Serial.println("perbanyak istirahat dan ");
 }
else if ( bpm < 60 ) {
 Serial.println("segera hubungi dokter ");
 }

 if ( celsius >= 37.5 ) {
 Serial.println("kompres dengan air dingin");
 
 }
else if ( celsius < 34.0 ) {
 
 Serial.println("perbanyak aktifitas ");
 }

 if ( voltgsr >= 4 ) {
 Serial.println("Perbanyak menghibur diri");
 }

 if ( persen < 38 ) {
 Serial.println("konsumsi vitamin kulit");
 } 

 if (( bpm > 100 ) && ( celsius > 37.5 ) && ( persen < 38 ) && ( voltgsr > 4 )) {
 Serial.println("Terdeteksi STRESS");
 Serial.println("hibur diri dan konsul ke psikiater");
 } 


  n = 0;
  bpm = 0;
  lcd.clear();
  
}




g. Program Android

 




h. VIDEO HASILNYA












Membuat Thermometer Digital Menggunakan Arduino dan Sensor Suhu DS18B20 / DS1820

Membuat Thermometer Digital Menggunakan Arduino dan Sensor Suhu DS18B20 / DS1820


              Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat thermometer digital menggunakan Arduino dan sensor DS18B20 atau DS1820. alat ini bisa digunakan untuk mengukur suhu tubuh manusia maupun ruangan sehingga jika ingin diaplikasikan sebagai detektor suhu tubuh atau monitoring suhu ruangan sangat bisa sekali. sensor ini memang tergolong sensitif dan bisa menggunakan satu jalur output. jadi jika terdapat lebih dari satu sensor maka jalur outputnya bisa dengan satu wire atau istilahnya One Wire. untuk lebih jelasnya berikut program dan skemanya.

Download Library Arduino OneWire.h



a. Arduino UNO



b. Sensor DS18B20 / DS1820




* NOTE:
- Dout masuk ke pin 10 Arduino
- Vcc masuk ke 5v
- GND masuk ke GND




c. Program Arduino IDE

#include <OneWire.h>

OneWire  ds(10);  // on pin 10 (a 4.7K resistor is necessary)

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius, fahrenheit;
 
  if ( !ds.search(addr)) {
    Serial.println("No more addresses.");
    Serial.println();
    ds.reset_search();
    delay(250);
    return;
  }
 
  Serial.print("ROM =");
  for( i = 0; i < 8; i++) {
    Serial.write(' ');
    Serial.print(addr[i], HEX);
  }

  if (OneWire::crc8(addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return;
  }
  Serial.println();

  // the first ROM byte indicates which chip
  switch (addr[0]) {
    case 0x10:
      Serial.println("  Chip = DS18S20");  // or old DS1820
      type_s = 1;
      break;
    case 0x28:
      Serial.println("  Chip = DS18B20");
      type_s = 0;
      break;
    case 0x22:
      Serial.println("  Chip = DS1822");
      type_s = 0;
      break;
    default:
      Serial.println("Device is not a DS18x20 family device.");
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on at the end
 
  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.
 
  present = ds.reset();
  ds.select(addr);   
  ds.write(0xBE);         // Read Scratchpad

  Serial.print("  Data = ");
  Serial.print(present, HEX);
  Serial.print(" ");
  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    Serial.print(data[i], HEX);
    Serial.print(" ");
  }
  Serial.print(" CRC=");
  Serial.print(OneWire::crc8(data, 8), HEX);
  Serial.println();

  // Convert the data to actual temperature
  // because the result is a 16 bit signed integer, it should
  // be stored to an "int16_t" type, which is always 16 bits
  // even when compiled on a 32 bit processor.
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    // at lower res, the low bits are undefined, so let's zero them
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
    //// default is 12 bit resolution, 750 ms conversion time
  }
  celsius = (float)raw / 16.0;
  fahrenheit = celsius * 1.8 + 32.0;
  Serial.print("  Temperature = ");
  Serial.print(celsius);
  Serial.print(" Celsius, ");
  Serial.print(fahrenheit);
  Serial.println(" Fahrenheit");
}




d. Video Hasilnya












Membuat Alat Monitor Suhu dan Detak Jantung Via Android menggunakan Arduino

Membuat Alat Monitor Suhu dan Detak Jantung Via Android menggunakan Arduino


         Pada malam hari yang cerah dan sangat capek kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat monitoring suhu dan detak jantung dengan interface Android. jadi data yang didapat oleh Arduino akan dikirimkan ke Android menggunakan media bluetooth, untuk sensor suhu dipakai LM35 dan detak jantung menggunakan sensor pulse. untuk lebih jelasnya berikut adalah skema rangkaian dan programnya.
 


a. Arduino Uno + LCD 2 x 16





b. Sensor Suhu LM35




c. Sensor Detak Jantung ( Pulse Sensor )




d. Bluetooh HC - 05




e. Program Arduino

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

int n = 0;
int bpm = 0;
int x = 0;
int suhux = 0;
int bpmx = 0;

void setup() {
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  n = n + 1;
 
  int dataadc1 = analogRead(A1);           
 
  lcd.setCursor(0, 0);
  lcd.print("n = ");
  lcd.print(n);
    
  lcd.setCursor(0, 1);
  lcd.print("BPM = ");
  lcd.print(bpm);
 
  if ((dataadc1 > 512) && (x > 1)) {   
  digitalWrite(13, HIGH);
  x = 0;
  bpm = bpm + 1;
  }
 
  else if ((dataadc1 < 512) && (x < 1)) {
  x = 2; 
  digitalWrite(13, LOW);
 
  }
 
  delay(200);
 
  if ( n > 300 ) {
  lcd.clear();
  datatampil();
  }
 
}


void datatampil() {
  int dataadc = analogRead(A0);
 
  float volt = dataadc * (5.0 / 1023.0 );
  float suhu = volt *100;
 
  lcd.setCursor(0, 0);
  lcd.print("Suhu = ");
  lcd.print(suhu);
  lcd.print(" c");

  lcd.setCursor(0, 1);
  lcd.print("BPM = ");
  lcd.print(bpm);

  Serial.print("suhu = ");
  Serial.print(suhu);
  Serial.println(" c");
 
  Serial.print("BPM = ");
  Serial.println(bpm);

  delay(3000);

  n = 0;
  bpm = 0;
  suhu = 0;
  lcd.clear();
  
}



f. Program Android ( APP INVENTOR )






g. VIDEO HASILNYA










Membuat Alat Pengukur Heart Beat / Heart Rate (BPM) dan Suhu Tubuh Menggunakan Arduino

Membuat Alat Pengukur Heart Beat / Heart Rate (BPM) dan Suhu Tubuh Menggunakan Arduino


              Pada pertemuan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses modul pulse sensor dan lm35 menggunakan Arduino. Alat yang akan dibuat adalah pengukur detak jantung (BPM) dan pengukur suhu tubuh, sehingga diharapkan dengan adanya alat ini bisa digunakan sebagai klinik portable atau klinik berjalan. Sebaiknya untuk mengukur suhu tubuh menggunakan sensor yang agak mahal tapi bagus yaitu Ds1820 atau sensor DHT / SHT. untuk lebih jelasnya berikut program dan gambar skemanya.



a. Arduino Uno + LCD





b. Sensor Detak Jantung / Pulse Sensor




c. Sensor Suhu LM35




d. Program Arduino 

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

int n = 0;
int bpm = 0;
int x = 0;

void setup() {
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  n = n + 1;
 
  int dataadc1 = analogRead(A1);           
 
  lcd.setCursor(0, 0);
  lcd.print("n = ");
  lcd.print(n);
    
  lcd.setCursor(0, 1);
  lcd.print("BPM = ");
  lcd.print(bpm);
 
  if ((dataadc1 > 512) && (x > 1)) {   
  digitalWrite(13, HIGH);
  x = 0;
  bpm = bpm + 1;
  }
 
  else if ((dataadc1 < 512) && (x < 1)) {
  x = 2; 
  digitalWrite(13, LOW);
 
  }
 
  delay(200);
 
  if ( n > 300 ) {
  lcd.clear();
  datatampil();
  }
  }

void datatampil() {
  int dataadc = analogRead(A0);
 
  float volt = dataadc * (5.0 / 1023.0 );
  float suhu = volt *100;
 
  lcd.setCursor(0, 0);
  lcd.print("Suhu = ");
  lcd.print(suhu);
  lcd.print(" c");

  lcd.setCursor(0, 1);
  lcd.print("BPM = ");
  lcd.print(bpm);

  Serial.println(suhu);
  Serial.println(bpm);

  delay(5000);

  n = 0;
  bpm = 0;
  lcd.clear();
  
}




e. VIDEO HASILNYA












Membuat Alat Pengukur Intensitas Cahaya Menggunakan Sensor LDR dan Penyimpanan EEPROM

Membuat Alat Pengukur Intensitas Cahaya Menggunakan Sensor LDR dan Penyimpanan EEPROM


            Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat untuk mengukur intensitas cahaya, sebenarnya alat ini tidak digunakan untuk cahaya lampu atau matahari melainkan untuk mengukur pantulan cahaya akibat gelas ukur, sehingga akan terlihat level kekeruhan air dari air yang terdapat didalam gelas tersebut. jika telah diketahui nilai tegangannya maka dimasukkan ke dalam rumus agar menjadi seperti Turbidimeter sesungguhnya. untuk lebih jelasnya berikut skema dan programnya.



 a. Minimum System




 b. Sensor LDR





c. Program Bascom AVR

$regfile = "m8535.dat"
$crystal = 11059200

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

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

Dim Dataadc As Word
Dim Dataadc1 As Word
Dim Dataadc2 As Word
Dim Dataadc3 As Word

Dim Simpan1 As Eram Single
Dim Simpan2 As Eram Single
Dim Simpan3 As Eram Single
Dim Simpan4 As Eram Single
Dim Simpan5 As Eram Single
Dim Simpan6 As Eram Single
Dim Simpan7 As Eram Single
Dim Simpan8 As Eram Single
Dim Simpan9 As Eram Single
Dim Simpan10 As Eram Single

Dim W As Integer

Dim Tampil1 As Single
Dim Tampil2 As Single
Dim Tampil3 As Single
Dim Tampil4 As Single
Dim Tampil5 As Single
Dim Tampil6 As Single
Dim Tampil7 As Single
Dim Tampil8 As Single
Dim Tampil9 As Single
Dim Tampil10 As Single


Dim Teg1 As Single
Dim Teg2 As Single
Dim Teg3 As Single
Dim Teg4 As Single

Dim Z1 As Single
Dim Z2 As Single
Dim Z3 As Single
Dim Z4 As Single
Dim N As Integer

Dim Z As Single
Dim T As Single

'tombol start
Ddrb.2 = 0
Set Portb.2

'tombol reset
Ddrb.1 = 0
Set Portb.1

'tombol save
Ddrb.0 = 0
Set Portb.0

N = 1

Cls
Cursor Off

Start Adc

Simpan1 = 0
Simpan2 = 0
Simpan3 = 0
Simpan4 = 0
Simpan5 = 0
Simpan6 = 0
Simpan7 = 0
Simpan8 = 0
Simpan9 = 0
Simpan10 = 0

Main:

Wait 1

Do

Dataadc = Getadc(0)
Dataadc1 = Getadc(1)
Dataadc2 = Getadc(2)
Dataadc3 = Getadc(3)

Teg1 = Dataadc * 5
Teg1 = Teg1 / 1023

Teg2 = Dataadc1 * 5
Teg2 = Teg2 / 1023

Teg3 = Dataadc2 * 5
Teg3 = Teg3 / 1023

Teg4 = Dataadc3 * 5
Teg4 = Teg4 / 1023

Z1 = 1 * Teg4
Z2 = 1 * Teg3
Z3 = 1 * Teg1
Z4 = 1 * Teg2

Z = Z1 + Z2
Z = Z + Z3
Z = Z + Z4

T = Teg2 / Z


If Pinb.1 = 0 Then
Waitms 200
Goto Tampil
End If


Locate 1 , 1
Lcd Fusing(teg1 , "#.##") ; "  " ; Fusing(teg2 , "#.##")

Locate 1 , 12
Lcd Fusing(t , "#.##")


Locate 2 , 1
Lcd Fusing(teg3 , "#.##") ; "  " ; Fusing(teg4 , "#.##")


If Pinb.0 = 0 And N > 10 Then
Waitms 200
N = 1
End If


If Pinb.0 = 0 And N = 1 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 1"
Lowerline
Lcd T
Wait 3

Simpan1 = T

Elseif Pinb.0 = 0 And N = 2 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 2"
Lowerline
Lcd T

Wait 3

Simpan2 = T

Elseif Pinb.0 = 0 And N = 3 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 3"
Lowerline
Lcd T

Wait 3

Simpan3 = T

Elseif Pinb.0 = 0 And N = 4 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 4"
Lowerline
Lcd T

Wait 3

Simpan4 = T

Elseif Pinb.0 = 0 And N = 5 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 5"
Lowerline
Lcd T

Wait 3

Simpan5 = T

Elseif Pinb.0 = 0 And N = 6 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 6"
Lowerline
Lcd T

Wait 3

Simpan6 = T

Elseif Pinb.0 = 0 And N = 7 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 7"
Lowerline
Lcd T

Wait 3

Simpan7 = T

Elseif Pinb.0 = 0 And N = 8 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 8"
Lowerline
Lcd T

Wait 3

Simpan8 = T

Elseif Pinb.0 = 0 And N = 9 Then
Waitms 200
Incr N

Cls
Upperline
Lcd "Save data 9"
Lowerline
Lcd T

Wait 3

Simpan9 = T

Elseif Pinb.0 = 0 And N = 10 Then
Waitms 200

Incr N

Cls
Upperline
Lcd "Save data 10"
Lowerline
Lcd T

Wait 3

Simpan10 = T

End If

Waitms 200
Cls

Loop

Tampil:
Cls

W = 1

Wait 3

Do

If Pinb.0 = 0 Then
Waitms 200
Incr W
End If

If Pinb.2 = 0 Then
Waitms 200
Decr W
End If


If W = 1 Then
Cls
Tampil1 = Simpan1
Upperline
Lcd "Data ke " ; W
Lowerline
Lcd Tampil1
Waitms 500

Elseif W = 2 Then
Cls
Tampil2 = Simpan2
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil2
Waitms 500

Elseif W = 3 Then
Cls
Tampil3 = Simpan3
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil3
Waitms 500

Elseif W = 4 Then
Cls
Tampil4 = Simpan4
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil4
Waitms 500

Elseif W = 5 Then
Cls
Tampil5 = Simpan5
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil5
Waitms 500

Elseif W = 6 Then
Cls
Tampil6 = Simpan6
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil6
Waitms 500

Elseif W = 7 Then
Cls
Tampil7 = Simpan7
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil7
Waitms 500

Elseif W = 8 Then
Cls
Tampil8 = Simpan8
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil8
Waitms 500

Elseif W = 9 Then
Cls
Tampil9 = Simpan9
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil9
Waitms 500

Elseif W = 10 Then
Cls
Tampil10 = Simpan10
Upperline
Lcd "Data ke " ; W

Lowerline
Lcd Tampil10
Waitms 500

End If


If Pinb.1 = 0 Then
Waitms 200
Cls
Goto Main
End If

If W > 10 Then
W = 1
End If

If W < 1 Then
W = 10
End If

Loop




d. Cara Penggunaan Alat

           Cara penggunaan alat ini yaitu pertama hubungkan power supply 12 volt ke minimum system, kemudian hubungkan rangkaian LDR ke port ADC mikrokontroller, setelah itu akan terlihat nilai intensitas cahayanya di LCD display. terdapat rumus yang digunakan untuk mengukur tingkat kekeruhan air, nilai tersebut bisa disimpan sebanyak 10 kali. jadi tiap pengukuran bisa disimpan ke eeprom dengan menggunakan tombol save. untuk melihat data yang disimpan tekan tombol tampil.  









 

Membuat Timbangan Digital Menggunakan IC AD620

Membuat Timbangan Digital Menggunakan IC AD620


          Pada kesempatan berbahagia kali ini saya akan menjelaskan mengenai eksperiment terbaru saya dengan ditemani hujan lebat yang mengguyur deras di luar sana. Materi yang akan dibahas yaitu membuat timbangan digital menggunakan mikrokontroller. Seperti yang telah diketahui bahwa rangkaian pengkondisi sinyal atau PSA bisa bermacam-macam, ada yang menggunakan IC INA114 ada yang menggunakan HX711 dan ada pula yang menggunakan IC AD620.  Pada halaman ini sengaja saya akan menjelaskan mengenai opsi yang ketiga yaitu menggunakan IC AD620. timbangan yang digunakan bisa bermacam-macam, bisa loadcell 5Kg, 10Kg atau 200Kg pun bisa. untuk lebih jelasnya berikut adalah skema dan programnya.



a. Minimum System




b. Load Cell  5 Kg




c. Rangkaian PSA AD620 ( Amplifier )




d. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000

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

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

Dim Dataadc As Word

Cls
Cursor Off

Start Adc

Do

Dataadc = Getadc(0)

Upperline
Lcd "ADC = " ; Dataadc

Waitms 100

Loop



 
e. Cara Penggunaan Alat

            Cara menggunakan alat ini yaitu pertama hubungkan power supply 12 volt ke minimum system, kemudian hubungkan rangkaian amplifier AD620 ke port ADC0, setelah itu jika berhasil maka akan tampak nilai dari load cellnya pada LCD. berikan beban pada load cell secara bertahap dan bervariasi, maka akan tampak variasi output adc saat beban bervariasi. untuk kalibrasi timbangan agar nilai ADC menjadi nilai Kg, gr, atau mg. silahkan buka link berikut ini dan sesuaikan parameter yang digunakan, dan harus menggunakan kalibrator yang akurat dan terkalibrasi.












Cara Mengakses Sensor Humidity / kelembaban dan Suhu / temperature SHT11 Dengan Bascom AVR

Cara Mengakses Sensor Humidity / kelembaban dan Suhu SHT11 Dengan Bascom AVR


         Pada kesempatan yang berbahagia kali ini saya akan menjelaskan tentang sensor yang sangat bagus dipakai untuk pendeteksi suhu dan kelembapan, yaitu SHT11. sensor ini memang agak mahal dibanding sensor suhu - kelembaban pada umumnya namun akurasi dan sensitifitasnya sangat baik dan biasanya untuk alat-alat industri memakai sensor ini. Output sensor ini tidak berupa tegangan melainkan sebuah pulsa dan angka, sehingga cara mengaksesnya tidak lagi menggunakan ADC namun menggunakan port I/O. untuk lebih jelasnya berikut program dan skemanya.



a. Minimum System




b. Sensor SHT11 ( suhu dan kelembaban )




c. Program Bascom AVR

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

    Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4
    Config Lcdpin = Pin , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7
    Config Lcd = 16 * 2

    Deflcdchar 1 , 28 , 20 , 28 , 32 , 32 , 32 , 32 , 32    'membuat karakter derajat

    Dim Dataword As Word
    Dim Command As Byte
    Dim Calc As Single
    Dim Calc2 As Single
    Dim Rhlinear As Single
    Dim Rhlintemp As Single
    Dim Tempc As Single
    Dim Ctr As Byte
    Dim X As Word
    Dim Y As Single
    Dim Z As Single
    Dim Suhu As String * 10
    Dim Kelembaban As String * 10
    Dim Tekanan As String * 10

    Const C1 = -4
    Const C2 = 0.0405
    Const C3 = -0.0000028
    Const S = .01
    Const H = .00008

    'sck output pada port C.0
    Sck Alias Portc.0
    Dataout Alias Portc.1

    Datain Alias Pinc.1
    Declare Sub Kirim()
    Ddrc = &B11111111

    Config Pinc.0 = Output
    Config Pinc.1 = Output
    Wait 1

    Set Dataout
    For Ctr = 1 To 12
    Set Sck
    Waitus 2
    Reset Sck
    Waitus 2
    Next Ctr

    'main program
    Do

    Gosub Data_suhu
    Print "Data suhu: " ; Suhu
    Print "Data kelembaban: " ; Kelembaban
    Waitms 200
    Gosub Tampil

    Loop

    Tampil:
    Cls
    Cursor Off

    Upperline
    Lcd "Suhu= " ; Suhu ; " " ; Chr(1) ; "C"
    Lowerline
    Lcd "Rh  = " ; Kelembaban ; " " ; "%"
    Wait 1

    Return

    Data_suhu:
    Command = &B00000011

    Call Kirim

    Tempc = S * Dataword
    Tempc = Tempc - 40
    Suhu = Fusing(tempc , "#.##")
    Command = &B00000101

    Call Kirim

    Calc = C2 * Dataword
    Calc2 = Dataword * Dataword
    Calc2 = C3 * Calc2
    Calc = Calc + C1
    Rhlinear = Calc + Calc2
    Calc = H * Dataword
    Calc = Calc + S
    Calc2 = Tempc - 25
    Calc = Calc2 * Calc
    Rhlintemp = Calc + Rhlinear
    Kelembaban = Fusing(rhlintemp , "#.##")
    Return

    Sub Kirim()

    Local Datavalue As Word
    Local Databyte As Byte

    Set Sck
    Reset Dataout
    Reset Sck
    Set Sck
    Set Dataout
    Reset Sck
    Shiftout Dataout , Sck , Command , 1
    Ddrc = &B11111101
    Config Pinc.1 = Input
    Set Sck
    Reset Sck
    Waitus 10
    Bitwait Pinc.1 , Reset
    Shiftin Datain , Sck , Databyte , 1
    Datavalue = Databyte
    Ddrc = &B11111111
    Config Pinc.1 = Output
    Reset Dataout
    Set Sck
    Reset Sck
    Ddrc = &B11111101
    Config Pinc.1 = Input
    Shiftin Datain , Sck , Databyte , 1
    Shift Datavalue , Left , 8
    Datavalue = Datavalue Or Databyte
    Dataword = Datavalue
    Ddrc = &B11111111

    Config Pinc.1 = Output
    Reset Dataout
    Set Sck
    Reset Sck
    Ddrc = &B11111101
    Config Pinc.1 = Input
    Shiftin Datain , Sck , Databyte , 1
    Ddrc = &B11111111
    Config Pinc.1 = Output
    Set Dataout
    Set Sck
    Reset Sck
    End Sub
    End



d. Cara Penggunaan Alat

           Untuk menggunakan alat ini langkah pertama yaitu hubungkan supply 12 volt ke minimum system, kemudian akan tertera nilai suhu dan kelembaban dari sensor, sebelumnya pastikan dulu port yang dipakai untuk SDA-SCL adalah benar yaitu SCK di PortC.0 dan Dout di PortC.1. jika sudah benar maka akan terlihat nilainya di LCD display. Untuk melihat via komputer bisa menggunakan kabel RS232 dan software Hyperterminal.











Mengakses Sensor Humidity / Kelembaban 808H5V6 Menggunakan Mikrokontroller

Mengakses Sensor Humidity / Kelembaban 808H5V6 Menggunakan Mikrokontroller


         Kali ini saya akan menceritakan mengenai bagaimana cara mengakses sensor kelembaban yang sudah sangat umum digunakan karena outputnya berupa tegangan analog, sensor tersebut yaitu buatan sencera.co. Ltd dengan nama 808H5V6, sensor ini sangat bagus sekali jika digunakan karena outputnya yang linear dan sangat sensitif terhadap kondisi.memang harga sensor ini lumayan mahal karena fitur yang diberikan juga bagus dan akurasi yang maksimal. untuk lebih jelasnya berikut adalah skema dan programnya. 



Spesifikasi :






a. Minimum System




b. Sensor Humidity 808H5V6




c. Cara Kalibrasi Sensor

- Dari datasheet didapat data berikut

      VOUT      Humidity

0 3
0.25 10
0.72 20
0.93 30
1.24 40
1.55 50
1.85 60
2.15 70
2.43 80
2.75 90
2.95 100



- masukkan rumusnya Y = 32.86x + 0.025



d. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000

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

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

Dim Dataadc As Word
Dim Volt As Single
Dim Hum As Single

Cls
Cursor Off

Start Adc

Do

Dataadc = Getadc(0)

Volt = Dataadc * 5
Volt = Volt / 1023

Hum = 32.86 * Volt
Hum = Hum + 0.025

Upperline
Lcd "Hum = " ; Fusing(hum , "#.##") ; "  %"

Waitms 100

Loop



e. Cara Penggunaan Alat

          Hubungkan supply 12 volt ke rangkaian, kemudian hubungkan sensor dengan mikrokontroller, jika sudah tampak hasilnya di LCD maka coba dipanaskan, jika semakin panas maka output sensor akan rendah karena berbanding terbalik dengan output sensor suhu.