PDA

Επιστροφή στο Forum : Προβλημα με το if/else στο Arduino



furtune
02-02-11, 01:13
Γεια σας μολις σημερα παρελαβα την πλακετα προγραμματισμου Arduino Duemillanove. Ο compiler ειναι κατεβασμενος απο την σελιδα του Arduino.Ειμαι αρχαριος σ'αυτα.Εφτιαξα το εξης απλο προγραμματακι:
// Example 01 : Blinkin led
#define LED 10
int i=0;
void setup()
{
pinMode(LED,OUTPUT);
}
void loop(){
for(i=0;i<10;i++){
analogWrite(LED,i);
delay(1000);
}
if(i=100){
for(i=255;i>0;i--){
analogWrite(LED,i);
delay(10);
}
else {
digitalWrite(LED,HIGH);
}
}
}
αλλα οταν βαζω τις εντολες if else και παω να κανω compile
μου βγαζει αυτα μηνυματα:

sketch_feb02a.cpp: In function 'void loop()':
sketch_feb02a:17: error: expected `}' before 'else'
sketch_feb02a.cpp: At global scope:
sketch_feb02a:21: error: expected declaration before '}' token.

Τα βγάζω και κανει compile μιαχαρα.Ξερει κανενας κατι που δεν ξερω?

herctrap
02-02-11, 01:22
πρεπει να κλεισεις το if και μετα να ανοιξεις το else

επισης οταν γραφεις

if(i=100)

λες το i να γινει 100

για να πεις

αν το i ειναι ισο με 100

πρεπει να γραψεις

if(i==100)

οποτε καταληγεις σε αυτο

-------------------



// Example 01 : Blinkin led
#define LED 10
int i=0;
void setup()
{
pinMode(LED,OUTPUT);
}

void loop(){
for(i=0;i<10;i++){
analogWrite(LED,i);
delay(1000);
}
if(i==100){
for(i=255;i>0;i--){
analogWrite(LED,i);
delay(10);
}
}
else {
digitalWrite(LED,HIGH);
}
}




αλλα αυτο που θα κανει ειναι

θα κανει ενα μικρο fade in απο 0 εως 10 του PWM

μετα θα δει οτι το i δεν ειναι 100 και θα παει στο else

θα το κανει HIGH δλδ φουλ φωτεινο

και μετα θα παει παλι απο την αρχη με το fade in

αλλα εσυ δεν θα προλαβεις να δεις το φουλ φωτεινο

δεν θα προλαβει το ματι σου πιστευω

γιατι θα παει κατευθειαν στο

analogWrite(LED,i);

με i = 1

furtune
02-02-11, 10:34
Σ'ευχαριστω για την απαντηση.Το προγραμμα δεν ειναι τιποτα ουσιαστικο.Απλα πειραματιζομουν και ηθελα λιγο να δουλεψω το if/else.