16-02-2020, 13:59
(Ten post był ostatnio modyfikowany: 16-02-2020, 17:52 przez Robson Kerman.)
Witam,
jestem początkującym użytkownikiem arduino i mam następujący problem.
Po osiągnięciu temperatury przez czujnik nie wyświetla mi się odpowiednia wartość z tablicy tylko jakieś inne liczby.
Problem chyba tkwi w instrukcji switch case. Poniżej umieszczam kod.
jestem początkującym użytkownikiem arduino i mam następujący problem.
Po osiągnięciu temperatury przez czujnik nie wyświetla mi się odpowiednia wartość z tablicy tylko jakieś inne liczby.
Problem chyba tkwi w instrukcji switch case. Poniżej umieszczam kod.
Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DS18B20.h>
#include <DS3231.h>
///////////////////////////////Zmienne//////////////////////////////////////////////////////
uint8_t odczyt= 20;
////////////////////////////////////////////////////////////////////////////////////////////
DS3231 clock;
RTCDateTime dt;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Ustawienie adresu ukladu na 0x27
// Numer pinu do którego podłaczasz czujnik
#define ONEWIRE_PIN 8
// Adres czujnika
byte address1[8] = {0x28, 0x2, 0xEA, 0x7D, 0x2, 0x0, 0x0, 0x6D};
byte address2[8] = {0x28, 0x2A, 0x40, 0x7, 0xA, 0x0, 0x0, 0x62};
OneWire onewire(ONEWIRE_PIN);
DS18B20 sensors(&onewire);
void setup()
{
clock.setDateTime(__DATE__, __TIME__);
Serial.begin(9600);
pinMode(3, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
/////////////////////////////////////////////////////////////////////////////
sensors.begin();
sensors.request(address1);
sensors.request(address2);
///////////////////////////////////////////////////////Wyświetlacz////////////////////////////////////////
lcd.begin();
lcd.backlight(); // zalaczenie podwietlenia
lcd.clear();
lcd.setCursor(0, 0);
delay(500);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
pinMode(7, OUTPUT);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
}
void loop()
{
//////////////////////////////////Temperatura/////////////////////////////////////////////////////////////
float temperature1 = sensors.readTemperature(address1);
float temperature2 = sensors.readTemperature(address2);
sensors.request(address1);
sensors.request(address2);
lcd.setCursor(0,0);
lcd.print(temperature1);
lcd.setCursor(0,1);
lcd.print(temperature2);
/////////////////////////////////////////Nastawienie Temperatury/////////////////////////////////////////////////////////////////////////
gora();
dol();
lcd.setCursor(6, 1);
lcd.print(odczyt);
delay(200);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint8_t tab[]={};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
switch (odczyt)
{
case 22:
uint8_t tab[] = {90,80,70};
lcd.setCursor(10,1);
//lcd.print(tab[1]);
break;
case 23:
// uint8_t tab1[] = {40,30,20,15,10};
break;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (temperature2 >= 27 && temperature2 <= 28 )
{
lcd.print(tab[0]);
Serial.print(tab[0]);
delay(100);
}
if (temperature2 >= 29 && temperature2 <= 30)
{
lcd.print(tab[1]);
Serial.print(tab[1]);
delay(100);
}
}
///////////////////////////////////////////////////////////////////////
uint8_t gora ()
{
if (digitalRead(3) == LOW)
{
odczyt = odczyt+1;
return odczyt;
}
}
////////////////////////////////////////////////
uint8_t dol ()
{
if (digitalRead(2) == LOW)
{
odczyt = odczyt-1;
return odczyt;
}
}
uint8_t tab1 ()
{
}