《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需要分两步。

相关文章
|
4月前
|
人工智能 机器人 人机交互
哥大华人开发人脸机器人,照镜子自主模仿人类表情超逼真
【4月更文挑战第3天】哥伦比亚大学研究人员开发了一款名为Emo的机器人,能观察并模仿人类面部表情,实现更自然的人机交互。Emo配备26个面部执行器和高分辨率摄像头,通过“自我建模”学习模仿表情,并能预测人类表情变化。这一创新有望改善人机理解和响应情绪的能力,应用于教育、医疗等领域,但也引发了关于情感依赖和伦理问题的讨论。
83 4
哥大华人开发人脸机器人,照镜子自主模仿人类表情超逼真
|
20天前
|
机器学习/深度学习 自然语言处理 算法
聊天机器人开发的最佳实践:技术探索与案例分析
【8月更文挑战第22天】聊天机器人作为人工智能领域的重要应用之一,正逐步改变着人们的生活和工作方式。通过遵循最佳实践和技术探索,开发者可以开发出更加智能、高效、安全的聊天机器人产品。未来,随着技术的不断进步和应用场景的不断拓展,聊天机器人将在更多领域发挥重要作用。
|
1月前
|
人工智能 搜索推荐 安全
从零到一:微信机器人开发的实战心得
从零到一:微信机器人开发的实战心得
94 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人
Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人
51 0
|
3月前
|
机器人 API 开发者
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
|
4月前
|
传感器 数据采集 人工智能
LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理
LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理
42 1
|
4月前
|
传感器 人工智能 算法
LabVIEW开发灭火器机器人
LabVIEW开发灭火器机器人
38 0
|
4月前
|
传感器 编解码 机器人
Sony BRC-300P 三个1/4英寸7型高级CCD传感器一体式标清机器人紧凑型摄像机
Sony BRC-300P 三个1/4英寸7型高级CCD传感器一体式标清机器人紧凑型摄像机
|
4月前
|
缓存 数据可视化 安全
开发阿里云 RPA 机器人的技巧
在当今数字化时代,机器人流程自动化(RPA)技术正逐渐成为企业提高效率和优化业务流程的重要手段。阿里云 RPA 作为一种强大的工具,为开发高效的机器人提供了丰富的功能和支持。本文将分享一些开发阿里云 RPA 机器人的技巧,帮助您更好地利用该平台的能力。
|
4月前
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人

热门文章

最新文章

下一篇
DDNS