Arduino Polska Forum

Pełna wersja: Zmienna ujemna i dodatnia
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3
Witam.
Mam pytanie czy mógłby mi ktoś podpowiedzieć jak zrobić zmienną którą da się zwiększać i zmniejszać dwoma przyciskami? Będę bardo wdzięczny.
if (digitalRead(przycisk1)==LOW) ++zmienna;
if (digitalRead(przycisk2)==LOW) --zmienna;
(11-08-2018, 21:32)Robson Kerman napisał(a): [ -> ]if (digitalRead(przycisk1)==LOW) ++zmienna;
if (digitalRead(przycisk2)==LOW) --zmienna;

mógłbym jeszcze prosić o kod na stożenie takiej zmiennej? Gdyż mam taki sam, ale nie idzie mi stworzyć odpowiedniej zmiennej.Jeszcze mam jedno pytanie jak taką zmienną umieścić na ekranie
int zmienna;
"Jeszcze mam jedno pytanie jak taką zmienną umieścić na ekranie" Ekranie czego terminala, wyświetlacza?
(11-08-2018, 21:56)-adamek napisał(a): [ -> ]int  zmienna;
"Jeszcze mam jedno pytanie jak taką zmienną umieścić na ekranie" Ekranie czego terminala, wyświetlacza?

Chodzi mi o wyświetlacz/ekranik 16x2. Wiem że int to zmienna ale w programie wyświetla mi się ,, zmienna was not declared in this scope ''
To pokaż program , nie zadeklarowana
(11-08-2018, 22:06)-adamek napisał(a): [ -> ]To pokaż program , nie zadeklarowana

program jest mocno pokręcony i nie dokończony ale spoko
Kod:
    const int przyciskD1 = A5;
    const int przyciskD2 = A3;
    const int przyciskA1 = A4;
    const int przyciskA2 = A2;
byte gora[8] = {
  0b00100,
  0b01110,
  0b11111,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00100
};

byte dol[8] = {
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b11111,
  0b01110,
  0b00100
};
        #include <LiquidCrystal.h>
        #define ADCPIN 1
        #define ADCPIN2 0
    LiquidCrystal lcd(12,11,5,4,3,2);
  double temperature = 0;            //Initialize variable to hold temperature
  double temperatureg = 0;
void setup()
{
 analogReference(INTERNAL);
  lcd.createChar(1, dol);
  lcd.createChar(0, gora);
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.write(byte(0));
  lcd.setCursor(1,0);
  lcd.print("TEMP");
  lcd.setCursor(0,1);
  lcd.write((byte)1);
  lcd.print("TEMP");
pinMode(przyciskD1,INPUT);
pinMode(przyciskD2,INPUT);
pinMode(przyciskA1,INPUT);
pinMode(przyciskA2,INPUT);
}
void loop()
{
for(int gu = 0 ; gu < 200; ){}
for(int du = 0 ; du < 200; ){}
if(analogRead(przyciskD1)HIGH)
{ ++du;};
if(analogRead(przyciskD2)HIGH)
{ ++gu;};
if(analogRead(przyciskA1)HIGH)
{ --du;};
if(analogRead(przyciskA2)HIGH)
{  --gu;} ;
if(temperature<du)
{digitalWrite(6,LOW)}
if(temperatyreg>gu)
{digitalWrite(6,HIGH)}
  temperature = analogRead(ADCPIN);
  temperatureg = analogRead(ADCPIN2);
  //Calculate Temperature from ADC value
  //Note that we use mV for Vref
  //Vin = ADCresult*Vref/(2^10)
  //Temp(C) = Vin/(10) = ADCresult*Vref/(1024*10)
  temperature = temperature*1100/(1024*10);
  temperatureg = temperature*1100/(1024*10);
  lcd.setCursor(6,0);
  lcd.print(temperatureg);
  lcd.print(int gu );
  lcd.setCursor(6,1);
  lcd.print(temperature);
  delay(1000);
}
Kod:
   const int przyciskD1 = A5;
   const int przyciskD2 = A3;
   const int przyciskA1 = A4;
   const int przyciskA2 = A2;
byte gora[8] = {
 0b00100,
 0b01110,
 0b11111,
 0b00100,
 0b00100,
 0b00100,
 0b00100,
 0b00100
};

byte dol[8] = {
 0b00100,
 0b00100,
 0b00100,
 0b00100,
 0b00100,
 0b11111,
 0b01110,
 0b00100
};
       #include <LiquidCrystal.h>
       #define ADCPIN 1
       #define ADCPIN2 0
   LiquidCrystal lcd(12,11,5,4,3,2);
 double temperature = 0;            //Initialize variable to hold temperature
 double temperatureg = 0;
 int du,gu;
