《Arduino开发实战指南:机器人卷》一2.3 高级I/O

简介:

本节书摘来华章计算机《Arduino开发实战指南:机器人卷》一书中的第2章 ,第2.3节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 高级I/O

2.3.1 PulseIn(pin,state,timeout)
PulseIn函数用于读取指定引脚的脉冲持续的时间长度,该函数返回值类型为无符号长整型(unsigned long),单位为ms,如果超时没有读到的话,则返回0。
PulseIn函数包含3个参数pin、state、timeout。参数pin代表脉冲输入的引脚;参数state代表脉冲响应的状态,脉冲可以是HIGH或者LOW,如果是HIGH,则PulseIn函数将先等引脚变为高电平,然后开始计时,一直到变为低电平;参数timeout代表超时时间。
做一个按钮脉冲计时器,测一下按钮的时间,测测谁的反应快,看谁能按出最短的时间,其中按钮接引脚3。示例程序如下:

int button=3;
int count;
void setup()
{
  pinMode(button,INPUT);
}
void loop()
{ 
  count=pulseIn(button,HIGH);
  if(count!=0)
    { 
        Serial.println(count,DEC);
        count=0;
    }
}

2.3.2 shiftOut(dataPin,clockPin,bitOrder,val)
shiftOut函数的作用是将一个数据的一个字节一位一位地移出,它是一个无返回值函数。从最高有效位(最左边)或最低有效位(最右边)开始,依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。
shiftOut函数包括4个参数dataPin、clockPin、bitOrder、val,其具体含义如下。

  • dataPin:输出每一位数据的引脚,引脚需配置成输出模式。
  • clockPin:时钟脚,当dataPin有数据时,此引脚电平会发生变化,引脚需配置成输出模式。
  • bitOrder:输出位的顺序,有最高位优先(MSBFIRST)和最低位优先(LSBFIRST)两种方式。
  • val:所要输出的数据值,该数据值将以byte形式输出。

从相应引脚输出500的示例程序如下,其中dataPin接引脚11,clockPin接引脚12,按最低位优先输出方式:

int dataPin = 11;
int clockPin = 12; 
int data = 500;
void setup() 
{
  pinMode(dataPin, OUTPUT);                // 设置引脚为输出
  pinMode(clockPin, OUTPUT);                // 设置引脚为输出
}
void loop() 
{
  shiftOut(dataPin,clockPin,LSBFIRST,data);        // 移位输出低字节
  shiftOut(dataPin,clockPin,LSBFIRST,data>>8);        // 移位输出高字节
}

注意
shiftOut目前只能输出1个字节(8位),所以如果输出值大于255需要分两步。

相关文章
|
3月前
|
传感器 人工智能 机器人
基于Arduino的泡茶机器人
基于Arduino的泡茶机器人
58 1
|
12天前
|
人工智能 自动驾驶 安全
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
Cosmos 是英伟达推出的生成式世界基础模型平台,旨在加速物理人工智能系统的发展,特别是在自动驾驶和机器人领域。
119 15
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
|
3月前
|
机器人
基于Arduino的自弹尤克里里机器人(下)
基于Arduino的自弹尤克里里机器人(下)
41 0
|
3月前
|
机器人
基于Arduino的自弹尤克里里机器人(上)
基于Arduino的自弹尤克里里机器人(上)
48 0
|
1月前
|
编解码 网络协议 机器人
顶顶通电话机器人开发接口对接大语言模型之实时流TTS对接介绍
大语言模型通常流式返回文字,若一次性TTS会导致严重延迟。通过标点断句或流TTS可实现低延迟的文本到语音转换。本文介绍了电话机器人接口适配流TTS的原理及技术点,包括FreeSWITCH通过WebSocket流TTS放音,以及推流协议和旁路流对接的详细说明。
|
3月前
|
传感器 IDE 机器人
基于Arduino的扫地机器人
基于Arduino的扫地机器人
106 1
|
3月前
|
传感器 算法 机器人
基于Arduino的3D打印六足机器人
基于Arduino的3D打印六足机器人
58 0
|
3月前
|
人工智能 安全 机器人
Dify开发Agent对接钉钉机器人
这篇文章详细讲解了如何在Dify平台上开发一个Agent并与钉钉机器人集成,实现自动化消息处理和响应功能。
278 0
|
5月前
|
机器学习/深度学习 自然语言处理 算法
聊天机器人开发的最佳实践:技术探索与案例分析
【8月更文挑战第22天】聊天机器人作为人工智能领域的重要应用之一,正逐步改变着人们的生活和工作方式。通过遵循最佳实践和技术探索,开发者可以开发出更加智能、高效、安全的聊天机器人产品。未来,随着技术的不断进步和应用场景的不断拓展,聊天机器人将在更多领域发挥重要作用。
|
5月前
|
人工智能 搜索推荐 安全
从零到一:微信机器人开发的实战心得
从零到一:微信机器人开发的实战心得
350 2

热门文章

最新文章