光耦网 - ZDAUTO-MIO-Arduino 代码例程

欢迎来到光耦网! | 免费注册

主页 > 技术方案 > ZDAUTO-MIO-Arduino 代码例程

ZDAUTO-MIO-Arduino 代码例程

作者:光耦网 发布时间:2019/1/28 来源:光耦网 浏览量:199 相关关键词: ZDAUTO MIO-Arduino 代码例程

int KEY_Scan(void);

 

const int analogInPin = A0;  // 模拟量输入口为A0

const int analogOutPin = 3;  // 模拟量输出口为PIN3

int KEY1 = 4;                // KEY1引脚为PIN4

int KEY2 = 5;                // KEY2引脚为PIN5

int LED = 6;                 // LED灯引脚为PIN6

int LED_State = 0;           // LED灯状态

int sensorValue = 0;         // 读入的模拟量值

int Value = 0;               // 写出的模拟量值

int CNT=0;

 

void setup()

{

  Serial.begin(9600);        // 波特率设为9600

  pinMode(KEY1, INPUT);      

  pinMode(KEY2, INPUT);      

  digitalWrite(KEY1, HIGH);

  digitalWrite(KEY2, HIGH);

  pinMode(LED, OUTPUT);

  digitalWrite(LED, HIGH);

}

void loop()

{

  int Key1_val = KEY_Scan();

  switch (Key1_val)

  {

    case 1 :                                // KEY1

            if (Value < 255)                // 模拟量输出最大值为255

            {

              Value += 51;

              digitalWrite(LED, LED_State);

              LED_State = !LED_State;       // LED状态取反

            }

      break;

    case 2 :                                // KEY2

            if (Value > 0)                  // 模拟量输出最小值为0

            {

              Value -= 51;

              digitalWrite(LED, LED_State);

              LED_State = !LED_State;       // LED状态取反

            }

      break;

    default: break;  

  }

  if( ++CNT==25)

  {

    CNT=0;

    analogWrite(analogOutPin, Value);            // 输出模拟量到PIN3

    sensorValue = analogRead(analogInPin);       // 读取输入的模拟量

    Serial.print("AO Output = " );              // 串口输出字符串

    Serial.print(Value / 255.0 * 10.0);

    Serial.print("\t AI Input = " );

    Serial.println(sensorValue / 1023.0 * 5.0); // 串口输出变量后换行

    }

  delay(20);

}

 

int KEY_Scan(void)

{  

  static int key_up=1; // 按键按松开标志 

  if(key_up&&(digitalRead(KEY1)==LOW||digitalRead(KEY2)==LOW))

  {

    delay(10);         // 去抖动

    key_up=0;

    if(digitalRead(KEY1)==LOW)

      return 1;

    else if(digitalRead(KEY2)==LOW)

      return 2;

  }

  else if(digitalRead(KEY1)==HIGH&&digitalRead(KEY2)==HIGH)

    key_up=1;

  return 0;            // 无按键按下

}

 

本方案所需物料清单: 预估总价:¥ 20113.82
物料名称 单套用量 预估单价
M5S-PO 100 ¥ 27.1440 询价
M5S-CX 100 ¥ 30.1600 询价
M5S-BO 100 ¥ 15.0800 询价
M5S-PX 100 ¥ 33.7502 询价
M5S-AO 100 ¥ 36.1920 询价
M5S-PI 100 ¥ 22.6200 询价
M5S-AI 100 ¥ 24.1280 询价
M5S-BI 100 ¥ 12.0640 询价
采购量:

技术方案

产品索引 :