Pilne - kod ino

User avatar
QLQ
Posts: 810
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Mon Jun 24, 2019 8:25 pm

za diabła :evil: :cry: nie mogę przesłać wartości rainrate do Cloud, w serialport ładnie widzi i czyta a do Supli za cholery nie chce przesłać :((

Code: Select all

//*****************************OPADY_DESZCZ*******************************************

double get_rain(int channelNumber, double t) {

    t = rainrate;    ----------------------########### CZEMU TEGO NIE CZYTA Z VOID COUNT ??????????????????????
  
    
}
//**********************************WYLICZ OPADY****************************************
void count() {
  // Grab the current ms count for common calculations
  unsigned long curtime = millis();
  
  // Make sure we don't record bounces
  if ((curtime - tiptime) < interval) {
    return;
  }
// How long since the last tip?
  unsigned long tipcount = curtime - tiptime;
  tiptime = curtime;
  
  // Calculate mm/hr from period between cup tips
  double rainrate = 914400.0 / tipcount;
  
  Serial.print("Cup tip: ");
  Serial.print(tipcount);
  Serial.println("ms");  
  
  Serial.print("Opady deszczu: ");
  Serial.print(rainrate/10);
  Serial.println("l/m2");  
  Serial.println("mm/h");  
}
nie mogę przez to skończyć deszczomierza pod SUPLĘ :(
IMG_20190624_222732.jpg
IMG_20190624_222732.jpg (158.14 KiB) Viewed 380 times
Rzeczy niemożliwe załatwiam "od ręki". Na cuda potrzebuje chwili...
User avatar
lesny8
Posts: 789
Joined: Mon Dec 11, 2017 9:43 pm

Mon Jun 24, 2019 8:32 pm

Brak zasięgu dla zmiennej rainrate w ciele funkcji get_rain. Zadeklaruj globalnie.
User avatar
QLQ
Posts: 810
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Mon Jun 24, 2019 8:37 pm

lesny8 wrote:
Mon Jun 24, 2019 8:32 pm
Brak zasięgu dla zmiennej rainrate w ciele funkcji get_rain. Zadeklaruj globalnie.
no właśnie tylko jak ? noga ze mnie z programowania.

mam jeszcze tak:

Code: Select all

void setup() {
 
  Serial.begin(9600); 
 // Set up our digital pin as an interrupt
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), count, FALLING);
    double rainrate;
Rzeczy niemożliwe załatwiam "od ręki". Na cuda potrzebuje chwili...
User avatar
QLQ
Posts: 810
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Mon Jun 24, 2019 8:45 pm

Inaczej - jak wyciągnąć rainrate z funkcji count aby była widoczna globalnie?
Rzeczy niemożliwe załatwiam "od ręki". Na cuda potrzebuje chwili...
User avatar
maffiu
Posts: 487
Joined: Wed Nov 30, 2016 9:30 pm
Location: Kraków/Skawina

Mon Jun 24, 2019 8:56 pm

Odbiegając od kodu na jakiej zasadzie to działa?
User avatar
lesny8
Posts: 789
Joined: Mon Dec 11, 2017 9:43 pm

Mon Jun 24, 2019 8:57 pm

Zmienna ma zasięg globalny, jeśli jest zadeklarowaną poza funkcją. Np. Na początku pliku. Sprawdź czy Ci zadziała. Zaraz usiade do kompa...
User avatar
QLQ
Posts: 810
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Mon Jun 24, 2019 8:59 pm

maffiu wrote:
Mon Jun 24, 2019 8:56 pm
Odbiegając od kodu na jakiej zasadzie to działa?
masz 2 szalki na ośce jak na foto wyżej - woda wypełnia jedną przechyla się na drugą , wypełnia drugą itd, do tego jest czujnik - kontrakton i magnes - standardowy pomiar w czasie, podobnie jak obroty.

CHCĘ ZROBIĆ FILMIK ALE NIE MOGĘ bo nie działa w Supla. Walczę z tym już od 2h :(
Rzeczy niemożliwe załatwiam "od ręki". Na cuda potrzebuje chwili...
User avatar
QLQ
Posts: 810
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Mon Jun 24, 2019 9:01 pm

lesny8 wrote:
Mon Jun 24, 2019 8:57 pm
Zmienna ma zasięg globalny, jeśli jest zadeklarowaną poza funkcją. Np. Na początku pliku. Sprawdź czy Ci zadziała. Zaraz usiade do kompa...
no właśnie NIE bo mam zaraz po definicjach bibliotek:

Code: Select all

#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET); // GPIO5 - SCL , GPIO4 -SDA


const byte interruptPin = 12;
const int interval = 500;
volatile unsigned long tiptime = millis();
double rainrate;    $$$$$$$$$$$$$$$$$$$$$
unsigned long curtime;
Rzeczy niemożliwe załatwiam "od ręki". Na cuda potrzebuje chwili...
User avatar
maffiu
Posts: 487
Joined: Wed Nov 30, 2016 9:30 pm
Location: Kraków/Skawina

Mon Jun 24, 2019 9:08 pm

QLQ wrote:
Mon Jun 24, 2019 8:59 pm
maffiu wrote:
Mon Jun 24, 2019 8:56 pm
Odbiegając od kodu na jakiej zasadzie to działa?
masz 2 szalki na ośce jak na foto wyżej - woda wypełnia jedną przechyla się na drugą , wypełnia drugą itd, do tego jest czujnik - kontrakton i magnes - standardowy pomiar w czasie, podobnie jak obroty.

CHCĘ ZROBIĆ FILMIK ALE NIE MOGĘ bo nie działa w Supla. Walczę z tym już od 2h :(
Już kumam dzięki
całe życie się człowiek uczy 🙃
User avatar
lesny8
Posts: 789
Joined: Mon Dec 11, 2017 9:43 pm

Mon Jun 24, 2019 9:08 pm

Ok, ale w void setup() masz zadeklarowaną zmienną o takiej samej nazwie i to do niej przypisujesz wartość, a nie do tej globalnej.
W void setup() daj po prostu

Code: Select all

rainrate = 914400.0 / tipcount;
zamiast

Code: Select all

double rainrate = 914400.0 / tipcount;
Post Reply