J'ai déjà fait des montages à base d'arduino sans comprendre le fonctionnement mais maintenant j'aimerais mieux comprendre et même en créer.
Existe t-il un lexique des différentes commandes avec des exemples?
Par exemple, je voudrais savoir ce que veut dire:
int taree = 6; //pour cette ligne, c'est de déclarer une constante connectée à la broche D6 mais pour la seconde...
float b =0;
Non pas vraiment, ce que tu appel des commandes est en fait un langage, en l'occurrence le C/C++(oui il en existe d'autre utilisable sur Arduino).
Le mieux que l'on puisse conseiller est de suivre le site de l'eskimon
Si tu as des questions après avoir lu ce site, n'hésite pas à nous demander des détailles.
int taree = 6;
Cette instruction déclare une variable non constante de type int, c'est à dire que la variable peu prendre une valeur -32768 à 32757(attention ceci est valable sur le microprocesseur 8bits).
La variable étant initialisé avec la valeur 6.
Tel quel, il n'y ait fait aucun référence à un numéro de broche, par contre la variable peut être utiliser pour préciser la valeur d'une broche(D6) à une focntion.
float b =0;
Du coup c'est instruction est quasiment identique, la variable b est un nombre à virgule flottante initialiser avec la valeur 0.
b n'a aucune signification a part faire référence a un nom donné a la variable.
on pourrait aussi bien mettre Toto a condition de remplacer partout b par Toto
par contre il est interdit de nommer une variable par un mot réservé du langage !
int taree = 6
taree ne veut rien dire puisque c'est une variable ..
mettons nous dans la tête de celui qui a écris le programme
si c'est une programme de balance ca peut dans son esprit représenter la tare ...
s'il compte des fous dans un asile taree prend une toute autre signification
il est préférable d'utiliser des variables parlantes ...
int cette_variable_je_sais_a_quoi_ca_correspont_cest_le_prix_du_lait = 2;
Comme tu ne donne pas ton code, impossible d'être sur.
Donc surement, après tu peux toujours supprimer les trucs qui te semble inutile, souvent cela génère une erreur à la compilation, des fois cela change le comportement de ton application
//Viral Science www.viralsciencecreativity.com www.youtube.com/c/viralscience
//Arduino Digital Weight Scale HX711 Load Cell Module
#include <HX711_ADC.h> // https://github.com/olkal/HX711_ADC
#include <Wire.h>
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C library
HX711_ADC LoadCell(4, 5); // dt pin, sck pin
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD HEX address 0x27
int taree = 6; // taree pin D6
//int a = 0;
//float b = 0;
void setup() {
pinMode (taree, INPUT_PULLUP);
LoadCell.begin(); // démarrer la connexion au HX711
LoadCell.start(1000); // les cellules de charge ont 1000 ms de temps pour se stabiliser
//ETALONNAGE
LoadCell.setCalFactor(353.8); // 375 d'origine.Étalonnez votre CELLULE DE CHARGE avec un poids de 100 //g et modifiez la valeur en fonction des lectures
//
lcd.init(); // commence la connexion au module LCD
lcd.backlight(); // allume le rétroéclairage
lcd.setCursor(0, 0); // placer le curseur sur la première ligne, avant (1 ,0)
lcd.print("BANC DE TRACTION"); // imprimer sur LCD
lcd.setCursor(1, 1); // placer le curseur sur la première ligne
lcd.print(" 5KG MAXIMUM "); // imprimer sur LCD
delay(3000);
lcd.clear();
}
void loop() {
lcd.setCursor(0, 0); // placer le curseur sur la première ligne, avant (1 ,0)
lcd.print("BANC DE TRACTION "); // imprimer sur LCD
LoadCell.update(); // récupère les données de la cellule de pesée
float i = LoadCell.getData(); // obtenir la valeur de sortie
if (i<0)
{
i = i * (-1);
lcd.setCursor(0, 1);
lcd.print("-"); //signe moins de gr
//lcd.setCursor(8, 1); //signe moins de oz
//lcd.print("-");
}
else
{
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(8, 1);
lcd.print(" ");
}
lcd.setCursor(4, 1); // placer le curseur sur la.....
lcd.print(i, 1); //imprime la valeur récupérée sur la deuxième ligne. Le second chiffre //indique la précision, soit 0=0, 1=0.1 et rien =0.01 derrière la virgule
lcd.print("gr ");
float z = i/28.3495; //conversion gr en oz
//lcd.setCursor(9, 1); // suppression de oz
//lcd.print(z, 2); // suppression de oz
//lcd.print("oz "); // suppression de oz
if (i>=5000)
{
i=0;
lcd.setCursor(0, 0); // placer le curseur sur la.....
lcd.print(" Surchargé "); //Surchargé
delay(200);
}
if (digitalRead (taree) == LOW) //si taree est à l'état bas, tiré à gnd
{
lcd.setCursor(0, 1); // placer le curseur sur la.....
lcd.print(" Tarage... ");
LoadCell.start(1000); //redémarre l'inscription sur le lcd après tarage
lcd.setCursor(0, 1); // placer le curseur sur la.....
lcd.print(" ");
}
}