Skocz do zawartości

sterownik CO CWU wersja uboga


koragreg

Pomocna odpowiedź

Cześć

poniżej wklejam kod który trochę nie działa, sam odczyt temperatur jest ok, natomiast jak wpisałem linie dotyczące przycisków wysypuje mi błędy (dlaczego??)

temat sterowania CO i CWU w tym układzie jest tylko prewizorką do nauki ale nie wiem co dalej zrobić

Mam dwa czujniki LCD 4 rzędowy który ma pokazywać temp. mierzoną i zadaną i cztery przyciski

Przyciski jako pary tj. dwa jako + i - zadawanie wartości CO a druga para CWU i wystarczy jak to będzie ustawiane co 1 stopień, wydaje mi się że będzie to związane z rodzajem danych typu "int" ale nie wiem jak to zapisać aby zmieniać te wartości zadane, żeby je również pokazywało no i porównywało z tym co mierzy

z góry dzięki

  • Lubię! 1
Link do komentarza
Share on other sites

3 minuty temu, koragreg napisał:

Cześć

poniżej wklejam kod który trochę nie działa, sam odczyt temperatur jest ok, natomiast jak wpisałem linie dotyczące przycisków wysypuje mi błędy (dlaczego??)

temat sterowania CO i CWU w tym układzie jest tylko prewizorką do nauki ale nie wiem co dalej zrobić

Mam dwa czujniki LCD 4 rzędowy który ma pokazywać temp. mierzoną i zadaną i cztery przyciski

Przyciski jako pary tj. dwa jako + i - zadawanie wartości CO a druga para CWU i wystarczy jak to będzie ustawiane co 1 stopień, wydaje mi się że będzie to związane z rodzajem danych typu "int" ale nie wiem jak to zapisać aby zmieniać te wartości zadane, żeby je również pokazywało no i porównywało z tym co mierzy

z góry dzięki

dodaję jeszcze błędy które wyskoczyły

C:\Users\GREG\Documents\Arduino\DS18B20_2szt_LCD_przycLED\DS18B20_2szt_LCD_przycLED.ino:5:1: error: 'Button' does not name a type; did you mean 'ultoa'?
 Button zadCOplus = button(22, button_pullup);
 ^~~~~~
 ultoa
C:\Users\GREG\Documents\Arduino\DS18B20_2szt_LCD_przycLED\DS18B20_2szt_LCD_przycLED.ino:6:1: error: 'Button' does not name a type; did you mean 'ultoa'?
 Button zadCOminus = button(24, button_pullup);
 ^~~~~~
 ultoa
C:\Users\GREG\Documents\Arduino\DS18B20_2szt_LCD_przycLED\DS18B20_2szt_LCD_przycLED.ino:7:1: error: 'Button' does not name a type; did you mean 'ultoa'?
 Button zadCWUplus = button(26, button_pullup);
 ^~~~~~
 ultoa
C:\Users\GREG\Documents\Arduino\DS18B20_2szt_LCD_przycLED\DS18B20_2szt_LCD_przycLED.ino:8:1: error: 'Button' does not name a type; did you mean 'ultoa'?
 Button zadCWUminus = button(28, button_pullup);
 ^~~~~~
 ultoa
C:\Users\GREG\Documents\Arduino\DS18B20_2szt_LCD_przycLED\DS18B20_2szt_LCD_przycLED.ino: In function 'void setup()':
C:\Users\GREG\Documents\Arduino\DS18B20_2szt_LCD_przycLED\DS18B20_2szt_LCD_przycLED.ino:28:21: error: 'output' was not declared in this scope
   pinMode(CWUstart, output);
                     ^~~~~~
Znaleziono wiele bibliotek w "LiquidCrystal.h"
  Wykorzystane: C:\Users\GREG\Documents\Arduino\libraries\LiquidCrystal
  Niewykorzystane: C:\Users\GREG\AppData\Local\Arduino15\libraries\LiquidCrystal
exit status 1

Compilation error: 'Button' does not name a type; did you mean 'ultoa'?

Link do komentarza
Share on other sites

jeszcze raz spróbuje

```cpp
#include <OneWire.h>      //biblioteka komunikacji
#include <DallasTemperature.h>    //biblioteka czujników firmy DAllas
#include <LiquidCrystal.h>        //biblioteka wyświetlaczy LCD
#include <Button.h>       //biblioteka przyciskow
Button zadCOplus = button(22, button_pullup);
Button zadCOminus = button(24, button_pullup);
Button zadCWUplus = button(26, button_pullup);
Button zadCWUminus = button(28, button_pullup);
#define CWUstart 30
#define COstart 32

#define ONE_WIRE_BUS 8      //przypisanie wej.8 do czujników
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int deviceCount = 0;
float tempC;

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;   //przypisanie wyjsc do wyświetlacza
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);



void setup(void)
{
  Serial.begin(9600);   //prędkość komunikacji
  sensors.begin();
  lcd.begin(20, 4);   //ilość lini i znaków
  pinMode(CWUstart, output);
  pinMode(COstart, output);

}

void loop(void){ 
  
  sensors.requestTemperatures(); 
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp1(C)");
  lcd.setCursor(10, 0);
  lcd.print(sensors.getTempCByIndex(0));

  lcd.setCursor(0, 1);
  lcd.print("Temp2(C)");
  lcd.setCursor(10, 1);
  lcd.print(sensors.getTempCByIndex(1));

  lcd.setCursor(0, 2);
  lcd.print("Temp1zadana(C)");
  lcd.setCursor(10, 2);
  
lcd.setCursor(0, 3);
  lcd.print("Temp1zadana(C)");
  lcd.setCursor(10, 3);

  delay(5000);
}

```

 

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ale wiesz że kompilator odróżnia wielkie i małe litery, czyli nie możesz w pinMode wpisać "output" zamiast "OUTPUT". Doprowadź kod do porządku, jak dalej będą problemy to będziemy myśleć.

