2017-08-24 42 views
0

正试图做一个振动检测器,并遵循从我购买了Arduino的制造商网站的教程,但我得到的错误。 我试图改变不命名类型,并没有声明错误

unsigned char state = 0; 

unsigned char state; 
state =0; 

没有运气。

错误是:

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

代码:

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 
} 

回答

0

的所有

unsigned char state = 0; 

第一
unsigned char state; 
state =0; 

是完全一样的东西。

digital pin 3行在代码中的含义是什么。您已经定义了SensorINPUT = 3,并且使其INPUT将引脚D3作为输入引脚。

所以只要删除该行,代码将编译好。其余的错误似乎只是由于这条线。

+0

谢谢。现在正在工作。 – Evilminator

0

我不评论功能,但错误可以固定这样的:

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); 
} 
相关问题