Napaka "stray '\304' in program"

Arduino je pojav za katerega bi težko rekli, da opisuje samo HW ali samo SW, zato mu tu namenajm poseben prostor.

Moderator: tilz0R

Napaka "stray '\304' in program"

OdgovorNapisal/-a Lovro7 » 29 Feb 2024, 01:10

Pozdravljeni,
izdelujem krmilno vezje za varilni aparat z Arduino nano mikrokontrolerjem, ki bo imelo več funkcili med drugim tudi PWM regulacijo hitrosti motorja.
Pri pisanju kode za PWM sem naletel na napako:

Arduino:1.8.19 (Windows Store 1.8.57.0) (Windows 10), Plošča:"Arduino Uno"
PWM_kontorla:5:5: error: stray '\304' in program

int čas; // Spremenljivka za čas (v mikrosekundah)

^

PWM_kontorla:5:6: error: stray '\215' in program

int čas; // Spremenljivka za čas (v mikrosekundah)

^

PWM_kontorla:17:3: error: stray '\304' in program

čas = 50; // Mikrosekunde (20,000 Hz)

^

PWM_kontorla:17:4: error: stray '\215' in program

čas = 50; // Mikrosekunde (20,000 Hz)

^

PWM_kontorla:19:13: error: stray '\304' in program

onTime = (čas * vrednost) / 1023; // Izračunaj čas vklopa glede na položaj potenciometra

^

PWM_kontorla:19:14: error: stray '\215' in program

onTime = (čas * vrednost) / 1023; // Izračunaj čas vklopa glede na položaj potenciometra

^

PWM_kontorla:20:13: error: stray '\304' in program

offTime = čas - onTime; // Izračunaj čas izklopa (skupen čas vklopa in izklopa je 50 μs)

^

PWM_kontorla:20:14: error: stray '\215' in program

offTime = čas - onTime; // Izračunaj čas izklopa (skupen čas vklopa in izklopa je 50 μs)

^

PWM_kontorla:21:32: error: stray '\304' in program

dutyCycle = (onTime * 100) / čas; // Izračunaj delovni cikel v odstotkih

^

PWM_kontorla:21:33: error: stray '\215' in program

dutyCycle = (onTime * 100) / čas; // Izračunaj delovni cikel v odstotkih

^

exit status 1

stray '\304' in program



To poročilo bi vsebovalo več podatkov ob uporabi
možnosti "Prikaži podroben opis med prevejanjem",
ki se nahaja v meniju Datoteka -> Nastavitve.


Na arduino forumu sem iskal kako rešiti ta problem vendar ni nič delovalo.
Ve kdo kaj bi bilo narobe?

koda:
Koda: Izberi vse
const int motorPin = 13;  // Pin, na katerem je priključen motor
const int potPin = A0;    // Pin, na katerem je priključen potenciometer

int vrednost;  // Spremenljivka za shranjevanje vrednosti potenciometra
int čas;       // Spremenljivka za čas (v mikrosekundah)
int onTime;    // Spremenljivka za čas vklopa motorja
int offTime;   // Spremenljivka za čas izklopa motorja
int dutyCycle; // Spremenljivka za delovni cikel motorja

void setup() {
  pinMode(motorPin, OUTPUT); // Nastavi pin motorja kot izhodni
  pinMode(potPin, INPUT);    // Nastavi pin potenciometra kot vhodni
  Serial.begin(9600);        // Začni serijsko komunikacijo s hitrostjo 9600 baud
}

void loop() {
  čas = 50;                     // Mikrosekunde (20,000 Hz)
  vrednost = analogRead(potPin);// Preberi vrednost potenciometra
  onTime = (čas * vrednost) / 1023; // Izračunaj čas vklopa glede na položaj potenciometra
  offTime = čas - onTime;      // Izračunaj čas izklopa (skupen čas vklopa in izklopa je 50 μs)
  dutyCycle = (onTime * 100) / čas; // Izračunaj delovni cikel v odstotkih

  digitalWrite(motorPin, HIGH);  // Vklopi motor
  delayMicroseconds(onTime);      // Drži motor vklopljen za določen čas
  digitalWrite(motorPin, LOW);   // Izklopi motor
  delayMicroseconds(offTime);     // Drži motor izklopljen za določen čas

  Serial.print("DUTY CYCLE: ");  // Izpiši "delovni cikel"
  Serial.print(dutyCycle);        // Izpiši vrednost v odstotkih
  Serial.println("%");            // Dodaj znamko za odstotke in preklopi v novo vrstico
  delay(100);                     // Počakaj 100 milisekund (ponovi vsakih 100 ms)
}
Vse je lahko žarnica, če je dosti toka. LER-light emitting resistor
Uporabniški avatar
Lovro7
 
Prispevkov: 24
Pridružen: 11 Feb 2024, 20:19
Zahvalil se je: 3 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 0

Re: Napaka "stray '\304' in program"

