ARDUINO编程失败 [英] ARDUINO programming fail
本文介绍了ARDUINO编程失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
因此我的Arduino编程在达到无效阶段后失败而且我的mega2560没有做任何事情我必须重置。请帮助解决有问题的部分或如何正确地重做所有内容。
const int closerpin = 3 ;
const int openerpin = 4 ;
const int autopin = 7 ;
const int closemotorpin = 10 ;
const int openmotorpin = 12 ;
const int sensorpin = 5 ;
int openstate = 0 ;
int nearestate = 0 ;
int autostate = 0 ;
int sensorstate = 0 ;
void setup(){
pinMode(closerpin,INPUT);
pinMode(openerpin,INPUT);
pinMode(closemotorpin,OUTPUT);
pinMode(openmotorpin,OUTPUT);
pinMode(autopin,INPUT);
pinMode(sensorpin,OUTPUT);
Serial.begin( 9600 );
}
void loop(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
nearestate = digitalRead(closerpin);
if (openstate == HIGH){
stageOne();
}
else {
stageTwo();
}
}
void stageOne(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
nearestate = digitalRead(closerpin);
digitalWrite(openmotorpin,HIGH);
延迟( 8000 );
digitalWrite(openmotorpin,LOW);
stageTwo();
} // open
void stageTwo(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
nearestate = digitalRead(closerpin);
if (autostate == HIGH){
stageFour();
}
else if (nearestate == HIGH){
stageThree();
}
else {
stageTwo();
}
}
// 关闭n自动检查
void stageThree(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
nearestate = digitalRead(closerpin);
digitalWrite(closemotorpin,HIGH);
延迟( 8000 );
digitalWrite(closemotorpin,LOW);
stageFive();
} // close
void stageFour(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
nearestate = digitalRead(closerpin);
if (sensorstate == HIGH){
digitalWrite(closemotorpin,HIGH);
延迟( 8000 );
digitalWrite(closemotorpin,LOW);
stageSeven();
}
else if (nearestate == HIGH){
stageThree();
}
其他 如果(openstate == HIGH){
stageOne();
}
else if (sensorstate == LOW){
stageFour();
}
}
void stageFive(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
nearestate = digitalRead(closerpin);
if (openstate == HIGH){
stageOne();
}
else if (autostate == HIGH){
stageFour();
}
else {
stageFive();
}
}
// open n auto check
void stageSeven(){
if (sensorstate ==低){
digitalWrite(openmotorpin,HIGH);
延迟( 8000 );
digitalWrite(openmotorpin,LOW);
if (nearestate == HIGH){
stageThree();
}
其他 if (sensorstate == HIGH){
digitalWrite(closemotorpin,HIGH);
stageSeven();
}
else {
stageSeven();
}
}
其他 如果(openstate == HIGH) {
stageOne();
}
else {
stageSeven();
}
}
解决方案
在每个阶段的开始处,您正在读取输入状态
在第7阶段你已经省略了这个。
这样可以解决它.....
so my Arduino programming fails after it reaches void stageSeven and my mega2560 does not do anything and I have to reset. please help with resolving the problematic part or how to redo everything properly.
const int closerpin = 3;
const int openerpin = 4;
const int autopin = 7;
const int closemotorpin= 10;
const int openmotorpin= 12;
const int sensorpin= 5;
int openstate = 0;
int closestate = 0;
int autostate = 0;
int sensorstate = 0;
void setup(){
pinMode(closerpin, INPUT);
pinMode(openerpin, INPUT);
pinMode(closemotorpin, OUTPUT);
pinMode(openmotorpin, OUTPUT);
pinMode(autopin, INPUT);
pinMode(sensorpin, OUTPUT);
Serial.begin(9600);
}
void loop(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
closestate = digitalRead(closerpin);
if (openstate == HIGH) {
stageOne();
}
else {
stageTwo();
}
}
void stageOne(){
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
closestate = digitalRead(closerpin);
digitalWrite(openmotorpin, HIGH);
delay(8000);
digitalWrite(openmotorpin, LOW);
stageTwo();
} //open
void stageTwo() {
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
closestate = digitalRead(closerpin);
if (autostate == HIGH) {
stageFour();
}
else if (closestate == HIGH) {
stageThree();
}
else {
stageTwo();
}
}
//close n auto check
void stageThree() {
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
closestate = digitalRead(closerpin);
digitalWrite(closemotorpin, HIGH);
delay(8000);
digitalWrite(closemotorpin, LOW);
stageFive();
} //close
void stageFour() {
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
closestate = digitalRead(closerpin);
if (sensorstate == HIGH){
digitalWrite(closemotorpin, HIGH);
delay(8000);
digitalWrite(closemotorpin, LOW);
stageSeven();
}
else if (closestate == HIGH){
stageThree();
}
else if (openstate == HIGH) {
stageOne();
}
else if (sensorstate == LOW){
stageFour();
}
}
void stageFive() {
sensorstate = digitalRead(sensorpin);
autostate = digitalRead(autopin);
openstate = digitalRead(openerpin);
closestate = digitalRead(closerpin);
if (openstate == HIGH) {
stageOne();
}
else if (autostate == HIGH) {
stageFour();
}
else {
stageFive();
}
}
//open n auto check
void stageSeven(){
if (sensorstate == LOW){
digitalWrite(openmotorpin, HIGH);
delay(8000);
digitalWrite(openmotorpin, LOW);
if (closestate == HIGH){
stageThree();
}
else if (sensorstate == HIGH) {
digitalWrite(closemotorpin, HIGH);
stageSeven();
}
else{
stageSeven();
}
}
else if (openstate == HIGH) {
stageOne();
}
else{
stageSeven();
}
}
解决方案
At the start of every stage you are reading the input states
At Stage 7 you have ommitted this.
Does that fix it.....
这篇关于ARDUINO编程失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文