Od dobrych paru dni próbuję zrobić termometr który wyświetlałby na wyświetlaczu pomiary z czterech czujników . Ale chciałbym aby te cztery temperatury wyświetlały się w sposób ciągły obok siebie . Udało mi się tylko zrobić że temperatura wyświetla się na wyświetlaczu raz z jednego czujnika raz z drugiego . Co zmienić w kodzie aby wyświetlały się wszystkie temperatury naraz . Oto program jakiego użyłem .
Kod:
#include <OneWire.h>
#include <DS18B20.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 3
#define ONEWIRE_PIN 2
#define SENSORS_NUM 2
const byte address[SENSORS_NUM][8] PROGMEM = {
0x28, 0x27, 0xB9, 0xF3, 0x4, 0x0, 0x0, 0xF6 ,
0x28, 0xFD, 0x3A, 0xF3, 0x4, 0x0, 0x0, 0x78
};
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
OneWire onewire(ONEWIRE_PIN);
DS18B20 sensors(&onewire);
void setup() {
while(!Serial);
Serial.begin(9600);
lcd.begin(16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
sensors.begin();
sensors.request();
}
void loop() {
if (sensors.available())
{
for (byte i=0; i<SENSORS_NUM; i++)
{
int temperature = sensors.readTemperature(FA(address[i]));
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PIEC ");
lcd.print(temperature);
lcd.print("C");
delay(1100);
}
sensors.request();
}