🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **Mixly FOR IOA虚拟工厂** ### 初始化函数 **功能**:将控制器初始化为MEGA-S控制器 **说明**:库文件包含,必须添加. Arduino函数初始化, ![](https://img.kancloud.cn/a8/fc/a8fc4c7bcb5cd2014f6453a97abe6395_280x74.png) **arduino-IDE编程函数**: > ~~~ > #include "ZtIOA.h" > void setup(){ > _IoaCtrl.Init(DEVICE_TYPE_S); > } > void loop(){ > } > ~~~ ### IO输出引脚操作 **功能**:控制单片机的IO口为输出模式,并置位为高/低电平; ![](https://img.kancloud.cn/71/6c/716c9bb7b55099452cb9d1fc1684f89f_321x45.png) **arduino-IDE编程函数**: > ~~~ > digital_IOA_Write(uint8_t pin,uint8_t val); > ~~~ **说明**:参数pin为引脚号码,参数val为0/1高低电平信号; * * * ### IO输入引脚读取操作 **功能**:将单片机IO作为输入引脚,并读取其输入状态为高/低; **mixly编程**: ![](https://img.kancloud.cn/e9/d5/e9d5795e741d5025cfc4a716803d0690_218x46.png) **arduino-IDE编程函数**: > ~~~ > digital_IOA_Read(uint8_t pin); > ~~~ **说明**:输入为引脚号,返回值为0低电平,1高电平; ### 软IO中断操作 **功能**:该组操作函数为(1)开启某IO引脚为输入状态并检测中断,(2)、当该IO引脚发生中断自动执行某函数,(3)、打开/关闭某IO引脚中断功能; **mixly编程**: ![](https://img.kancloud.cn/be/41/be41a7688bb77411b8773b5d8bacb305_480x334.png =x300) **arduino-IDE编程函数**: > ~~~ > //开启软中断 > digital_IOA_InterruptEnable(uint8_t pin); //开启pin引脚中断; > //配置软中断函数 > //参数pin输入引脚号,IOA_AttachPinInterrupt_fun_0回调函数指针, > //软中断触发方式参数CHANGE 突变触发、FALLING 下降沿触发,RISING上升沿触发 > digital_IOA_AttachInterrupt( uint8_t pin ,VSR_AttachPinInterrupt_fun_0,RISING);; > //当中断响应时候,调用中断回调函数: > void IOA_AttachPinInterrupt_fun_0() { > //中断执行的子函数; > }; > //关闭中断 > digital_IOA_InterruptDisable(0);//关闭该引脚中断响应; > ~~~ **代码示例** * * * **mixly图形化程序**: ![](https://img.kancloud.cn/7f/d5/7fd56afda31a2e781382f122a8326967_452x206.png) **翻译IDE函数**: > ~~~ > //定义中断回调函数 > void IOA_AttachPinInterrupt_fun_0() { > Float32_Write(0,0); > } > void setup(){ > _IoaCtrl.Init(DEVICE_TYPE_R); > pinMode(0, INPUT); > digital_IOA_InterruptEnable(0); > digital_IOA_AttachInterrupt(0,IOA_AttachPinInterrupt_fun_0,RISING); > } > ~~~ **说明**:设置引脚0为中断响应,设置为上升沿中断,当发生引脚0上升沿则执行: Float32\_Write(0,0) 函数 ### 模拟量输出控制 **功能**:控制单片机寄存器模拟量输出至虚拟模型,如操作速度、大小等变量控制; **mixly编程** ![](https://img.kancloud.cn/34/32/3432d071ad85a4bf90a9aff231ce1bec_338x47.png) **arduino-IDE编程函数** > ~~~ > Float32_Write(0,50); > ~~~ **说明**:设置通道寄存器float32-0输出值为50; ## 模拟量输入读取 **功能**:读取虚拟世界的模拟量反馈,如旋钮开关,坐标数据等; **mixly编程** ![](https://img.kancloud.cn/49/65/49650f3e0b264c48bbd2a2f6d633a968_237x44.png) **arduino-IDE编程函数** > ~~~ > Float32_Read(0); > ~~~ **说明**:读取通道float32-0的寄存器的值,并返回值; ## 虚拟伺服电机速度控制 **功能**:设置某M电机的转动速度值为当前值,0~100; **mixly编程** ![](https://img.kancloud.cn/1a/61/1a6165f9ff9b8649fb918add9fe2f22f_311x51.png) **arduino-IDE编程函数** > ~~~ > Set_ServoSpeed(0,0); > ~~~ **说明**:输入电机编号0~7,输入电机速度为0~100; * * * ## 虚拟伺服电机位置控制 **功能**:设置某M电机要达到的执行位置,输入值为浮点数float32; **mixly编程** ![](https://img.kancloud.cn/7f/5f/7f5f2674c944afc2f018db9a16f94314_322x45.png) **arduino-IDE编程函数** > ~~~ > Set_ServoPos(0,0); > ~~~ **说明**:输入电机编号0~7,电机要执行达到的位置值pos(float32); * * * ## 读取虚拟电机位置值 **功能**:读取某M电机当前的位置坐标值; **mixly编程** ![](https://img.kancloud.cn/71/0e/710eede4418f50e3abf6dc448cc13081_221x31.png) **arduino-IDE编程函数** > ~~~ > Get_ServoPos(0); > ~~~ **说明**:输入电机编号0~7,返回该电机目前虚拟位置pos的值(float32); * * * ## 等待电机执行完成上一个动作 **功能**:阻塞线程,等待该M电机执行并达到目标位置pos点; **mixly编程**: ![](https://img.kancloud.cn/69/83/6983c0f6a11ed149d7f504cc619cc574_244x37.png) > ~~~ > WaitFinish_ServoPos(0); > ~~~ **说明**:等待电机0执行到位置点才会执行接下来的代码动作;