开关基本参数
  • 产地
  • 无锡
  • 品牌
  • 无锡斯茂科技
  • 型号
  • 普通
  • 是否定制
开关企业商机

   1、实现目标:通过拨码开关进行NC程序的选择,直接按下循环启动进行程序加工:首先我们需要明白什么是拨码开关?2、相关PMC信号:如上图所示,在G9中赋值1-31数字,在自动方式下就可以自动根据选择的程序号,按下循环启动,加工选择的程序。拨码开关是按照1248进行编码,输入点分别为,编写如下梯形图:以上即可实现程序1-9的检索,需要在NC中建立O1-O9的程序,如果没有对应的程序,按下循环启动就会报找不到指定的程序。G9只能够实现1-31程序的自动检索,如果实际中需要的程序比较多,就需要使用外部工件号检索信号编写此功能的方法很多,以上的程序 供参考,如果你想了解更多的PMC方面的学习和应用,可以添加小编的微信:,更多关于学习群的介绍,点击【阅读原文】查看详情。如果你有什么问题,可以点击以下图片,进入公众号留言区进行留言,获得更多关于共享屋公众号更多的信息分享是一种态度,转发是一种支持,分享越多,思考越多,成长越大,每天的进步会叠加到你一年的进步。宁波旋转拨码开关质量哪家好,欢迎来电咨询,无锡斯茂科技有限公司。合肥SDCR10S旋转编码开关规格尺寸

   而是只使用了中断产生的标注为来作为判断。这个的设计思路主要是,A信号中断,消抖,确定A信号下降沿触发,打开定时器,10ms检测B信号是否上/下降沿触发,关闭定时器,判断B信号的电平高低。软件设计流程图如下在函数中实际代码如下///****************旋转编码开关,版本2*****************************/////返回值1正转////返回值2反转uint8_tEC11Direction_2(void){charDirection_flag=0;while(1){if(A_flag==1)//A下降沿触发外部中断{HAL_Delay(1);//延时消抖if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_13)==0)//A下降沿触发1ms后判断是否稳定在了低电平{HAL_TIM_Base_Start_IT(&htim2);//开启定时器while(TIM2_flag<=10)//定时器的一个周期是1ms,这里是10ms{if(B_flag==1)//10ms内检测是不是有B上/下降沿触发{TIM2_flag=0;//定时器中断标志位HAL_TIM_Base_Stop_IT(&htim2);//检测到B了直接关闭定时器HAL_Delay(1);//延时消抖if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_14)==1)//判断Pin_14的电平,返回旋转方向{//printf("A\r\n");Direction_flag=1;break;}elseif(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_14)==0){//printf("B\r\n");Direction_flag=2;break。温州4-16挡旋转编码开关工作原理温州SM SWITCH数字拨码开关质量哪家好,欢迎来电咨询,无锡斯茂科技有限公司。

   GPIO_PIN_14)==0){//printf("B\r\n");Direction_flag=2;break;}}}HAL_TIM_Base_Stop_IT(&htim2);//计时器一个周期时间外溢后(TIM2_flag>1),关掉TIM2_flag=0;//定时器标志位}A_flag=0;//消除A中断的标志位}if(Direction_flag==1|Direction_flag==2)break;}returnDirection_flag;}在,应用了TIM2计时器,外溢就+1voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){if(htim->Instance==TIM2){HAL_IncTick();TIM2_flag++;}}在,因此设定分音器和记数各自为750-1和100-1,那样的话一个时间周期便是1ms頻率是1000hz。在,大家寻找外部中断相匹配的回调函数HAL_GPIO_EXTI_Callback,断定到外界脉冲信号触发后回到标志位就可以了。voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){/*Preventunusedargument(s)compilationwarning*/UNUSED(GPIO_Pin);/*NOTE:ThisfunctionShouldnotbemodified,whenthecallbackisneeded,theHAL_GPIO_EXTI_Callbackcouldbeimplementedintheuserfile*/if(GPIO_Pin==A_Pin){A_flag=1;}if(GPIO_Pin==B_Pin){B_flag=1;}}那样写,尽管能够完成针对光电编码器的检验,可是有一个难题,没有办法很便捷的应用到具体工程项目中。

   }}}HAL_TIM_Base_Stop_IT(&htim2);//定时器一个周期溢出后(TIM2_flag>1),关闭TIM2_flag=0;//定时器标志位}A_flag=0;//A中断的标志位}if(Direction_flag==1|Direction_flag==2)break;}returnDirection_flag;}在,使用了TIM2定时器,溢出就+1voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){if(htim->Instance==TIM2){HAL_IncTick();TIM2_flag++;}}在,所以设置分频和计数分别为750-1和100-1,这样的话一个时间周期就是1ms频率是1000hz。在,我们找到外部中断对应的回调函数HAL_GPIO_EXTI_Callback,直接判断到外部电平触发后返回标志位就可以了。voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){/*Preventunusedargument(s)compilationwarning*/UNUSED(GPIO_Pin);/*NOTE:ThisfunctionShouldnotbemodified,whenthecallbackisneeded,theHAL_GPIO_EXTI_Callbackcouldbeimplementedintheuserfile*/if(GPIO_Pin==A_Pin){A_flag=1;}if(GPIO_Pin==B_Pin){B_flag=1;}}这样写,虽然可以实现对于旋转编码器的检测,但是有一个问题,没有办法很方便的运用到实际工程中,以为进入到这个函数后才能进行编码器的判断,显然我们的编码器要实现的是一个翻页的功能。迷你旋转编码开关质量哪家好,欢迎来电咨询,无锡斯茂科技有限公司。

   旋转编码开关EC11的C语言代码:#defineEncoderAP01#defineEncoderBP02//A,B两个引脚uint8time_cnt=0;//用于记录次数uint8input_status=0;//输入的状态uint8input_status0=0;//用于记录上一次初始状态uint8pulse0=0;//记录正旋转的状态次数uint8pulse1=0;//记录反旋转的状态次数uint8scanf_status=0;//获取到的状态uint8fun_one=0;//判断函数是否次执行//125usvoidEC11_Key_Detect(void){if(++time_cnt<=3){return;}time_cnt=0;//每500us进入一次判断A、B引脚有无电平变化if(EncoderA){if(EncoderB){//状态1input_status=1;//A=1;B=1}elseif(!EncoderB){//状态4input_status=4;//A=1;B=0}}elseif(!EncoderA){if(EncoderB){//状态2input_status=2;//A=0;B=1}elseif(!EncoderB){//状态3input_status=3;//A=0;B=0}}//通过判断两个状态是否相等来判断状态确实有变化(类似于按键消抖过程)if(input_status==input_status0){//如果次执行该函数if(fun_one==0){fun_one=1;scanf_status=input_status;}input_status0=input_status;//如果状态为1因为开关旋转后电平会停在1状态,在此执行所需要的东西if(scanf_status==1){//正旋转了一个周期if(pulse0>=4){pulse0=0。

  温州SM SWITCH开关定制质量哪家好,欢迎来电咨询,无锡斯茂科技有限公司。杭州编码开关程序

