Pilne - kod ino

Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

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ć :((

Kod: Zaznacz cały

//*****************************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) Przejrzano 2575 razy
jak coś nie działa to włącz zasilanie.....
Awatar użytkownika
lesny8
Posty: 2808
Rejestracja: pn gru 11, 2017 9:43 pm

Brak zasięgu dla zmiennej rainrate w ciele funkcji get_rain. Zadeklaruj globalnie.
Czekam na kolejne Supla Offline Party 👍
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

lesny8 pisze: pn cze 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:

Kod: Zaznacz cały

void setup() {
 
  Serial.begin(9600); 
 // Set up our digital pin as an interrupt
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), count, FALLING);
    double rainrate;
jak coś nie działa to włącz zasilanie.....
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

Inaczej - jak wyciągnąć rainrate z funkcji count aby była widoczna globalnie?
jak coś nie działa to włącz zasilanie.....
Awatar użytkownika
maffiu
Posty: 500
Rejestracja: śr lis 30, 2016 9:30 pm
Lokalizacja: Kraków/Skawina

Odbiegając od kodu na jakiej zasadzie to działa?
Awatar użytkownika
lesny8
Posty: 2808
Rejestracja: pn gru 11, 2017 9:43 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...
Czekam na kolejne Supla Offline Party 👍
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

maffiu pisze: pn cze 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 :(
jak coś nie działa to włącz zasilanie.....
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

lesny8 pisze: pn cze 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:

Kod: Zaznacz cały

#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;
jak coś nie działa to włącz zasilanie.....
Awatar użytkownika
maffiu
Posty: 500
Rejestracja: śr lis 30, 2016 9:30 pm
Lokalizacja: Kraków/Skawina

QLQ pisze: pn cze 24, 2019 8:59 pm
maffiu pisze: pn cze 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 🙃
Awatar użytkownika
lesny8
Posty: 2808
Rejestracja: pn gru 11, 2017 9:43 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

Kod: Zaznacz cały

rainrate = 914400.0 / tipcount;
zamiast

Kod: Zaznacz cały

double rainrate = 914400.0 / tipcount;
Czekam na kolejne Supla Offline Party 👍
ODPOWIEDZ

Wróć do „Pomoc”