Arduino Load Cell / Scale: 4 Steps

Arduino Load Cell / Scale: 4 Steps

Isi kandungan:

Anonim

Dari minda di

Kemas Kini Penting!

Oleh kerana begitu ramai orang mengalami masalah dengan INA125P, kini kita mempunyai versi baru dan bertambah yang menggunakan modul penguat ADC Hx711 24bit.

Matlamat saya adalah untuk mencipta skala diprogram untuk menimbang objek, mengira bahagian, bahkan mengarahkan aliran produk pada sistem penghantar.

Saya memerlukan sel beban, Arduino, dan penguat.

Bekalan:

Langkah 1: Load Cell

Pada sel beban (dari Accuteck W-8260-86W Postal Scale) 4 wayar yang datang dari sel beban adalah:

Merah: Pengujaan +

Putih: Isyarat +

Hijau: Isyarat -

Hitam: Pengujaan -

Ini sepadan dengan skema pendawaian GSE / NCI / Sensotec.

www.controlweigh.com/loadcell_colors.htm

Saya memutuskan sambungan 4 wayar dari papan kawalan dalam skala, jadi mereka akan tersedia untuk langkah seterusnya.

Langkah 2: Amplifier tersebut

Untuk meningkatkan output sel beban supaya Arduino dapat membacanya pada input analog, kita akan memerlukan penguat INA125P dan perintang 10 ohm. Sambungkan ke Arduino seperti yang ditunjukkan pada skematik yang dilampirkan.

Lembaran Data:

Langkah 3: Kod

// Arduino sebagai penguat sel beban

// oleh Christian Liljedahl

// christian.liljedahl.dk

/ / Beban sel adalah linear. Jadi sebaik sahaja anda telah menubuhkan dua pasangan data, anda boleh interpolate yang lain.

// Langkah 1: Muat naik lakaran ini ke papan arduino anda

// Anda memerlukan dua beban berat yang baik. Dalam contoh ini A = 10 kg. B = 30 kg

/ / Letakkan beban A

// bacalah nilai analog menunjukkan (ini analogvalA)

/ / memakai beban B

// baca nilai analog B

// Masukkan nilai analog anda di sini

beban apunganA = 10; / kg

int analogvalA = 200; // bacaan analog diambil dengan beban A pada sel beban

float loadB = 30; / kg

int analogvalB = 600; // bacaan analog diambil dengan beban B pada sel beban

/ / Muat naik lakaran lagi, dan sahkan, bahawa pembacaan kilo dari output siri sekarang betul, dengan menggunakan beban yang diketahui

float analogValueAverage = 0;

// Berapa kerapkah kita melakukan pembacaan?

lama = 0; //

int timeBetweenReadings = 200; // Kami mahu bacaan setiap 200 ms;

void setup () {

Serial.begin (9600);

}

kekosongan gelung () {

int analogValue = analogRead (0);

// purata berjalan - Kami melancarkan bacaan sedikit

analogValueAverage = 0.99 * analogValueAverage + 0.01 * analogValue;

// Adakah masa untuk mencetak?

jika (millis ()> masa + timeBetweenReadings) {

beban apungan = analogToLoad (analogValueAverage);

Serial.print ("analogValue:"); Serial.println (analogValueAverage);

Serial.print ("beban:"); Serial.println (beban, 5);

masa = millis ();

}

}

float analogToLoad (float analogval) {

// menggunakan fungsi peta tersuai, kerana fungsi peta arduino standard hanya menggunakan int

float load = mapfloat (analogval, analogvalA, analogvalB, loadA, loadB);

beban pulangan;

}

float mapfloat (float x, float in_min, float in_max, float out_min, float out_max)

{

kembali (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

}

Langkah 4: Penentukuran dan Penggunaan

Anda kini akan melihat data yang dipaparkan dalam monitor Serial, tetapi ia tidak akan masuk akal sehingga anda menentukur skala. Ikuti langkah-langkah dalam kod untuk penentukuran, dan kini anda bersedia untuk menggunakan skala ini, menambah ciri tambahan seperti butang untuk mengurangkan berat badan, atau mengawal servos dan relay untuk kawalan proses.

arduinotronics.blogspot.com/2013/01/working-with-sainsmart-5v-relay-board.html