找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

本帖最后由 lou 于 2020-4-29 13:20 编辑

基于Arduino使用SS-5GL2小型行程限位开关



限位开关简介

限位开关又称行程开关,可以安装在相对静止的物体(如固定架、门框等,简称静物)上或者运动的物体(如行车、门等,简称动物)上,当动物接近静物时,开关的连杆驱动开关的接点引起闭合的接点分断或者断开的接点闭合,由开关接点开、合状态的改变去控制电路和电机。
限位开关就是用以限定机械设备的运动极限位置的电气开关,限位开关有接触式的和非接触式的,接触式的比较直观,机械设备的运动部件上,安装上行程开关,与其相对运动的固定点上安装极限位置的挡块,或者是相反安装位置,当行程开关的机械触头碰上挡块时,切断了(或改变了)控制电路,机械就停止运行或改变运行。

56.jpg

(SS-5GL2小型行程限位开关)

产品介绍

1、由于采用特殊的处理方式,实现了长达3000万次的长寿命
2、动作力规格,从轻动作到高动作型多种的丰富系列
3、使用方便、性能好、安全可靠性高
4、体积小、高品质、绿色环保、经久耐用

产品参数

额定电压:125V
额定电流:5V
机械寿命:约3000万次
使用环境:耐高温

57.png
(电路原理图)

接线方式

Arduino Nano                SS-5GL2小型行程限位开关
    3V3/5V        <------>              NO
    GND            <------>              NC
    D5               <------>               C

SS-5GL2小型行程限位开关基础小案例

结合Arduino Nano 、L298N电机驱动板模块、一个直流减速电机、一个6v外部供电电源和SS-5GL2小型行程限位开关,使电机A正转推动物体前进,碰到SS-5GL2小型行程限位开关后反转,反转3S后停止。

58.jpg
(L298N电机驱动板模块)

直流电机的驱动

L298N电机驱动板模块可驱动两路直流电机,使能端ENA、ENB为高电平时有效,控制方式及直流电机状态表如下所示。

  
ENA
  
IN1
IN2
直流电机状态
0
×
×
停止
1
0
0
制动
1
0
1
正转
1
1
0
反转
1
1
1
制动
ENB
IN3
IN4
0
×
×
停止
1
0
0
制动
1
0
1
正转
1
1
0
反转
1
1
1
制动

接线方式

Arduino Nano                   SS-5GL2小型行程限位开关
      3V3            <------>                 NO
     GND            <------>                 NC
     D5                <------>                 C

Arduino Nano                L298N电机驱动板模块
           5V         <------>            +5V
           GND      <------>           GND
           D12        <------>           ENA
           D2          <------>            IN1
           D13        <------>            IN2

6v外部供电电源的正极接在 L298N电机驱动板模块的+12V,负极接在 L298N电机驱动板模块的GND,电机接在 L298N电机驱动板模块的OUT1和OUT2输出口。

Mixly 图形化编程程序

59.png
(图形化程序)

程序实现代码
  
  1. volatile int item;
  2. void setup(){
  3.   item = 10;
  4.   pinMode(12, OUTPUT);
  5.   pinMode(5, INPUT);
  6.   pinMode(2, OUTPUT);
  7.   pinMode(13, OUTPUT);
  8. }
  9. void loop(){
  10.   digitalWrite(12,HIGH);
  11.   if (item == 10) {
  12.     if (digitalRead(5) == HIGH) {
  13.       digitalWrite(2,HIGH);
  14.       digitalWrite(13,LOW);
  15.       delay(3000);
  16.       digitalWrite(2,LOW);
  17.       digitalWrite(13,LOW);
  18.       item = 20;
  19.     } else {
  20.       digitalWrite(2,LOW);
  21.       digitalWrite(13,HIGH);
  22.     }
  23.   } else {
  24.     while(true);
  25.   }
  26. }
复制代码


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册