• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
zawieszanie programów
#1
Witam!
Robię "stacje pogodową" i napotkałem problem. Mianowicie po wgraniu programu na Arduino Nano po przyciśnięciu przycisku (uruchomieniu funkcji pogoda) czas sie zatrzymuje i muszę resetować arduino. Czy wynika to z wielkości programu? Nie powinno bi zajmuje tylko 52% całej pamięci. proszę  o pomoc. przed dodaniem funkcji do czujnika DHT wszystko płynnie działało.
Kod:
#include "DHT.h"
#include <Wire.h>//Dodawanie bibliotek
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_BMP085.h>
#include <IRremote.h>
#include <RTClib.h>

#define prz 9
#define irPin 11
#define przycisk 10
#define DHTPIN 2
#define DHTTYPE DHT22

IRrecv irrecv(irPin);
decode_results results;

LiquidCrystal_I2C lcd(0x27, 20, 4);  // Ustawienie adresu ukladu na 0x27

DHT dht(DHTPIN, DHTTYPE);

OneWire oneWire(A3); //Podłączenie do A3
DallasTemperature sensors(&oneWire); //Przekazania informacji do biblioteki

Adafruit_BMP085 bmp;//Inicjalizacja czujnika bmp180

DateTime now;
char daysOfTheWeek[7][12] = {"Niedziela", "Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek", "Sobota"};
RTC_DS3231 rtc;

void showDate(void);
void showTime(void);
void showDay(void);




int przStatus = LOW;


void setup() {
 pinMode(przycisk, INPUT_PULLUP);
 pinMode(prz, OUTPUT);//Ustawienie
 lcd.init();
 lcd.backlight(); // zalaczenie podwietlenia
 sensors.begin();//Wloczenie czujnikow
 irrecv.enableIRIn();
 dht.begin();
 
 if (!bmp.begin()) {//Petla wykonan gdy nie znajdzie czuujnika bmp
 lcd.setCursor(0, 0);
 lcd.print("       ERROR!       ");
 lcd.setCursor(0, 1);
 lcd.print("       BMP180       ");
   while (1) {}
 }
 if (! rtc.begin())
 {
   lcd.setCursor(0,0);
   lcd.print("     RTC ERROR!     ");
   while (1);
 }

}

void loop() {

 now = rtc.now();
 showDate();
 showDay();
 showTime();

 

 if(digitalRead(przycisk)==HIGH){
   pogoda();
 }

  if (irrecv.decode(&results)) { //Jesli czujnik odbirze sygnał
     
   
     switch (results.value) {
        case 0xFF30CF:
           pogoda();
           break;
        case 0xFF18E7:
           przStatus = ~przStatus;
           digitalWrite(prz, przStatus);
           delay(250);
           break;
         
           
        }

  irrecv.resume();
  }
 
}
 


void pogoda() { //Petla pogody

  int sensorA = analogRead(A0);
  int sensorD = digitalRead(8);
  int opady =map (sensorA,1023,0,0,100);
   float h = dht.readHumidity();
 float t = dht.readTemperature();
 lcd.print("       Pogoda       ");
 sensors.requestTemperatures(); //Pobranie temperatury czujnika
 lcd.setCursor(0,1);
 lcd.print("Temp(Z): ");
 lcd.print(sensors.getTempCByIndex(0));  //Wyswietlenie informacji
 lcd.setCursor(14,1);
 lcd.print("C*");
 lcd.setCursor(0, 2);
 lcd.print("Temp(W): ");
 lcd.print(sensors.getTempCByIndex(1));  //Wyswietlenie informacji
 lcd.setCursor(14,2);
 lcd.print("C*");
 lcd.setCursor(0,3);
 lcd.print("Cisnienie: ");
 lcd.print(bmp.readPressure()/100);//Wyswietlenie cisnienia z bmp180  
 lcd.print(" hPa");
 delay(4000);
 lcd.clear();
 lcd.print("       Pogoda       ");
 lcd.setCursor(0,1);
 lcd.print("Opady: ");
   if (sensorD==1) {
    lcd.print("Sucho");}
 else{
 lcd.print("Pada");
 delay(1000);
}
 lcd.setCursor(0,2);
 lcd.print("Wilg: ");
 lcd.print(h);
 delay(4000);
 lcd.clear();
 
}

void showDate()
{
 lcd.setCursor(2,0);
 lcd.print(now.day());
 lcd.print('.');
 lcd.print(now.month());
 lcd.print('.');
 lcd.print(now.year());
}
void showDay()
{
 lcd.setCursor(2,3);
 lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
}
void showTime(){

 lcd.setCursor(2,1);
 lcd.print(now.hour());
 lcd.print(':');
 lcd.print(now.minute());
 lcd.print(':');
 lcd.print(now.second());
 lcd.print("    ");
}
 
Odpowiedź
  


Wiadomości w tym wątku
zawieszanie programów - przez Julek Rogalski - 30-03-2019, 00:03
RE: zawieszanie programów - przez error105 - 30-03-2019, 14:15
RE: zawieszanie programów - przez Julek Rogalski - 30-03-2019, 18:35
RE: zawieszanie programów - przez es2 - 11-05-2019, 19:01
RE: zawieszanie programów - przez kaczakat - 31-03-2019, 01:13
RE: zawieszanie programów - przez Julek Rogalski - 25-05-2019, 21:11

Skocz do:


Przeglądający: 1 gości