Link do komentarza
Share on other sites

Zrobiłem kilka zmian ale dalej mam sporo błędów

```cpp
#include <OneWire.h>      //biblioteka komunikacji
#include <DallasTemperature.h>    //biblioteka czujników firmy DAllas
#include <LiquidCrystal.h>        //biblioteka wyświetlaczy LCD
#include <Button.h>       //biblioteka przyciskow
const int zadCOplus = 22
const int zadCOminus = 24
const int zadCWUplus = 26
const int zadCWUminus = 28
BUTTON zadCOplus = Button(BUTTON_PULLUP);
BUTTON zadCOminus = Button(BUTTON_PULLUP);
BUTTON zadCWUplus = Button(BUTTON_PULLUP);
BUTTON zadCWUminus = Button(BUTTON_PULLUP);
#define CWUstart 30
#define COstart 32

#define ONE_WIRE_BUS 8      //przypisanie wej.8 do czujników
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int deviceCount = 0;
float tempC;

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;   //przypisanie wyjsc do wyświetlacza
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);



void setup(void)
{
  Serial.begin(9600);   //prędkość komunikacji
  sensors.begin();
  lcd.begin(20, 4);   //ilość lini i znaków
  pinMode(CWUstart, OUTPUT);
  pinMode(COstart, OUTPUT);

}

void loop(void){ 
  
  sensors.requestTemperatures(); 
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp1(C)");
  lcd.setCursor(10, 0);
  lcd.print(sensors.getTempCByIndex(0));

  lcd.setCursor(0, 1);
  lcd.print("Temp2(C)");
  lcd.setCursor(10, 1);
  lcd.print(sensors.getTempCByIndex(1));

  lcd.setCursor(0, 2);
  lcd.print("Temp1zadana(C)");
  lcd.setCursor(10, 2);
  
lcd.setCursor(0, 3);
  lcd.print("Temp1zadana(C)");
  lcd.setCursor(10, 3);

  delay(5000);
}

```

i lista błędów

C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino3\DS18B20_2szt_LCD_Arduino3.ino:6:1: error: expected ',' or ';' before 'const'
 const int zadCOminus = 24
 ^~~~~
C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino3\DS18B20_2szt_LCD_Arduino3.ino:10:1: error: 'BUTTON' does not name a type
 BUTTON zadCOminus = Button(BUTTON_PULLUP);
 ^~~~~~
C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino3\DS18B20_2szt_LCD_Arduino3.ino:11:1: error: 'BUTTON' does not name a type
 BUTTON zadCWUplus = Button(BUTTON_PULLUP);
 ^~~~~~
C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino3\DS18B20_2szt_LCD_Arduino3.ino:12:1: error: 'BUTTON' does not name a type
 BUTTON zadCWUminus = Button(BUTTON_PULLUP);
 ^~~~~~
Znaleziono wiele bibliotek w "LiquidCrystal.h"
  Wykorzystane: C:\Users\GREG\Documents\Arduino\libraries\LiquidCrystal
  Niewykorzystane: C:\Users\GREG\AppData\Local\Arduino15\libraries\LiquidCrystal
exit status 1

Compilation error: expected ',' or ';' before 'const'

Link do komentarza
Share on other sites

13 minut temu, koragreg napisał:

Compilation error: expected ',' or ';' before 'const'

Przepraszam... ale czy zainteresowałeś się może podstawami składni języka w którym piszesz i czy zadałeś sobie trudu przeczytania komunikatu błędu zanim wyskoczyłeś z tym na forum?

Po pierwsze: po każdej instrukcji czy deklaracji daje się średnik.

Po drugie: BUTTON, Button i button to nie to samo.

Propozycja: kurs Arduino na Forbocie albo jakikolwiek kurs C/C++. Wybacz, ale nikt nie będzie tu piętnasty raz wyjaśniał podstaw, które masz podane na talerzu. Po to są kursy - a na forum lecisz kiedy czegoś nie rozumiesz.

W bibliotece Button masz przykład, który pokazuje jak się tym posługiwać. Lepiej tam zajrzeć niż zgadywać...

  • Lubię! 2
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.