Cellule de charge / échelle Arduino: 4 étapes

Cellule de charge / échelle Arduino: 4 étapes

Table des matières:

Anonim

Des esprits à

Mise à jour importante!

Étant donné que de nombreuses personnes rencontraient des problèmes avec l'INA125P, nous avons maintenant une nouvelle version améliorée qui utilise le module d'amplificateur Hx711 ADC 24 bits.

Mon objectif était de créer une balance programmable pour peser des objets, compter les pièces, et même diriger le flux de produits sur un système de convoyage.

J'avais besoin d'un capteur de force, d'un Arduino et d'un amplificateur.

Provisions:

Étape 1: la cellule de charge

Sur cette cellule de charge (à partir d’une balance postale Accuteck W-8260-86W), les 4 fils provenant de la cellule de charge sont les suivants:

Rouge: Excitation +

Blanc: Signal +

Vert: Signal -

Noir: Excitation -

Ceci correspond au schéma de câblage GSE / NCI / Sensotec.

www.controlweigh.com/loadcell_colors.htm

J'ai déconnecté les 4 fils de la carte de contrôle dans la balance pour qu'ils soient disponibles pour l'étape suivante.

Étape 2: l'amplificateur

Pour augmenter la sortie du capteur de force afin que l’Arduino puisse le lire sur une entrée analogique, nous aurons besoin d’un amplificateur INA125P et d’une résistance de 10 ohm. Connectez-vous à l’Arduino comme indiqué sur le schéma ci-joint.

Fiche technique:

Étape 3: le code

// Arduino comme amplificateur de cellule de charge

// par Christian Liljedahl

// christian.liljedahl.dk

// Les cellules de charge sont linéaires. Ainsi, une fois que vous avez établi deux paires de données, vous pouvez interpoler le reste.

// Étape 1: Téléchargez ce croquis sur votre tableau Arduino

// Vous avez besoin de deux charges de poids bien connu. Dans cet exemple, A = 10 kg. B = 30 kg

// Mettre en charge A

// lit la valeur analogique affichée (c'est analogvalA)

// mettre en charge B

// lit la valeur analogique B

// Entrez vos propres valeurs analogiques ici

charge de flottement A = 10; // kg

int analogvalA = 200; // lecture analogique prise avec la charge A sur le capteur de force

charge flottante B = 30; // kg

int analogvalB = 600; // lecture analogique prise avec la charge B sur le capteur de force

// Téléchargez à nouveau l'esquisse et confirmez que le kilo lu par la sortie série est maintenant correct, en utilisant vos charges connues.

float analogValueAverage = 0;

// À quelle fréquence faisons-nous des lectures?

temps long = 0; //

int timeBetweenReadings = 200; // Nous voulons une lecture toutes les 200 ms;

void setup() {

Serial.begin (9600);

}

boucle vide () {

int analogValue = analogRead (0);

// moyenne courante - Nous lissons un peu les lectures

analogValueAverage = 0,99 * analogValueAverage + 0.01 * analogValue;

// Est-il temps d'imprimer?

if (millis ()> time + timeBetweenReadings) {

float load = analogToLoad (analogValueAverage);

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

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

temps = millis ();

}

}

float analogToLoad (float analogval) {

// utilisation d'une fonction de carte personnalisée, car la fonction de carte arduino standard utilise uniquement int

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

charge de retour;

}

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

{

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

}

Étape 4: Étalonnage et utilisation

Vous verrez maintenant les données affichées sur le moniteur série, mais cela n'aura pas beaucoup de sens jusqu'à ce que vous calibriez la balance. Suivez les étapes du code pour l'étalonnage et vous êtes maintenant prêt à utiliser cette balance, ajoutez des fonctionnalités supplémentaires, telles que des boutons permettant de réduire à zéro le poids de la tare ou de contrôler des servos et des relais pour le contrôle de processus.

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