Skocz do zawartości

Problem z kompilacją programu w środowisku Arduino


Pat93

Pomocna odpowiedź

Witam mam problem z kompilacją gdyż wyskakuje mi taki błąd i nie wiem czemu tak się dzieje. Pomoże ktoś ?

#include <Ultrasonic.h>
 
// definicje dla HCSR04
 #define TRIGGER_PIN 7
 #define ECHO_PIN 4
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
 
// silnik lewy
 const int kierunekLewy=12;
 const int hamulecLewy=9;
 const int predkoscLewy=3;
 
//silnik prawy
 const int kierunekPrawy=13;
 const int hamulecPrawy=8;
 const int predkoscPrawy=11;
 
//ustawienia
 void setup()
 {
 Serial.begin(9600);
 pinMode(kierunekLewy,OUTPUT);
 pinMode(kierunekPrawy,OUTPUT);
 pinMode(hamulecLewy,OUTPUT);
 pinMode(hamulecPrawy,OUTPUT);
 pinMode(predkoscLewy,OUTPUT);
 pinMode(predkoscPrawy,OUTPUT);
 }
 
//petla glowna programu
 void loop()
 {
 float cmMsec;
 long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

 
doPrzodu();
 delay(50);
 
if (cmMsec<=30)
 {
 doTylu();
 delay(500);
 }
 }
 
void doPrzodu()
 {
 analogWrite(predkoscLewy,100);
 analogWrite(predkoscPrawy,105);
//Lewy do przodu
 digitalWrite(kierunekLewy,HIGH);
 digitalWrite(hamulecLewy,LOW);
//Prawy do przodu
 digitalWrite(kierunekPrawy,HIGH);
 digitalWrite(hamulecPrawy,LOW);
 }
 
void doTylu()
 {
 analogWrite(predkoscLewy,200);
 analogWrite(predkoscPrawy,0);
//Lewy do przodu
 digitalWrite(kierunekLewy,LOW);
 digitalWrite(hamulecLewy,LOW);
//Prawy stop
 digitalWrite(kierunekPrawy,HIGH);
 digitalWrite(hamulecPrawy,HIGH);
 }


 

program.png

Edytowano przez Sabre
Link do komentarza
Share on other sites

I tylko tyle?

Masz tam na dole takie fajne czarne okieneczko, w tej chwili jest ściśnięte do minimum, chwyć myszkę i je rozciągnij, popatrz czy coś na czerwono przypadkiem nie pisze.

Poza tym przed kompilacją otwórz preferencje i zaznacz wyświetlanie wszystkich błędów kompilatora.

Jak to zrobisz, skompiluj jeszcze raz, jeśli coś się wyświetliło to skopiuj i wklej na forum (nie rób screenshota tylko wklej jako tekst, najlepiej poprzez funkcję "wstaw kod").

Dopiero wtedy ktoś będzie mógł Ci pomóc.

@Treker jesteś tam może? Nie można by jakoś przykleić takiej informacji do działu "programowanie" (o zamieszczaniu błędów z Arduino IDE)? Bo ja już chyba piąty raz tłumaczę jak to się robi...

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











In file included from C:\Users\Dell\Documents\Arduino\sketch_jun22a\sketch_jun22a.ino:1:0:

C:\Users\Dell\Documents\Arduino\libraries\Ultrasonic-3.0.0\src/Ultrasonic.h: In function 'void loop()':

C:\Users\Dell\Documents\Arduino\libraries\Ultrasonic-3.0.0\src/Ultrasonic.h:43:18: error: 'unsigned int Ultrasonic::timing()' is private

     unsigned int timing();

                  ^

sketch_jun22a:34:36: error: within this context

  long microsec = ultrasonic.timing();

                                    ^

sketch_jun22a:35:21: error: 'class Ultrasonic' has no member named 'convert'

 cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

                     ^

In file included from C:\Users\Dell\Documents\Arduino\sketch_jun22a\sketch_jun22a.ino:1:0:

C:\Users\Dell\Documents\Arduino\libraries\Ultrasonic-3.0.0\src/Ultrasonic.h:26:12: error: expected unqualified-id before numeric constant

 #define CM 28

            ^

C:\Users\Dell\Documents\Arduino\sketch_jun22a\sketch_jun22a.ino:35:51: note: in expansion of macro 'CM'

 cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

                                                   ^

exit status 1
within this context

takie cos sie wysweitla

Link do komentarza
Share on other sites

No to teraz dwa pytania:

Dlaczego chcesz użyć metody timing i nie dociera do Ciebie, że to prywatna metoda i nie jest dostępna w aplikacji?

Skąd wziąłeś informacje o tym, że istnieje jakaś metoda "convert"?

A przecież jak wół wyświetla się informacja, że:
 

error: 'unsigned int Ultrasonic::timing()' is private

error: 'class Ultrasonic' has no member named 'convert'

Czego w tych dwóch zdaniach nie rozumiesz?

 

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.