cześć , postanowiłem że zrobię sobie mały projekt z wyświetlaczem siedmio-segmentowym. po długiej walce z pinami (ponieważ nie zapisałem która dioda jest podłączona do jakiego pinu) nareszcie wszystko w miarę poukładałem aby wszystko było ładne , jasne i wyraźne. mogłem rozpocząć przyjemną pracę . na razie utworzyłem tylko trzy liczby , tak dla testu. podczas kompilacji wystąpił błąd , nie mam pojęcia o co może chodzić , wszystkie funkcje są podobne i działają (to znaczy kompilują się) a ta nie(chodzi o trzy(); ) . a function-definition is not allowed here before '{' token , tak wygląda błąd. zastanawia mnie czy to coś z kompilatorem , że myli się czy coś , czy to ja coś zrobiłem źle i tego nie dostrzegam? z góry dziękuję wszystkim którzy pomogą :)
mój kod:
void jeden();
void dwa();
void trzy();
void cztery();
void piec();
void szesc();
void siedem();
void osiem();
void dziewiec();
void zero();
void wyczysc();
String dane;
bool dpstate;
int a = 6, b = 7 , c = 10 , d = 12 , e = 13 , f = 8 , g = 9 , dp = 11;
void setup() {
for(int i = 13; i >= 6; i--){
pinMode(i,OUTPUT);
}
pinMode(5,INPUT);
Serial.begin(1200);
}
void loop() {
if(Serial.available() > 0){ // sprawdza czy sa dostepne jakies dane
dane = Serial.readStringUntil("\n"); // wczytuje dane do typu danych string
if(dane == "1\n"){ jeden(); }
else if(dane == "2\n"){ dwa(); }
else if(dane == "3\n"){ trzy(); }
else if(dane == "dp\n"){
if(dpstate == false){
digitalWrite(dp,HIGH);
dpstate = true;
}else if(dpstate == true){
digitalWrite(dp,LOW);
dpstate = false;
}
}
else{ Serial.println("nieznana komenda");
}
}
void wyczysc(){
for(int i = 13; i >= 6; i--){
digitalWrite(i,LOW);
}
}
void jeden(){
wyczysc();
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
}
void dwa(){
wyczysc();
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(e,HIGH);
digitalWrite(d,HIGH);
}
void trzy(){
wyczysc();
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
}
oraz jeśli chcesz , możesz go wykorzystać , tylko pozmieniaj w int a , b , c... na piny które podłączyłeś