宁波SM SWITCH开关定制质量哪家好,欢迎来电咨询,无锡斯茂科技有限公司。合肥SDCR10S旋转编码开关规格尺寸

  旋转编码开关EC11的C语言代码://开关正旋转一次写在这里就行了//需要执行的语句}//反旋转一个周期if(pulse1>=4){pulse1=0;//开关反旋转一次写在这里就行了//需要执行的语句}//在状态1的前提下,判断是正旋转还是反旋转if(input_status==2)//正旋转{scanf_status=2;pulse0++;}elseif(input_status==4)//反旋转{scanf_status=4;pulse1++;}}//在状态2的前提下,判断是正旋转还是反旋转if(scanf_status==2){if(input_status==3)//正旋转{scanf_status=3;pulse0++;}if(input_status==1)//反旋转{scanf_status=1;pulse1++;}}//在状态3的前提下,判断是正旋转还是反旋转if(scanf_status==3){if(input_status==4)//正旋转{scanf_status=4;pulse0++;}if(input_status==2)//反旋转{scanf_status=2;pulse1++;}}//在状态4的前提下,判断是正旋转还是反旋转if(scanf_status==4){if(input_status==1)//正旋转{scanf_status=1;pulse0++;}if(input_status==3)//反旋转{scanf_status=3;pulse1++;}}}else{input_status0=input_status。合肥SDCR10S旋转编码开关规格尺寸

无锡斯茂科技有限公司为SM Switch中国子公司,公司成立于1995年,从事开关业近有20多年,我司以较高的品质,优良的环境,以及适合的价格服务于每一家客户。公司已获得ISO 9001, ISO 14001 等多项认证,遵守国内外安全标准。我司旋转编码开关均可以满足IP67 防水,并且有精美的外观,可供不同层次的客户选择。我们的产品适用于多种领域,包含工业控制,医疗器械,智能控制,通讯设备等。我们研发技术力能够满足不同顾客的各项要求,针对客户的要求进行产品研发。以品质保证为基础,为每一位客户提供 完美的服务。

与开关相关的**
信息来源于互联网 本站不为信息真实性负责