Skocz do zawartości

Problem w kodzie programu, kalkulator arduino


Pomocna odpowiedź

Napisano

mam błąd w kodzie programu korzystałem z tego poradnika

https://majsterkowo.pl/prosty-kalkulator-na-arduino/?fbclid=IwAR01EmbPY_SzcygVfx4Uwe8QZZNiLJHvLFsVP0oVFmFDvRy03DU4bZiRyMc

jak wpisze ten kod to mam taki błąd 

kalkulator:8:50: error: 'POSITIVE' was not declared in this scope
exit status 1
'POSITIVE' was not declared in this scope

z góry dziękuje 

 

@Marcel535 witam na forum 🙂 

14 godzin temu, Marcel535 napisał:

kalkulator:8:50: error: 'POSITIVE' was not declared in this scope

Ten błąd oznacza, że jest jakaś zmienna (najpewniej która jest stałą lub typem wyliczeniowym), która nie jest widoczna w lini gdzie chcesz się do niej odwołać. Więc pewnie nie zaincludowałeś jakiejś biblioteki.

Najlepiej wrzuć tutaj kod jaki testujesz.

(edytowany)

to jest ten kod

//Dołączone biblioteki 
#include <Wire.h>                           //Biblioteka I2C
#include <LiquidCrystal_I2C.h>              //Biblioteka wyświetlacza
#include <Keypad.h>                         //Biblioteka klawiatury
 
//Ustawienie wyświelacza
LiquidCrystal_I2C lcd(0x27, 2, 0, 4, 5, 6, 7, 3, POSITIVE);
 
//Ustawnienie klawiatury
const byte ROWS = 4;                         // Ilość wierszy klawiatury
const byte COLS = 4;                         // Ilość kolumn klawiatury
 
byte rowPins[ROWS] = {13, 12, 11, 10};       //numery pinów w arduino dla wierszy
byte colPins[COLS] = {9, 8, 7, 6};           //numery pinów w arduino dla kolumn
 
//Podpisanie klawiszy
char keys[ROWS][COLS] = {
  {'A','#','0','*'},
  {'B','3','2','1'},
  {'C','6','5','4'},
  {'D','9','8','7'}
};
 
//Inicjalizacja klawiatury
Keypad klawiatura = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); 
 
 
 
 
void setup() {
  
  Serial.begin(9600);             //połączenie z monitorem portu szeregowego
 
  lcd.begin(16, 2);               //deklaracja typu wyświetlacza
  lcd.backlight();                // włączenie podwietlenia 
  lcd.setCursor(0,0);             //ustawienie kursora w kolumnie 0, lini 0 
  lcd.print("KALKULATOR");        //Wyświetlanie tekstu
  lcd.setCursor(0, 1);            //ustawienie kursora w kolumnie 0, lini 1
  lcd.print("MAJSTERKOWO :)");    //Wyświetlanie tekstu  
  delay(2000);                    //Odczekanie 
  lcd.clear();                    //Wyczyszczenie ekranu
  
}
 
 
//Zmienne do przechowywania wartości 
long Numer1,Numer2,Numer;             
char klawisz,akcja;               
boolean wynik = false;            
 
 
 
 
void loop() {
  
klawisz = klawiatura.getKey();        //pobranie wartości i przypisanie do zmiennej klawisz
if (klawisz!=NO_KEY)                  //jeśli nie ma wartości wzmiennej klawisz
WykryjKlawisz();                      // wykonaj "WykryjKlawisz"
if (wynik==true)                      //jeśli wartość wynik jest prawdziwa
Przelicz();                           // wykonaj "Przelicz"
Wyswietl();                           // wykonaj "Wyswietl"
 
}
 
 
//Wykryj klawisz
void WykryjKlawisz()  
{ 
    lcd.clear();                              //wyczyszczenie wyswietlacza
    
    if (klawisz=='*')                         //jeżeli wciśnięty klawisz C
    {
    Serial.println ("klawisz c");             //w monitorze portu wyświetl "klawisz c"
    Numer=Numer1=Numer2=0; wynik=false;       //Przypisz 0 do zmiennych Numer, Numer1, Numer2
    }  
    
    if (klawisz == '1')                       //jeżeli klawisz 1 wciśnięty
    {
    Serial.println ("klawisz 1");             // w konsoli wyświetl klawisz 1
    if (Numer==0)                             //jeżeli zmienna jest pusta
    Numer=1;                                  //zmień wartość zmiennej na 1
    else                                      // jeżeli w zmiennej jest już jakaś liczba/cyfra
    Numer = (Numer*10) + 1;                   //wpisz 1 za tą liczbą/cyfrą
    }
 
    if (klawisz == '2') 
    {
    Serial.println ("klawisz 2"); 
    if (Numer==0)
    Numer=2;
    else
    Numer = (Numer*10) + 2; 
    }
 
    if (klawisz == '3')
    {
    Serial.println ("klawisz 3"); 
    if (klawisz==0)
    Numer=3;
    else
    Numer = (Numer*10) + 3; 
    }
    
    if (klawisz == '4') 
    {
    Serial.println ("klawisz 4"); 
    if (Numer==0) 
    Numer=4; 
    else  
    Numer = (Numer*10) + 4; 
    }
 
    if (klawisz == '5')
    {
    Serial.println ("klawisz 5"); 
    if (Numer==0)
    Numer=5;
    else
    Numer = (Numer*10) + 5; 
    }
 
    if (klawisz == '6')
    {
    Serial.println ("klawisz 6"); 
    if (Numer==0)
    Numer=6;
    else
    Numer = (Numer*10) + 6; 
    }
    
    if (klawisz == '7') 
    {
    Serial.println ("klawisz 7");
    if (Numer==0) 
    Numer=7;  
    else  
    Numer = (Numer*10) + 7; 
    } 
 
    if (klawisz == '8')
    {
    Serial.println ("klawisz 8"); 
    if (Numer==0)
    Numer=8;
    else
    Numer = (Numer*10) + 8; 
    }   
 
    if (klawisz == '9')
    {
    Serial.println ("klawisz 9");
    if (Numer==0)
    Numer=9;
    else
    Numer = (Numer*10) + 9; 
    } 
  
    if (klawisz == '0')
    {
    Serial.println ("klawisz 0"); 
    if (Numer==0)
    Numer=0;
    else
    Numer = (Numer*10) + 0; 
    }
                      
    if (klawisz == '#')
    {
    Serial.println ("klawisz ="); 
    Numer2=Numer;
    wynik = true;
    }
    
    if (klawisz == 'A' || klawisz == 'B' || klawisz == 'C' || klawisz == 'D') //jeżeli wykryty zostanie klwaisz a, b, c lub d
    {
    Numer1 = Numer;    
    Numer =0;
    if (klawisz == 'A')
    {Serial.println ("dodawanie"); akcja = '+';}
     if (klawisz == 'B')
    {Serial.println ("odejmowanie"); akcja = '-'; }
     if (klawisz == 'C')
    {Serial.println ("mnozenie"); akcja = '*';}
     if (klawisz == 'D')
    {Serial.println ("dzielenie"); akcja = '/';}  
    delay(100);
    }
    
  
}
 
 
//Przelicz
void Przelicz()
{
  if (akcja=='+')
    Numer = Numer1+Numer2;
  if (akcja=='-')
    Numer = Numer1-Numer2;
  if (akcja=='*')
    Numer = Numer1*Numer2;
  if (akcja=='/')
    Numer = Numer1/Numer2;
  if (akcja=='/' and Numer2==0)
    dzieleniePrzezZero();  
}
 
 
void dzieleniePrzezZero(){
  Numer1=Numer2=Numer=0;
  wynik=false;
  lcd.setCursor(4,1);
  lcd.print("blad");
}
 
 
void Wyswietl()
{
  lcd.setCursor(0, 0);   
  lcd.print(Numer1);
  lcd.print(akcja); 
  lcd.print(Numer2); 
  
  if (wynik==true){
  lcd.print(" =");
  lcd.print(Numer);
   
  }
  
  lcd.setCursor(0, 1);   
  lcd.print(Numer);  
  
}

 

Edytowano przez Marcel535
14 minut temu, farmaceuta napisał:

Masz tam taka opcje..."wstaw kod programu" wtedy ladnie pokazuje kod i wszystko widac...to nie zlosliwosc tylko nikomu nie bedzie sie chcialo tego teraz sprawdzac

pierwszy raz napisałem coś na forum nie wiedziałem o tym

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