CAM00451CAM00470 CAM00471 CAM00472

[Full Gallery Foto]

Gambaran Umum
HX711 adalah modul timbangan, yang memiliki prinsip kerja mengkonversi perubahan yang terukur dalam perubahan resistansi dan mengkonversinya ke dalam besaran tegangan melalui rangkaian yang ada. Modul melakukan komunikasi dengan computer/mikrokontroller melalui TTL232.
Kelebihan
Struktur yang sederhana, mudah dalam penggunaan, hasil yang stabil dan reliable, memiliki sensitivitas tinggi, dan mampu mengukur perubahan dengan cepat.

 

Aplikasi
Digunakan pada bidang aerospace, mekanik, elektrik, kimia, konstruksi, farmasi dan lainnya, digunakan untuk mengukur gaya, gaya tekanan, perpindahan, gaya tarikan, torsi, dan percepatan.
Fitur
– Differential input voltage: ±40mV(Full-scale differential input voltage is ± 40mV)
– Data accuracy: 24 bit (24 bit A / D converter chip.)
– Refresh frequency: 80 Hz
– Operating Voltage : 5V DC
– Operating current : <10 mA
– Size:38mm*21mm*10mm

Prinsip Kerja

HX711 1

Prinsip kerja sensor regangan ketika mendapat tekanan beban. (sumber datasheet HX711)
Ketika bagian lain yang lebih elastic mendapat tekanan, maka pada sisi lain akan mengalami perubahan regangan yang sesuai dengan yang dihasilkan oleh straingauge, hal ini terjadi karena ada gaya yang seakan melawan pada sisi lainnya. Perubahan nilai resistansi yang diakibatkan oleh perubahan gaya diubah menjadi nilai tegangan oleh rangkaian pengukuran yang ada. Dan berat dari objek yang diukur dapat diketahui dengan mengukur besarnya nilai tegangan yang timbul.

HX711 2

Prinsip operasi rangkaian strain gauge. (sumber datasheet HX711)

 

Pemasangan Modul

rangkaian HX711

HX711 3

Hubungan pin antara mikrokontroller dengan modul HX711

HX711 4

Prosedur Pemakaian:
1. Timbangan dalam keadaan kosong (tanpa ada beban diatas timbangan)
2. Download program ke mikrokontroller/arduino
3. Jika sudah didownload, tekan saklar reset untuk membaca nilai 0 gram (timbangan kosong)
4. Selanjutnya gunakan untuk menimbang sesuai keperluan

 

Program Testing: AVR dengan Code Vision

Sistem yang digunakan:

  • Sistem minimum mikrokontroller ATMega32
  • Modul LCD 16×2
  • Modul Sensor timbangan HX711 (HARGA: Rp. 620.000,-), dalam part terpisah ADC (HARGA: Rp. 69.000,-), mekanik (HARGA: Rp. 250.000,-)

/*******************************************************
This program was created by the
CodeWizardAVR V3.10 Advanced
Automatic Program Generator
© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 05/10/2014
Author :
Company :
Comments:

 

Chip type : ATmega32A
Program type : Application
AVR Core Clock frequency: 11,059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*******************************************************/

#include <mega32a.h>
#include <delay.h>

// Alphanumeric LCD functions
#include <alcd.h>
#include <stdbool.h>
#include <stdio.h>
char text[16];

#define HX711_SCK PORTB.7
#define HX711_DT PINB.6
#define HIGH 1
#define LOW 0

// Declare your global variables here
long HX711_Buffer = 0;
long Weight_Maopi = 0,Weight_Shiwu = 0;
int Weight = 0;

unsigned long HX711_Read(void)
{
unsigned long count;
unsigned char i;
bool Flag = 0;

HX711_DT= HIGH;

delay_us(1);

HX711_SCK=LOW;
delay_us(1);

count=0;
while(HX711_DT);
for(i=0;i<24;i++)
{
HX711_SCK=HIGH;
delay_us(1);
count=count<<1;
HX711_SCK= LOW;
delay_us(1);
if(HX711_DT)
count++;
}
HX711_SCK= HIGH;
count ^= 0x800000;
delay_us(1);
HX711_SCK= LOW;
delay_us(1);

return(count);
}

void Get_Maopi()
{
HX711_Buffer = HX711_Read();
Weight_Maopi = HX711_Buffer/100;
}

unsigned int Get_Weight()
{
HX711_Buffer = HX711_Read();
HX711_Buffer = HX711_Buffer/100;

Weight_Shiwu = HX711_Buffer;
Weight_Shiwu = Weight_Shiwu – Weight_Maopi;
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/7.35+0.05);

return Weight_Shiwu;
}

void main(void)
{
// Declare your local variables here

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRB=(1<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

 

// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS – PORTA Bit 0
// RD – PORTA Bit 1
// EN – PORTA Bit 2
// D4 – PORTA Bit 4
// D5 – PORTA Bit 5
// D6 – PORTA Bit 6
// D7 – PORTA Bit 7
// Characters/line: 16
lcd_init(16);

lcd_gotoxy(0,0);
lcd_puts(“Test Timbangan”);
lcd_gotoxy(0,1);
lcd_puts(“Produk Inovatif”);
delay_ms(1500);
lcd_clear();

lcd_gotoxy(0,0);
lcd_puts(“Welcome to use!n”);
delay_ms(3000);

Get_Maopi();

while (1)
{
// Place your code here
Weight = Get_Weight();
lcd_clear();
lcd_gotoxy(0,0);
sprintf(text,”%d g”,Weight);
lcd_puts(text);
delay_ms(1000);
}
}

Comments

comments