expected constructor

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
gaara
Příspěvky: 5
Registrován: 07 čer 2020, 15:20
Reputation: 0

expected constructor

Příspěvek od gaara » 07 čer 2020, 15:24

Dobrý den,

dělám program pro regulaci jasu páté led (s dalšími čtyřmi se budou dít jiné věci)
a hlásí mi to chybu, prosím o pomoc.

Děkuji
Přílohy
103372639_689523008289964_1950308763345086206_n.png

RomanB
Příspěvky: 90
Registrován: 04 zář 2017, 14:28
Reputation: 0
Bydliště: Havířov

Re: expected constructor

Příspěvek od RomanB » 07 čer 2020, 15:56

Problém je o 2 řádky níže.
int led= ?;

gaara
Příspěvky: 5
Registrován: 07 čer 2020, 15:20
Reputation: 0

Re: expected constructor

Příspěvek od gaara » 07 čer 2020, 18:21

Opravila jsem, nepomohlo :oops:
Přílohy
102830474_253416152651931_5697436061649347399_n.png

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: expected constructor

Příspěvek od Hanz » 07 čer 2020, 18:54

vkládej kod pomocí </> , nemusí se přepisovat ,jednoduše se překopíruje do IDE, kde se zkompiluje atd. ;)

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: expected constructor

Příspěvek od gilhad » 07 čer 2020, 19:21

Řekl bych, že ten označený řádek pokládáš (mylně) za příkaz k nastavení nějakého modu pinu nanějakou hodnotu (a ty nad ním taky).

Ovšem protože ten řádek není v nějaké funkci (kde by to příkaz bát mohl), ale zcela mimo funkce, tak se jedná o nějakou deklaraci, (ke které chybí definice a navíc je nejspíš syntakticky nesprávná), tedy o něco zcela jiného, než co by sis přála. (Ano ještě by mohl být při trochu jiném zápisu inicializační hodnotou nějaké proměnné či konstanty, eventuálně tělem makra, ale ani to nejspíš není něco, co by sis přála. - problém je, že překladač nebere ohled na to, co by sis přála, ale dělá doslovně co mu napíšeš a pokud to proveditelné není, tak to hlásí jako chybu)

Pokud chceš nastavit mod nějakého pinu jednou, při startu, tak to volej z funkce setup, pokud ho chceš nastavit při kažbém průchodu, tak z funkce loop. Pokud chceš mít ta nastavení bokem, tak je měj v nějaké funkci, kterou pak zavoláš z vhodného místa.

gaara
Příspěvky: 5
Registrován: 07 čer 2020, 15:20
Reputation: 0

Re: expected constructor

Příspěvek od gaara » 08 čer 2020, 11:00

<//tady je zapnutí/vypnutí ledek!
const int LED1 = 10; // Přiřadí konstantu LEDKA číslu 2
const int LED2 = 10;
const int LED3 = 10;
const int LED4 = 10;
int LED5 = 10;
int INPRIKAZ;


//tady je regulace jasu!
int led5 = 6; // pin, ke kterému je LED připojena
int brightness = 10; // jas LED

void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

}



void loop() {

//zvýšení snížení jasu páté led!
// Sleduje, zda-li přicházejí na sérivoé lince nějaká data:
if (Serial.available() > 0) {
// Pokud přicházení na sériové lince data, uloží je do proměnné INPRIKAZ:
INPRIKAZ = Serial.read();

if (INPRIKAZ == '+') {
digitalWrite(LED5, brightness +5);

}

else (INPRIKAZ == '-'); {
digitalWrite(LED5, brightness -5);

}
}
}
>


Tak jo, teď už mi to žádné chyby nehlásí, nicméně teď už to nefunguje :lol:
Myslím že problém bude s tím pinem jak bylo řečeno. Já prostě chtěla nastavit čísla ledek k číslům pinu, a poté upravovat jas páté led (na pinu 6)

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: expected constructor

Příspěvek od AstroMiK » 08 čer 2020, 11:24

V názvech konstant a proměnných záleží na velikosti písmen.
Takže proměnná 'LED5' je něco úplně jiného, než 'led5'.

Hanz
Příspěvky: 262
Registrován: 25 dub 2019, 23:52
Reputation: 0

Re: expected constructor

Příspěvek od Hanz » 08 čer 2020, 11:30

Myslím že problém bude s tím pinem jak bylo řečeno. Já prostě chtěla nastavit čísla ledek k číslům pinu, a poté upravovat jas páté led (na pinu 6)
čísla pinu máš pro všechny LED stejné tj. 10
mělo by to vypadat nějak takto :

Kód: Vybrat vše

 int LED1 = 2; // číslo pinu 1 led 
 int LED2 = 3; // číslo pinu 2 led 
 int LED3 = 4; // číslo pinu 3 led 
 int LED4 = 5; // číslo pinu 4 led 
 int LED5 = 6; // číslo pinu 5 led 
a tady je jak vypadá regulace ( úprava jasu ) jedné ledky
https://arduino.cz/arduino-zaklady-6-zhasinani/
mělo by ti to napovědět

gaara
Příspěvky: 5
Registrován: 07 čer 2020, 15:20
Reputation: 0

Re: expected constructor

Příspěvek od gaara » 08 čer 2020, 12:03

//tady je zapnutí/vypnutí ledek!
int INPRIKAZ;


//tady je regulace jasu!
int LED5 = 6; // pin, ke kterému je LED připojena
int brightness = 0; // jas LED
int fadeAmount = 20;

void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}

void loop() {

//zvýšení snížení jasu páté led!
if (Serial.available() > 0) {
// Pokud přicházení na sériové lince data, uloží je do proměnné INPRIKAZ:
INPRIKAZ = Serial.read();

if (INPRIKAZ == '+') {
analogWrite(6, brightness+5);

}

if (INPRIKAZ == '-'); {
analogWrite(6, brightness-5);

}
}
}



Momentálně je tedy problém s tím, že když do seriového monitoru napíšu "+", ledka se zapne, ale když to napíšu znova, nepřidá na jasu.
"-" nefunguje vůbec

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: expected constructor

Příspěvek od AstroMiK » 08 čer 2020, 12:28

Pro opakované přidávání a ubírání by bylo nutné měnit samotnou proměnnou 'brightness'

Takže ty podmínky by vypadaly nějak takto:

Kód: Vybrat vše

if (INPRIKAZ == '+')
  {
    brightness= brightness + 5;
    analogWrite(6, brightness);
  } 
Po překročení minima nebo maxima to udělá něco "nečekaného" (bylo by pak třeba ještě testovat překročení krajních mezí)

Mimochodem, asi bych ještě změnil typ té proměnné 'INPRIKAZ' z původního int na char.
Nemám to teď na čem vyzkoušet, ale možná by s tím mohly být problémy.

A ještě jedna drobnost - člověk vnímá jas logaritmicky, takže bude vidět hodně velká změna jasu LED mezi brightness 5 a 10, ale téměř neznatelná mezi brightness 250 a 255.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů