《Arduino开发实战指南:机器人卷》一2.4 时间函数

简介:

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

2.4 时间函数

2.4.1 delay(ms)

delay函数是一个延时函数,它是一个无返回值函数,参数是延时的时长,单位是ms(毫秒)。
跑马灯的程序往往需用到delay函数,具体示例程序清单如下:

void setup()
{
  pinMode(6,OUTPUT);        // 定义为输出
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
}
void loop()
{
  int i; 
  for(i=6;i<=9;i++)            // 依次循环四盏灯
     {
       digitalWrite(i,HIGH);        // 点亮LED
       delay(1000);            // 持续1s
       digitalWrite(i,LOW);        // 熄灭LED
       delay(1000);            // 持续1s
     }
}

2.4.2 delayMicroseconds(μs)

delayMicroseconds函数也是延时函数,可以产生更短的延时,参数是延时的时长,单位是μs(微秒),其中1s=1000ms=1?000?000μs。
在delay(ms)的跑马灯程序中,延时程序delay(1000)(延时1秒)可以用delayMicroseconds (1000000)来代替。

2.4.3 millis()

millis函数用于获取单片机通电到现在运行的时间长度,单位是ms,该函数返回值类型为无符号长整型(unsigned long)。系统最长的记录时间为9小时22分,如果超出将从0开始。
millis是一个无参数函数,适合作为定时器使用,不影响单片机的其他工作,而使用delay函数期间无法做其他工作。
延时10秒后自动点亮接到引脚13的LED的示例程序清单如下:

int LED=13;
unsigned long i,j; 
void setup()
{
  pinMode(LED,OUTPUT);
  i=millis();        // 读入初始值
}
void loop()
{  
  j=millis();        // 不断读入当前时间值
  if((j-i)>10000)        // 如果延时超过10s,点亮LED
    digitalWrite(LED,HIGH);
  else 
    digitalWrite(LED,LOW);
}

2.4.4 micros()

micros函数用于返回开机到现在运行的微秒值,该函数返回值类型为无符号长整型(unsigned long),70分钟将溢出。
显示当前的微秒值的示例程序清单如下:

unsigned long time; 
void setup()
{ 
  Serial.begin(9600); 
} 
void loop()
{ 
  Serial.print("Time: "); 
  time = micros();    // 读取当前的微秒值
  Serial.println(time);    // 打印开机到目前运行的微秒值
  delay(1000);        // 延时1s
}
相关文章
|
6月前
|
机器人 区块链
区块链数字货币量化交易系统机器人开发合约源码定制详情
event BuyOrderPlaced(address user, uint256 price, uint256 amount); event SellOrderPlaced(address user, uint256 price, uint256 amount);
|
19天前
|
缓存 数据可视化 安全
开发阿里云 RPA 机器人的技巧
在当今数字化时代,机器人流程自动化(RPA)技术正逐渐成为企业提高效率和优化业务流程的重要手段。阿里云 RPA 作为一种强大的工具,为开发高效的机器人提供了丰富的功能和支持。本文将分享一些开发阿里云 RPA 机器人的技巧,帮助您更好地利用该平台的能力。
|
4月前
|
算法 机器人
秒合约期权机器人开发/秒合约系统/币币合约/技术开发应用
秒合约期权机器人开发/秒合约系统/币币合约/技术开发应用
|
24天前
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
|
1月前
|
传感器 监控 安全
【全3D打印坦克——基于Arduino履带式机器人】
【全3D打印坦克——基于Arduino履带式机器人】
50 1
|
3月前
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
75 0
|
4月前
|
机器学习/深度学习 存储 机器人
一文看懂!Go语言开发聊天机器人
一文看懂!Go语言开发聊天机器人
49 0
|
5月前
|
机器学习/深度学习 存储 人工智能
区块链、智能ai量化现货合约现货量化机器人开发公司
随着区块链技术和人工智能的不断发展,一个新的领域正在崭露头角,那就是区块链智能AI量化现货合约现货量化机器人。这种技术结合了区块链的去中心化特性和人工智能的智能分析能力,为现货市场的投资者提供了一个全新的工具。
|
6月前
|
机器人
去中心化交易所uniswap、pancakeswap夹子机器人模式开发合约源代码详情
contract PancakeSwapBot { using IERC20 for IERC20Token transferable; using FlashSwap for FlashSwapFactory flashSwapFactory; using FlashSwapTrader for FlashSwapTrader flashSwapTrader;
|
6月前
|
JSON 机器人 API
自动交易机器人做市策略APP量化交易模式开发
def __init__(self, api_url, api_key): self.api_url = api_url self.api_key = api_key def place_order(self, symbol, amount, price):