Arduino的详细介绍(基于Mega2560)(分文)——pinMode,digitalWrite/digitalRead()

pinMode,digitalWrite/digitalRead()是Arduino对数字接口的操作函数。


函数:

pinMode():

功能:指定特定端口是作为输入还是输出;

形式:pinMode(pin,mode)

参数:pin:想要设定的端口号;

mode:模式,有INPUTOUTPUTINPUT_PULLUP三种模式。(INPUT_PULLUP参数设定内置的上拉电阻是否被使能)。

返回值:none;

示例:

int ledPin = 13;                 // LED connected to digital pin 13

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}
注:模拟输入引脚也可以作为数字引脚使用。

digitalWrite():

功能:控制引脚输出高低电平;如果引脚被pinMode()设为OUTPUT,5V (或者 3.3V 在使用 3.3V的板子上) 就是HIGH, 0V (ground) 就是 LOW。如果引脚被设为INPUT,digitalWrite()将对输入引脚的上拉电阻使能HIGH(或者禁止LOW)。建议digitalwrite和digitalread使用之前都要用piMode指定输出输入,否则引脚上拉电阻会像限流电阻一样(此时应该是高阻态)。

形式:digitalWrite(pin,value)

参数:pin:要操作的引脚;

value:有HIGHLOW两个取值。

digitalRead():

功能:读取引脚电平状态;

形式:digitalRead(pin)

参数:pin:要读取的引脚

返回值:HIGH或者LOW;

示例:

int ledPin = 13; // LED connected to digital pin 13
int inPin = 7;   // pushbutton connected to digital pin 7
int val = 0;     // variable to store the read value

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin 13 as output
  pinMode(inPin, INPUT);      // sets the digital pin 7 as input
}

void loop()
{
  val = digitalRead(inPin);   // read the input pin
  digitalWrite(ledPin, val);    // sets the LED to the button's value
}

注:如果引脚没有接任何东西,那么这个函数可能返回HIGH也可能返回LOW,是随机的。

其实这一块是相当简单的,相信不用我多说了。
  • 42
    点赞
  • 215
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是循迹小车arduino MEGA2560控制电机l258n六路循迹板代码的示例: ```arduino //定义引脚 int leftmotor1 = 22; int leftmotor2 = 23; int rightmotor1 = 24; int rightmotor2 = 25; int leftsensor1 = 2; int leftsensor2 = 3; int centersensor = 4; int rightsensor2 = 5; int rightsensor1 = 6; void setup() { //设置引脚模式 pinMode(leftmotor1, OUTPUT); pinMode(leftmotor2, OUTPUT); pinMode(rightmotor1, OUTPUT); pinMode(rightmotor2, OUTPUT); pinMode(leftsensor1, INPUT); pinMode(leftsensor2, INPUT); pinMode(centersensor, INPUT); pinMode(rightsensor2, INPUT); pinMode(rightsensor1, INPUT); } void loop() { //读取传感器值 int left1 = digitalRead(leftsensor1); int left2 = digitalRead(leftsensor2); int center = digitalRead(centersensor); int right2 = digitalRead(rightsensor2); int right1 = digitalRead(rightsensor1); //判断传感器值,控制电机 if (center == HIGH) { digitalWrite(leftmotor1, HIGH); digitalWrite(leftmotor2, LOW); digitalWrite(rightmotor1, HIGH); digitalWrite(rightmotor2, LOW); } else if (left1 == HIGH && left2 == LOW) { digitalWrite(leftmotor1, LOW); digitalWrite(leftmotor2, HIGH); digitalWrite(rightmotor1, HIGH); digitalWrite(rightmotor2, LOW); } else if (right1 == HIGH && right2 == LOW) { digitalWrite(leftmotor1, HIGH); digitalWrite(leftmotor2, LOW); digitalWrite(rightmotor1, LOW); digitalWrite(rightmotor2, HIGH); } else if (left2 == HIGH && right2 == HIGH) { digitalWrite(leftmotor1, LOW); digitalWrite(leftmotor2, HIGH); digitalWrite(rightmotor1, LOW); digitalWrite(rightmotor2, HIGH); } else if (left1 == LOW && right1 == LOW) { digitalWrite(leftmotor1, LOW); digitalWrite(leftmotor2, LOW); digitalWrite(rightmotor1, LOW); digitalWrite(rightmotor2, LOW); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值