OdgovorNapisal/-a japina » 29 Feb 2024, 06:11

Namesto čas napiši cas. Uporabljaj ASCII znake za spremenljivke.
japina
 
Prispevkov: 373
Pridružen: 28 Jan 2015, 20:16
Kraj: Šentrupert na Dolenjskem
Zahvalil se je: 81 krat
Prejel zahvalo: 29 krat
Uporabnika povabil: aly
Število neizkoriščenih povabil: 5

Re: Napaka "stray '\304' in program"

OdgovorNapisal/-a Kroko » 29 Feb 2024, 08:53

Ne samo za spremenljivke ampak za vse. Drugače boš imel težave s kodnimi tabelami.
devenv_RUOb2yGKAC.png
devenv_RUOb2yGKAC.png (8.14 KiB) Videno 407 krat

Če sedaj to potrdim, pa bodo na linuxu problemi. Pa samo en č je v nekem komentarju.
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 5927
Pridružen: 14 Jan 2015, 11:12
Kraj: Ljubljana
Zahvalil se je: 759 krat
Prejel zahvalo: 2270 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Napaka "stray '\304' in program"

OdgovorNapisal/-a reber » 29 Feb 2024, 10:09

Se popolnoma strinjam, vse kar ni ASCII je tempirana bomba in velik potencial za težave (tudi v komentarjih).
Šumnikov nisem nikoli uporabljal za poimenovanje kar koli, tudi v poimenovanju datotek se strogo držim pravila brez šumnikov, brez presledkov, ... namesto presledkov dam podčrtaj oziroma še bolje, tudi brez tega, če je več besed v imenu dam velike začetnice.
Pisanje programa pa vedno v angleščini, sploh nikoli ne uporabljam slovenščine na računalniku, windows, programi, vse v angleškem jeziku, tudi brskalnik. Slovenščino uporabljam za pisanje na slovenski forum.
Sinova sta oba programerja... "kakšna slovenščina" pravita in prav imata, no, to sem jima že jaz povedal, ko sta s tem začela.

Ko gledam tole kodo, se iz nje nič kaj dosti ne znajdem, polno slovenščine je notri, zgleda imaš tudi arduino IDE slovenski?

Rad imam slovenski jezik, ampak pri programiranju po mojem mnenju nima mesta.
Sporočila sprejemam na e-mail objavljen na www.reber.si
Uporabniški avatar
reber
 
Prispevkov: 2056
Pridružen: 17 Mar 2015, 20:30
Kraj: Bled
Zahvalil se je: 222 krat
Prejel zahvalo: 739 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 255

Re: Napaka "stray '\304' in program"

OdgovorNapisal/-a Lovro7 » 29 Feb 2024, 20:54

Hvala, sem ugotovil da je težava v imenu čas. Nekaj slovenskih imen sem uporabil zato, ker je to bila samo poskusna koda, ampak potem ko sem testiral stvar sem ugotovil naslednje:
Hitrost preklapljanje je 20kHz, zato je čas zelo občutljiv.
To deluje samo v primiru da so 4 vrstice kode v void loop:
Koda: Izberi vse
digitalWritr(motor, LOW);
delayMicroseconds(offTime):
digitalWrite(motor, HIGH);
delayMicroseconds(onTime);


Če prav razumem je to zaradi tega, ker procesor procesira vsak ukaz zaporedno in tako ne gre takoj na začetek ampak se ustavlja pri dodatnih vrsticah. Ko sem signal gledal z osciloskopom sem to videl. Takšen program ne omogoča niti izračuna DELAY časa. Zato bom rešil ta problem z 555 timerjem, ki bo imel svoj potenciometer za regulacijo delavnega cikla. Timer bo neprestano generiral pulze, ko bo arduino poslal signal bo tranzistor spustil te pulze do drugega tranzistorja, na katerega bo priklopljen motor(to sem žd danes testiral in deluje)
Vse je lahko žarnica, če je dosti toka. LER-light emitting resistor
Uporabniški avatar
Lovro7
 
Prispevkov: 24
Pridružen: 11 Feb 2024, 20:19
Zahvalil se je: 3 krat
Prejel zahvalo: 2 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 0

Re: Napaka "stray '\304' in program"

OdgovorNapisal/-a Kroko » 29 Feb 2024, 21:03

Pa še nekaj napotkov. Deljejenja v arduinu ne smeš uporabljati. Namesto / 1023 uporabi >> 10. Poglej si mojo šolo programiranja kjer se naučimo, kako ne uporabljati delay pa bo vse delalo.
Lahko uporabiš tudi harverski PWM.
https://docs.arduino.cc/tutorials/gener ... duino-pwm/
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 5927
Pridružen: 14 Jan 2015, 11:12
Kraj: Ljubljana
Zahvalil se je: 759 krat
Prejel zahvalo: 2270 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255


Vrni se na Arduino

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost