Přejít na obsah

Dotazy - pelmel


Doporučené příspěvky

Hele, nerozumí tady někdo Wiringu pro Arduino? Udělal jsem si pomocí HX711 převodníku na Arduino Due takovou váhu, aby mně to posílalo údaje o zváženém předmětu na COM. Ale nečte to skutečnou hmotnost - tj. mám váhu prázdnou, spustím Serial monitor, vložím vážený předmět a vono to ukazuje jeho hmotnost. To je OK. Ale když ten Serial monitor vypnu a ten předmět tam nechám a spustím znovu Serial monitor, tak mně to s tím předmětem načte nulu. Takže když ten předmět odeberu, tak mně to ukáže jeho hmotnost do mínusu. Mně z toho jebne. Zkrátka potřebuju, aby se to nenulovalo nebo jak to mám říct.

 

Mám tam tohle:

 

//=============================================================================================
//                         SETUP
//=============================================================================================
void setup() {
  Serial.begin(9600);
  Serial.println("HX711 Calibration");
  Serial.println("Remove all weight from scale");
  Serial.println("After readings begin, place known weight on scale");
  Serial.println("Press a,s,d,f to increase calibration factor by 10,100,1000,10000 respectively");
  Serial.println("Press z,x,c,v to decrease calibration factor by 10,100,1000,10000 respectively");
  Serial.println("Press t for tare");
  scale.set_scale();
  scale.tare(); //Reset the scale to 0
 
  long zero_factor = scale.read_average(); //Get a baseline reading
  Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
  Serial.println(zero_factor);
}
 
//=============================================================================================
//                         LOOP
//=============================================================================================
void loop() {
 
  scale.set_scale(calibration_factor); //Adjust to this calibration factor
 
  Serial.print("Reading: ");
  Serial.print(scale.get_units(), 3);
  Serial.print(" g"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person
  Serial.print(" calibration_factor: ");
  Serial.print(calibration_factor);
  Serial.println();
  delay(5000);
 
  if(Serial.available())
  {
    char temp = Serial.read();
    if(temp == '+' || temp == 'a')
      calibration_factor += 10;
    else if(temp == '-' || temp == 'z')
      calibration_factor -= 10;
    else if(temp == 's')
      calibration_factor += 100;  
    else if(temp == 'x')
      calibration_factor -= 100;  
    else if(temp == 'd')
      calibration_factor += 1000;  
    else if(temp == 'c')
      calibration_factor -= 1000;
    else if(temp == 'f')
      calibration_factor += 10000;  
    else if(temp == 'v')
      calibration_factor -= 10000;  
    else if(temp == 't')
      scale.tare();  //Reset the scale to zero
  }
}
//=============================================================================================
Upraveno uživatelem Zmizík
Odkaz ke komentáři
Sdílet na ostatní stránky

Ten kód mi připadá nějaký neúplný. Proč ten serial monitor vypínáš a znovu zapínáš?

Samo se ti to asi neudělá. Asi bys měl definovat proměnnou pro změřenou hodnotu a stav váhy, že na ní něco je, ať se nezkalibruje znovu.

Zkus to s tímhle: https://www.gme.cz/data/attachments/dsh.772-200.1.pdf

Upraveno uživatelem VS
Odkaz ke komentáři
Sdílet na ostatní stránky

Super, dik, to vypada dobre. Ja to Arduino vcera zapnul poprve v zivote, tak tenhle kod jsem nekde vobsvih, jestli je uplnej nebo ne fakt nedokazu posoudit. :D

Edit: Jo ted na nej koukam a asi sem ho spatne zkopiroval, chybi zacatek.

Upraveno uživatelem Zmizík
Odkaz ke komentáři
Sdílet na ostatní stránky

Budeš muset. Bez toho to nejde. Ale zas tak složité to není. Vem to od začátku podle té knížky.

Ještě k tomu serial monitoru. Mám takové tušení, že, když ho vypneš a znovu zapneš, restartuje se i program a váha se zkalibruje s položeným závažím na nulu. Nevypínej ho nebo si tam připoj displej a zobrazuj to na displeji.

Upraveno uživatelem VS
Odkaz ke komentáři
Sdílet na ostatní stránky

  • po 2 týdnech...

Pokud chcete odpovídat, musíte se přihlásit nebo si vytvořit účet.

Pouze registrovaní uživatelé mohou odpovídat

Vytvořit účet

Vytvořte si nový účet. Je to snadné!

Vytvořit nový účet

Přihlásit se

Máte již účet? Zde se přihlaste.

Přihlásit se
×
×
  • Vytvořit...