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