2017-08-24 1 views
0

Était en train de faire un détecteur de vibration et a suivi le tutoriel du site du fabricant où j'ai acheté l'Arduino mais j'ai eu des erreurs. Je essayé de changerNe pas nommer le type et n'a pas été déclaré erreur

unsigned char state = 0; 

à

unsigned char state; 
state =0; 

Pas de chance.

Les erreurs sont:

error: 'digital' does not name type 
'blink' was not declared in this scope 
'state' was not declared in this scope 

Codes:

int SensorLED = 13;        //define LED digital pin 13 
int SensorINPUT = 3;       // connect tilt sensor to interrupt 1 in 
digital pin 3 
unsigned char state = 0; 

void setup() { 
pinMode(SensorLED, OUTPUT);  //configure LED as output mode 
pinMode(SensorINPUT, INPUT);  //configure tilt sensor as input mode 
//when low voltage changes to high voltage, it triggers interrupt 1 and runs the blink function 
attachInterrupt(1, blink, RISING); 
} 


void loop(){ 
if(state!=0){              // if state is not 0 
state = 0;               // assign state value 0 
digitalWrite(SensorLED,HIGH);      // turn on LED 
delay(500);              // delay for 500ms 
} 
else{ 
digitalWrite(SensorLED,LOW);     // if not, turn off LED 
} 
} 


void blink(){            // interrupt    function blink() 
state++;             //once trigger the interrupt, the state keeps increment 
} 

Répondre

0

d'abord

unsigned char state = 0; 

et

unsigned char state; 
state =0; 

sont exactement la même chose.

Quelle est la signification de digital pin 3 ligne dans le code. Vous avez déjà défini SensorINPUT = 3, et en le faisant INPUT, vous obtiendrez la broche D3 comme broche d'entrée. Donc, il suffit de supprimer cette ligne et le code compilera bien. Reste de l'erreur semble due à cette ligne seulement.

+0

Merci. Ça marche maintenant. – Evilminator

0

Je ne me prononce pas sur la fonctionnalité, mais les erreurs peuvent être fixées comme suit:

const byte SensorLED = 13; 
const byte SensorINPUT = 3; 


volatile byte state = LOW; 

void blink(void) 
{ 
    state = !state; 
} 

void setup() 
{ 
    pinMode(SensorLED, OUTPUT);  
    pinMode(SensorINPUT, INPUT);  
    attachInterrupt(1, blink, RISING); 
} 


void loop() 
{ 
    digitalWrite(SensorLED, state); 
    delay(500); 
}