Skocz do zawartości

Problem w kodzie programu, kalkulator arduino


Marcel535

Pomocna odpowiedź

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 

 

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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

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

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.