void setup()
{
analogReference(INTERNAL);
 lcd.createChar(1, dol);
 lcd.createChar(0, gora);
 lcd.begin(16, 2);
 lcd.setCursor(0,0);
 lcd.write(byte(0));
 lcd.setCursor(1,0);
 lcd.print("TEMP");
 lcd.setCursor(0,1);
 lcd.write((byte)1);
 lcd.print("TEMP");
pinMode(przyciskD1,INPUT);
pinMode(przyciskD2,INPUT);
pinMode(przyciskA1,INPUT);
pinMode(przyciskA2,INPUT);
}
void loop()
{
for(int gu = 0 ; gu < 200; ){}
for(int du = 0 ; du < 200; ){}
if(analogRead(przyciskD1)==HIGH)
{ ++du;};
if(analogRead(przyciskD2)==HIGH)
{ ++gu;};
if(analogRead(przyciskA1)==HIGH)
{ --du;};
if(analogRead(przyciskA2)==HIGH)
{  --gu;} ;
if(temperature<du)
{digitalWrite(6,LOW);}
if(temperatureg>gu)
{digitalWrite(6,HIGH);}
 temperature = analogRead(ADCPIN);
 temperatureg = analogRead(ADCPIN2);
 //Calculate Temperature from ADC value
 //Note that we use mV for Vref
 //Vin = ADCresult*Vref/(2^10)
 //Temp(C) = Vin/(10) = ADCresult*Vref/(1024*10)
 temperature = temperature*1100/(1024*10);
 temperatureg = temperature*1100/(1024*10);
 lcd.setCursor(6,0);
 lcd.print(temperatureg);
 lcd.print( gu );
 lcd.setCursor(6,1);
 lcd.print(temperature);
 delay(1000);
}
Nie wnikając w działanie kompiluje się
Takie podejście zaprowadzi Cię na manowce, ilość posiadanych informacji zawsze jest mniejsza niż możliwa do posiadania, ale trzeba to trzymać na przyzwoitym poziomie. Wato poczytać kursy, to forum bo w wielu są linki do książek o C/C++ zupełnie darmowych, tak jak np. ten kurs: https://forbot.pl/blog/kurs-arduino-srod...owac-id936 .
(11-08-2018, 22:24)-adamek napisał(a): [ -> ]   const int przyciskD1 = A5;
    const int przyciskD2 = A3;
    const int przyciskA1 = A4;
    const int przyciskA2 = A2;
byte gora[8] = {
  0b00100,
  0b01110,
  0b11111,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00100
};

byte dol[8] = {
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b11111,
  0b01110,
  0b00100
};
int up,down;
        #include <LiquidCrystal.h>
        #define ADCPIN 1
        #define ADCPIN2 0
    LiquidCrystal lcd(12,11,5,4,3,2);
  double temperature = 0;            
  double temperatureg = 0;
void setup()
{
 analogReference(INTERNAL);
  lcd.createChar(1, dol);
  lcd.createChar(0, gora);
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.write(byte(0));
  lcd.setCursor(1,0);
  lcd.print("TEMP");
  lcd.setCursor(0,1);
  lcd.write((byte)1);
  lcd.print("TEMP");
pinMode(przyciskD1,INPUT);
pinMode(przyciskD2,INPUT);
pinMode(przyciskA1,INPUT);
pinMode(przyciskA2,INPUT);
}
void loop()
{
for(int up = 0 ; up < 200; ){}
for(int down = 0 ; down < 200; ){}
if(digitalRead(przyciskD1)HIGH)
{ ++down;};
if(digitalRead(przyciskD2)HIGH)
{ ++up;};
if(digitalRead(przyciskA1)HIGH)
{ --down;};
if(digitalRead(przyciskA2)HIGH)
{  --up;} ;
if(temperature<down)
{digitalWrite(6,LOW);
}
if(temperatureg>up);
{digitalWrite(6,HIGH);
}
  temperature = analogRead(ADCPIN);
  temperatureg = analogRead(ADCPIN2);
  temperature = temperature*1100/(1024*10);
  temperatureg = temperature*1100/(1024*10);
  lcd.setCursor(6,0);
  lcd.print(temperatureg);
  lcd.print(up);
  lcd.setCursor(6,1);
  lcd.print(temperature);
  lcd.print(down);
  delay(1000);
}
oto poprawny kod.Macie może pojęcie dlaczego wyskakuje mi błąd kompilacji? 
ps. jest poprawiony na bardziej zrozumiały.
Stron: 1 2 3