Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   352 / 361
(#) kaqkk válasza Bakman hozzászólására (») Szept 21, 2022 /
 
Köszi a kiegészítést !
(#) Baxi hozzászólása Szept 30, 2022 /
 
Hi Mesterek!
Elakadtam.......
Adott egy NTC termisztor, amivel egy nagyjából hőmérséklet szeretnék mérni.
Felvettem (excel) a mért értékeket, de sehogy sem jön össze a képlet hozzá.
Azaz egy multival mérem a hőmérsékletet s a kapott/mért AD értékek vannak hozzá rendelve a táblázatban.
Tudnátok öltetett adni hozzá?
Segítséget előre is köszönöm!
A hozzászólás módosítva: Szept 30, 2022
(#) kaqkk válasza Baxi hozzászólására (») Szept 30, 2022 /
 
A mért értékeket tedd be egy tömbbe és az adc értékeit rendeld hozzá.
(#) Baxi válasza kaqkk hozzászólására (») Szept 30, 2022 /
 
Tudnál egy pédát mutatni a tömb használatára, vagy C ben kell bepötyögni?
(#) kaqkk válasza Baxi hozzászólására (») Szept 30, 2022 /
 
Hányas verziót használsz ? Csinálsz egy tömb változót és egy számításba beírod az értékeket (ez éppen egy 9 elemű tömb aminek az értékei az 1-9 számokkal hívhatók elő
tomb[1] = 136
tomb[2] = 110
tomb[3] = 206
tomb[4] = 154
tomb[5] = 214
tomb[6] = 246
tomb[7] = 140
tomb[8] = 254
tomb[9] = 222
A hozzászólás módosítva: Szept 30, 2022
(#) Bakman válasza Baxi hozzászólására (») Szept 30, 2022 /
 
Egyenes egyenlete, két pontból, már ha lineárisnak vesszük az általad közölt eredményeket.

100;80 és 520;20

y = −0.142857142857x + 94.2857142857

Egyszerűsítve, kerekítve:
y = -0.14x + 94.3
100y = -14x + 9430
128y = -17.92x + 12 070.4
128y = -18x + 12 070

128 = 27

pl.:
adc_eredmeny: 244

y=adc_eredmeny*-18 //-4392
y=y+12070 //7678
y=y<<7 //y=59

Ha pontosabb értékeket akarsz, érdemes 12 bites ADC-t használni és 128-as szorzó helyett 1024-et hazsnálni a képletben. Az alapvető gond az, hogy az NTC nem lineáris karakterisztikájú, bonyolultabb számítást meg nem nagyon tud egy egyszerű, 8 bites kontroller.

Megoldás lehet, ha a görbét több szakaszra osztod és a szakaszokat kezeled lineárisan.
A hozzászólás módosítva: Szept 30, 2022
(#) kokozo válasza Baxi hozzászólására (») Szept 30, 2022 /
 
Szia!
Ilyen hektikus értékre nem fogsz képletet találni..
Én (ha tényleg ezek az értékek) akkor egy tömböt vagy sok változót hoznék létre a hőfokokkal és az adc értékekkel, és mérésnél pl adc=110 ha adc > 100 de kisebb mint 115 akkor számításba x=80-75 (5) y=x/(115-100)->y=0.33 100-115 adc értéknél 1 adc változás 0,3 fok. Ebből már ki lehet egy ismételt számítással találni a jó értéket. számítás z=110(mért)-100= (10), 80-10*0,3(y) azaz 77 fok ha jól számoltam..

dia.PNG
    
(#) Baxi hozzászólása Szept 30, 2022 /
 
Igen az értékek, mért valós adatok. A flow-ból a 5.5.2.1-es ver. használom.
Most megpróbálom felfogni amit írtatok.

Majd jelentkezem, hogy mire jutottam.
Köszönöm Mindenkinek a gyors segítséget!!
(#) niedziela válasza Baxi hozzászólására (») Szept 30, 2022 /
 
  1. double Temp;
  2.  
  3. Temp = log(((10240000/RawADC) - 10000));
  4.  
  5. // 10K Ohm hoellenallas NTC.
  6.  
  7. //Ahogy számolunk:
  8.  
  9. Ellenállás =  (1024 * BalanceResistor/ADC) - BalanceResistor
  10.  
  11. Temp = 1 / (0.001129148 + (0.000234125 * Temp)  + (0.0000000876741 * Temp * Temp * Temp));
  12.  
  13. Temp = Temp - 273.15;
  14.  
  15.  return Temp;


vagy


B_coefficient 3950.00 /* B coefficient of NTC Thermistor*/

  1. float Thermistor_temperature;
  2.     analog_value = ADC_Read(0);         /* store adc value on val register */
  3.  
  4.     /* calculate the NTC resistance */
  5.         NTC_Resistance = ((1023*Series_Resistance/analog_value) - Series_Resistance);                  
  6.         Thermistor_temperature = log(NTC_Resistance);   /* calculate natural log of resistance */
  7.  
  8.     /* Calculate Temperature using B parameter Equation */
  9.     /* 1/T = 1/T0 + ((1/B_coefficient)*log(NTC_Resistance/Series_Resistance)) */
  10.     Thermistor_temperature = (1.0/(Room_temperature + 273.15))+
  11.                              (1.0/B_coefficient)*log(NTC_Resistance/Series_Resistance));
  12.     Thermistor_temperature = (1/Thermistor_temperature) - 273.15;       /* convert kelvin to °C */
  13.        
  14.         return Thermistor_temperature;
A hozzászólás módosítva: Szept 30, 2022
(#) Baxi válasza niedziela hozzászólására (») Okt 1, 2022 /
 
Szia, be pötyögtem a sorokat Excelbe, nem nagyon adja
Megnéznéd mi lehet a gubanc?
(#) Baxi válasza Baxi hozzászólására (») Okt 2, 2022 /
 
Hi Mesterek!
Végül is sikerült egyenletből megoldani.
Így majdnem +/- 1 fokon belül mér. Bőven jó a ventilátor vezérléshez a hűtőbordához.
  1. ntc0_ = fdiv (ad0_float,100) //AD/100
  2. ntc0_ = fmul (ntc0_,0.0087) //állandó különbséggel szorozva
  3. ntc0_ = fmul (ad0_float,ntc0_) //AD szorzása 1C/AD-val
(#) kaqkk hozzászólása Okt 2, 2022 /
 
Nincs valakinek egy egyenlete amivel GPS koordináták és dátum alapján ki lehetne számítani a napkelte napnyugta időpontjait ?
(#) Bakman válasza kaqkk hozzászólására (») Okt 2, 2022 /
 
Lásd melléklet. Ettől egyszerűbb, ha táblázatot használsz, már ha csak kis hazánkra gondolsz. Ma Sopron és Tiszabecs között kb. 25 perces eltérések vannak.
(#) kaqkk válasza Bakman hozzászólására (») Okt 2, 2022 /
 
Éppen a táblázat (tömb ) használatát akartam elkerülni , mert több helyszin több adat -több tömb .... Köszönöm megpróbálom értelmezni felhasználni
A hozzászólás módosítva: Okt 2, 2022
(#) kokozo válasza Baxi hozzászólására (») Okt 2, 2022 /
 
Szia!
Amit én írtam az teljesen jól működik, igaz hót primitív és egyszerű Lásd képek..
(#) niedziela válasza Baxi hozzászólására (») Okt 2, 2022 /
 
Excelbe ?

Csak be kellett volna másolni a flowhoz igazítva a programba.
(#) Baxi válasza niedziela hozzászólására (») Okt 3, 2022 /
 
flow-ba Én nem találtam log függvényt.
(#) Baxi válasza kokozo hozzászólására (») Okt 3, 2022 /
 
Szia, olyan kicsik a képek, hogy nem látom. Ha nem titkos maga a fc feltudnád rakni?
(#) makait1 hozzászólása Nov 9, 2022 /
 
Szerbusztok!
Segítséget kérnék. Kezdő vagyok a kérdésben, próbálkozom egy egyszerű feladattal, de már az elején elakadtam. Nem tudok működésre bírni megszakítással egy kontrollert. Nem tudom mit rontok el, a szimulációban látszólag működik, de ahogy beírom a PIC-be már nem csinál semmit. Megköszönném ha ránézne valaki hozzáértő.

próba.fcf
    
(#) makait1 válasza makait1 hozzászólására (») Nov 9, 2022 /
 
Ja, egyenlőre csak a ledet szeretném villogtatni, hogy lássam működik e a megszakítással a timer.
A hozzászólás módosítva: Nov 9, 2022
(#) kaqkk válasza makait1 hozzászólására (») Nov 9, 2022 /
 
Állítrottam picit a konfiguráción , nézd meg hogy most működik e ?
A hozzászólás módosítva: Nov 9, 2022

próba_x.fcf
    
(#) makait1 válasza kaqkk hozzászólására (») Nov 9, 2022 /
 
Hasonlóan már próbáltam. De így se megy. Vettem új kontrolllert is, hátha az a hibás, de semmi.
(#) kaqkk válasza makait1 hozzászólására (») Nov 9, 2022 /
 
Ez már talán villogni fog , amikor felkapcsoltad a ledet rögtön nulláztad a sec változót ezért nem volt ideje villogni

próba_x.fcf
    
(#) Bakman válasza kaqkk hozzászólására (») Nov 9, 2022 / 1
 
Chip konfiguráció -> Oscillator: Internal RC Clockout

Ebben az esetben a GP4-es lábon a belső órajel negyede jelenik meg. Internal RC No Clock -ra kell állítani, ha egyén dologra akarod használni adott lábat.
(#) Bakman válasza makait1 hozzászólására (») Nov 9, 2022 / 1
 
Flowcode nem mindig tolerálja ha a fájlnévben és/vagy a fájl elérési útvonalában speciális karakter van, érdemes ezeket mellőzni. Csak az angol ABC betűit hazsnáld, abból tuti nincs baj.
(#) kaqkk válasza Bakman hozzászólására (») Nov 9, 2022 /
 
Tökéletesen igazad van , soha nem használom a belső oszcit ezért lehet hogy a másik opciót használtam .
(#) makait1 válasza kaqkk hozzászólására (») Nov 9, 2022 /
 
Minden tanácsot megfogadtam, de még semmi fejlemény. Egy sima késleltetéses villogtatást is beraktam egy másik portra, az megy szépen. Nem értem mi lehet a gond. Hardveresen minden ok.
A hozzászólás módosítva: Nov 9, 2022
(#) kaqkk válasza makait1 hozzászólására (») Nov 9, 2022 /
 
Az MCLR lábat felhúztad a + ra 1-10k ellenállással ? Ennél nem kell felhúzni .
A hozzászólás módosítva: Nov 9, 2022

próba_xx.fcf
    
(#) makait1 hozzászólása Nov 9, 2022 /
 
Nem. Azt még megcsinálom. De késöbb azt a pint is akarom használni egy bemenetnek.
(#) Bakman válasza makait1 hozzászólására (») Nov 9, 2022 /
 
Jobb klikk a TMR0 megszakításra -> Tulajdonságok -> Tulajdonságok gomb.

Clock Source Select: Transition on T0CKI pin helyett Internal clock (CLKO)
A hozzászólás módosítva: Nov 9, 2022
Következő: »»   352 / 361
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem