-
solidWorks建模
SolidWorks建模 -
耗时一周制造出来了
花了一周时间做出来了 -
硬件 arduino uno+2个中继电+一个串口屏
硬件部分 arduino uno+ 2个中间继电器+1个HMI 串口屏+220V 带调试器电机 -
HMI 主页面参数1
-
HMI 主页面参数2
HMI 串口屏设置参数1 -
HMI 上电执行参数
HMI 串口屏设置参数2 -
HMI 输入页面
HMI 串口屏设置参数3 - arduino 代码 Serial.Event 是伪中断 程序用的轮询 有好的代码 欢迎大神指教
- //淘晶驰串口屏幕上位机 arduino 下位机 串口控制IO 实现自动焊接-20210325 西代
- String comdata = "";
- int i=0;
- String ss_str="";
- String ms_str="";
- void revece_data(void); //接受串口数据
- void test_data(void); //执行串口数据
- void setup() {
-
- pinMode(13, OUTPUT);//数字IO13--控制继电器及电机工作
- pinMode(12, OUTPUT);//数字IO12--控制继电器及焊枪开关工作
- digitalWrite(13, LOW);//停止电机
- digitalWrite(12, LOW);//停止焊机
- Serial.begin(9600);
- }
- void loop()
- {
- revece_data();
- if(comdata.length()>0)
- {
- Serial.println(comdata);
- test_data();
-
- while(Serial.read()>=0){} //清空串口缓存
- }
- }
- void test_data(void) //执行串口命令
- {
- i=comdata.indexOf('A');
- ss_str=comdata.substring(i+1,comdata.length());
- ms_str=comdata.substring(0,i);
- Serial.println(ss_str.toInt()*1000);
- Serial.println(ms_str.toInt()*1000);
- digitalWrite(12, HIGH);//启动焊机
- delay(ms_str.toInt()*1000);//启弧时间结束
- digitalWrite(13, HIGH);//启动电机
- int ys=ss_str.toInt();
- //delay(ss_str.toInt()*1000);
- comdata="";
- while (ys>0)//串口轮询
- {
- revece_data();
- Serial.println(comdata);
- if(comdata=="A")//触摸屏串口stop停止启动电机
- {
- digitalWrite(13, LOW);//停止启动电机
- Serial.println("OFF MO-TO");
- digitalWrite(12, LOW);
- Serial.println("OFF H-J");
- comdata="";
- break;
- }
- ys=ys-1 ;
- delay(1000);
- }
- digitalWrite(13, LOW);//停止电机
- digitalWrite(12, LOW);//停止焊机
- i=0;
- ss_str="";
- ms_str="";
- comdata = "";
- }
- void revece_data()//接受串口数据 comdata
- {
- while (Serial.available())
- {
- //获取新的字节:
- char inChar = (char)Serial.read();
- //将它添加到inputString:
-
- comdata += inChar ;
- delay(2);
-
- }
- }
复制代码
|