Arduino Polska Forum
Zmienna ujemna i dodatnia - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Zmienna ujemna i dodatnia (/watek-zmienna-ujemna-i-dodatnia)

Strony: 1 2 3


Zmienna ujemna i dodatnia - przemek - 11-08-2018

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.


RE: Zmienna ujemna i dodatnia - Robson Kerman - 11-08-2018

if (digitalRead(przycisk1)==LOW) ++zmienna;
if (digitalRead(przycisk2)==LOW) --zmienna;


RE: Zmienna ujemna i dodatnia - przemek - 11-08-2018

(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


RE: Zmienna ujemna i dodatnia - -adamek - 11-08-2018

int zmienna;
"Jeszcze mam jedno pytanie jak taką zmienną umieścić na ekranie" Ekranie czego terminala, wyświetlacza?


RE: Zmienna ujemna i dodatnia - przemek - 11-08-2018

(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 ''


RE: Zmienna ujemna i dodatnia - -adamek - 11-08-2018

To pokaż program , nie zadeklarowana


RE: Zmienna ujemna i dodatnia - przemek - 11-08-2018

(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);
}



RE: Zmienna ujemna i dodatnia - -adamek - 11-08-2018

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ę


RE: Zmienna ujemna i dodatnia - kaczakat - 11-08-2018

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-srodowisko-jak-zaczac-programowac-id936 .


RE: Zmienna ujemna i dodatnia - przemek - 11-08-2018

(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.