expected constructor
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.
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.
expected constructor
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
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
Re: expected constructor
Problém je o 2 řádky níže.
int led= ?;
int led= ?;
Re: expected constructor
vkládej kod pomocí </> , nemusí se přepisovat ,jednoduše se překopíruje do IDE, kde se zkompiluje atd.
Re: expected constructor
Ř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.
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.
Re: expected constructor
<//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
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)
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
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)
Re: expected constructor
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'.
Takže proměnná 'LED5' je něco úplně jiného, než 'led5'.
Re: expected constructor
čísla pinu máš pro všechny LED stejné tj. 10Myslí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)
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
https://arduino.cz/arduino-zaklady-6-zhasinani/
mělo by ti to napovědět
Re: expected constructor
//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
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
Re: expected constructor
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:
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.
Takže ty podmínky by vypadaly nějak takto:
Kód: Vybrat vše
if (INPRIKAZ == '+')
{
brightness= brightness + 5;
analogWrite(6, brightness);
}
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.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů