如何增加功能?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3182|回复: 2

如何增加功能?

[复制链接]
发表于 2013-6-27 23:20 | 显示全部楼层 |阅读模式
本帖最后由 vn504856 于 2013-6-27 23:24 编辑

我是来自台湾的Arduino的新手

用词可能会和大家有些差异

请多包涵

-------------------------------------------------------------------------------------------------------------------------------------------------------

我照网路教学
做了一个用蓝芽控制直流马达正反转的电路
设定为转动3秒后就停止
我想在马达停止后
加入红外线感测功能
code该怎么修改



控制马达的code


int enablePin = 4; // pin 1 on L293D IC
int motorPin1 = 5; // pin 2 on L293D IC
int motorPin2 = 6; // pin 7 on L293D IC

int state;
int flag=0;        //makes sure that the serial only prints once the state

void setup() {
    // sets the pins as outputs:
    pinMode(enablePin, OUTPUT);
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    // sets enablePin high so that motor can turn on:
    digitalWrite(enablePin, HIGH);
    // initialize serial communication at 9600 bits per second:
    Serial.begin(9600);
}

void loop() {
    //if some date is sent, reads it and saves in state
    if(Serial.available() > 0){     
      state = Serial.read();   
      flag=0;
    }   

    // if the state is '1' the motor will turn right
    if (state == '1') {
        digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
        digitalWrite(motorPin2, HIGH); // set pin 7 on L293D high
        if(flag == 0){
          Serial.println("Motor: right");
          flag=1;
          delay(3000);
        }
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, LOW);
    }
    // if the state is '2' the motor will turn left
    else if (state == '2') {
        digitalWrite(motorPin1, HIGH); // set pin 2 on L293D high
        digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
        if(flag == 0){
          Serial.println("Motor: left");
          flag=1;
          delay(3000);
        }
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, LOW);
    }
}
发表于 2013-6-28 08:02 | 显示全部楼层
人体红外检测就是一个普通的数字模块,程式setup部分使用pinmode(X,INPUT)初始化,loop部分使用digitalRead(X)读取它的电平就可以了
发表于 2013-6-28 23:43 | 显示全部楼层
读取红外传感器的输出信号,然后作出判断,执行什么动作~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-29 06:22 , Processed in 0.076678 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表