简单的arduino开发问题关于由电脑控制程序启动和结束
intledpin=13;//定义数字接口13连接ledintbuzzer=3;//设置控制蜂鸣器的数字IO脚intpotpin=0;//定义模拟接口0连接光敏电阻int...
int ledpin=13;//定义数字接口13 连接led
int buzzer=3;//设置控制蜂鸣器的数字IO脚
int potpin=0;//定义模拟接口0连接光敏电阻
int val=0;//定义变量val
int t=1;
int count;
int i;
int val2;
void setup()
{
pinMode(ledpin,OUTPUT);//定义数字接口11为输出
pinMode(buzzer,OUTPUT);//定义蜂鸣器的3脚为输出
Serial.begin(9600);//设置波特率9600
}
void loop()
{
val2=Serial.read();
if(val2=='T')
{
val=analogRead(potpin);//读取传感器的模拟值并赋值给val
Serial.println(val);//显示val 变量数值
if(val>750||t>600) //判断时间或光强是否满足点亮条件
{
count=4;//设置警报及闪烁段数
if(t>600)t=0;//将满足条件的t置零,防止反触发
if(val>750)t=0;
while(count)
{
for(i=0;i<100;i++)//发出一个频率的声音
{ digitalWrite(ledpin,HIGH);//点亮数字13 口LED。
delay(1);
digitalWrite(ledpin,LOW);//熄灭数字13 口LED
delay(1);
digitalWrite(buzzer,HIGH);//发声音
delay(1);//延时1ms
digitalWrite(buzzer,LOW);//不发声音
delay(2);//延时1ms
}
for(i=0;i<100;i++)//发出另一个频率癿声音
{
digitalWrite(buzzer,HIGH);//发声音
delay(2);//延时2ms
digitalWrite(buzzer,LOW);//不发声音
delay(1);//延时1ms
}
count--;
}
}
t++;//每循环一次t+1来记录触发间隔30s
delay(50);//每次循环延时50ms,50*t=50*60=30000即为触发所需的时间间隔。
}
}
程序是每三十秒或者光照发生变化蜂鸣器就会发声同时led闪烁,我想通过电脑输入start和stop来控制程序开关,应该怎么添加程序
我设置了一个“T”来控制程序开始,但需要反复输入T才能让程序运行 展开
int buzzer=3;//设置控制蜂鸣器的数字IO脚
int potpin=0;//定义模拟接口0连接光敏电阻
int val=0;//定义变量val
int t=1;
int count;
int i;
int val2;
void setup()
{
pinMode(ledpin,OUTPUT);//定义数字接口11为输出
pinMode(buzzer,OUTPUT);//定义蜂鸣器的3脚为输出
Serial.begin(9600);//设置波特率9600
}
void loop()
{
val2=Serial.read();
if(val2=='T')
{
val=analogRead(potpin);//读取传感器的模拟值并赋值给val
Serial.println(val);//显示val 变量数值
if(val>750||t>600) //判断时间或光强是否满足点亮条件
{
count=4;//设置警报及闪烁段数
if(t>600)t=0;//将满足条件的t置零,防止反触发
if(val>750)t=0;
while(count)
{
for(i=0;i<100;i++)//发出一个频率的声音
{ digitalWrite(ledpin,HIGH);//点亮数字13 口LED。
delay(1);
digitalWrite(ledpin,LOW);//熄灭数字13 口LED
delay(1);
digitalWrite(buzzer,HIGH);//发声音
delay(1);//延时1ms
digitalWrite(buzzer,LOW);//不发声音
delay(2);//延时1ms
}
for(i=0;i<100;i++)//发出另一个频率癿声音
{
digitalWrite(buzzer,HIGH);//发声音
delay(2);//延时2ms
digitalWrite(buzzer,LOW);//不发声音
delay(1);//延时1ms
}
count--;
}
}
t++;//每循环一次t+1来记录触发间隔30s
delay(50);//每次循环延时50ms,50*t=50*60=30000即为触发所需的时间间隔。
}
}
程序是每三十秒或者光照发生变化蜂鸣器就会发声同时led闪烁,我想通过电脑输入start和stop来控制程序开关,应该怎么添加程序
我设置了一个“T”来控制程序开始,但需要反复输入T才能让程序运行 展开
1个回答
2016-07-06
展开全部
可以,你说的”电脑编好的程序,烧给Arduino,然后Arduino成为一个独立个体进行代码下的活动“是对arduino编程和烧写,这个环节只要一次。arduino根据你的程序运行之后可以通过串口与电脑进行双向通信(前提是你的arduino程序里有串口通信代码)。与此同时,如果你用的arduino板上的芯片还有其他未用的串行通信接口或者I2C、SPI、CAN接口,也可以与传感器进行通信,这样,就可以将传感器的数据借助arduino传输至你的电脑了。
P.S.如果你要实现的任务不复杂,用arduino IDE进行编程、汇编是可以的,如果对时效要求较高,譬如想达到1Mbps的串口传输速率或者400kHz的I2C通信或者10KHz以上的方波输出或者尽可能短的程序执行周期,建议在Atmel Studio用gcc直接对avr进行编程。效率很轻松的能达到arduino IDE编译的程序的5到10倍强。
P.P.S.你的电脑上位机程序编写看你个人爱好,如果你之前学过编程有基础,可以用VB,C++,DELPHI.如果你的基础不是太牢并且想短时间内看到成果,推荐matlab或者labview。内部集成强大的数学分析工具,可以直接使用,譬如离散卡尔曼,FFT,等等等等。
P.S.如果你要实现的任务不复杂,用arduino IDE进行编程、汇编是可以的,如果对时效要求较高,譬如想达到1Mbps的串口传输速率或者400kHz的I2C通信或者10KHz以上的方波输出或者尽可能短的程序执行周期,建议在Atmel Studio用gcc直接对avr进行编程。效率很轻松的能达到arduino IDE编译的程序的5到10倍强。
P.P.S.你的电脑上位机程序编写看你个人爱好,如果你之前学过编程有基础,可以用VB,C++,DELPHI.如果你的基础不是太牢并且想短时间内看到成果,推荐matlab或者labview。内部集成强大的数学分析工具,可以直接使用,譬如离散卡尔曼,FFT,等等等等。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询