arduino代码示范
arduino代码示范
//txwtech@163.com //2020/03/25 //txwtech@163.com //2020/03/25 //2020/06/25 //2020/09/14 // constants won't change. They're used here to set pin numbers: #include <SoftwareSerial.h> const int in_doorOpenState = 4;//arduino pin 4 const int in_doorCloseState = 5; const int in_rFinish=6;//receive Finish signal const int in_mOperation=7;//manual operation. const int in_pStart=8;//program start; const int in_safeScreen=9;//door safety sensor const int Out_doorClose=10; const int Out_PowerUV=11; //control one relay, make UV to work //const int Out_PowerUV=3; int in_doorOpenStateV=1; //v--value,//must initialize value to 1. int in_doorCloseStateV=1;//must initialize value to 1. int in_rFinishV=1; int in_mOperationV=1; int in_pStartV=1; int in_safeScreenV=1; String inputString1=""; bool doorCloseBool=false; bool uvFinishBool=false; void programStarted(); void programStarted_m(); SoftwareSerial softSerial(12,13);//RX:12,TX:13 void programStarted() { in_pStartV=digitalRead(in_pStart); if(LOW==in_pStartV) { //1 doorCloseBool=true;//new added while(doorCloseBool)//new added {//2 ---------------------------------------------------------- delay(100); in_doorOpenStateV=digitalRead(in_doorOpenState); in_safeScreenV=digitalRead(in_safeScreen); if((LOW==in_doorOpenStateV)&&(LOW==in_safeScreenV)) { digitalWrite(Out_doorClose,HIGH);// normal close // delay(2000);//waiting for door close } in_safeScreenV=digitalRead(in_safeScreen); if(LOW!=in_safeScreenV) { digitalWrite(Out_doorClose,LOW);// not safe, door open // doorCloseBool=false; //2020/09/14 } in_doorCloseStateV=digitalRead(in_doorCloseState); if(LOW==in_doorCloseStateV) { doorCloseBool=false; } }//2 in_doorCloseStateV=digitalRead(in_doorCloseState); if(LOW==in_doorCloseStateV) { digitalWrite(Out_PowerUV,HIGH);//脚踏板,启动UV delay(2000); digitalWrite(Out_PowerUV,LOW); // delay(2000); uvFinishBool=true; } while(uvFinishBool) { delay(100); if(LOW!=digitalRead(in_rFinish))//24VDC X4灯,表示LOW状态,固化中。 灯灭变成HIGH,!=LOW固化结束。 { digitalWrite(Out_doorClose,LOW);// door open uvFinishBool=false; } } }//1 } void programStarted_m() { in_pStartV=digitalRead(in_pStart); if(LOW==in_pStartV) { //1 digitalWrite(Out_PowerUV,HIGH);//脚踏板,启动UV delay(2000); digitalWrite(Out_PowerUV,LOW); uvFinishBool=true; } while(uvFinishBool) { delay(100); if(LOW!=digitalRead(in_rFinish))//24VDC X4灯,表示LOW状态,固化中。 灯灭变成HIGH,!=LOW固化结束。 { // digitalWrite(Out_doorClose,LOW);// door open uvFinishBool=false; } } } void setup() { // initialize the LED pin as an output: //delay(2000); softSerial.begin(9600); softSerial.listen(); pinMode(Out_doorClose, OUTPUT);//10 pinMode(Out_PowerUV, OUTPUT);//11 // initialize the pushbutton pin as an input: pinMode(in_doorOpenState, INPUT_PULLUP);//4,LOW means have signal pinMode(in_doorCloseState, INPUT_PULLUP);//5 pinMode(in_rFinish, INPUT_PULLUP);//6 pinMode(in_mOperation, INPUT_PULLUP);//7 pinMode(in_pStart, INPUT_PULLUP);//8 pinMode(in_safeScreen, INPUT_PULLUP);//9------------- digitalWrite(Out_doorClose,LOW); digitalWrite(Out_PowerUV,LOW); doorCloseBool=false; uvFinishBool=false; in_doorOpenStateV=1; //v--value,//must initialize value to 1. in_doorCloseStateV=1;//must initialize value to 1. in_rFinishV=1; in_mOperationV=1; in_pStartV=1; in_safeScreenV=1; } void loop() { //UVsignal(); in_doorOpenStateV=digitalRead(in_doorOpenState); // in_doorCloseStateV=digitalRead(in_doorCloseState); in_mOperationV=digitalRead(in_mOperation); in_pStartV=digitalRead(in_pStart); // in_safeScreenV=digitalRead(in_safeScreen); //for auto-----------------------------------auto---------- if(digitalRead(in_mOperation)!=LOW) //non-manual is auto { programStarted(); }//auto end //for manual opeation--------------------------manual---------- else if(LOW==digitalRead(in_mOperation)) { digitalWrite(Out_doorClose,LOW);//open door, programStarted_m(); }//manual end, }//---loop end void UVsignal() { inputString1 = ""; if(softSerial.available()>0) { if(softSerial.peek()!='\n') { inputString1+=(char)softSerial.read(); // softSerial.print("reply:"); // softSerial.println(inputString1); // digitalWrite(Out_doorClose,LOW); // delay(2000); } } }
欢迎讨论,相互学习。
cdtxw@foxmail.com
分类:
ArduinoUNO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-09-14 winXP vc6行号显示插件-VC6LineNumberAddin方法-可用-无需注册