当前位置: 首页 > news >正文

物联网开发笔记(5)- 使用Wokwi仿真树莓派Pico实现LED灯交替闪烁(续)

大家好,我们再来研究一下,LED交替闪烁。在前面的文章:笔记(2)我们已经实现了。这次我们换一种实现方法。

一、目的

实现两个LED连接到Pico,LED间隔500ms交互闪烁

二、硬件连接

LED分别连接到树莓派的Pico的GP7和GP8,通过限流电阻470欧姆电阻

三、项目分享地址

实现方法一:

Wokwi Arduino and ESP32 Simulatoricon-default.png?t=M7J4https://wokwi.com/projects/341563215336964690实现方法二:

Wokwi Arduino and ESP32 Simulatoricon-default.png?t=M7J4https://wokwi.com/projects/341563215336964690

四、代码分析

定义两个LED灯,通过两个GPIO控制,这里选择GPIO6和7。也可以选择其他GPIO口。

main.py (方法一的代码,此处通过简单设置LED灯的状态来实现)

# 这个例子是实现定时器

from machine import Pin
import utime

purple_LED = Pin(6, Pin.OUT)  # 紫色LED,端口6
white_LED = Pin(7, Pin.OUT)  # 白色LED,端口7

while True:
  purple_LED.value(1)  # 紫色LED亮
  white_LED.value(0)  # 白色LED熄灭
  utime.sleep(1)
  purple_LED.value(0)  # 紫色LED熄灭
  white_LED.value(1)  # 白色LED亮
  utime.sleep(1)

main.py (方法二的代码,此处通过设置flag的值来切换,设立flag是嵌入式开发常用的方法)

# 这个例子是实现定时器

from machine import Pin
import utime

purple_LED = Pin(6, Pin.OUT)  # 紫色LED,端口6
white_LED = Pin(7, Pin.OUT)  # 白色LED,端口7
flag = 1

while True:
  if flag == 1:
    purple_LED.value(1)  # 紫色LED亮
    white_LED.value(0)  # 白色LED熄灭
    flag = 0
    print("flag: ",flag)
  else:
    purple_LED.value(0)  # 紫色LED熄灭
    white_LED.value(1)  # 白色LED亮
    flag = 1
    print("flag: ",flag)
  utime.sleep(1)

diogram.json(方法一和方法二的电路连接是一样的)

{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    {
      "type": "wokwi-pi-pico",
      "id": "pico",
      "top": -52.98,
      "left": -5.98,
      "attrs": { "env": "micropython-20220117-v1.18" }
    },
    {
      "type": "wokwi-led",
      "id": "led1",
      "top": -3.71,
      "left": 117.56,
      "attrs": { "color": "white", "flip": "", "lightColor": "blue" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r1",
      "top": 96.97,
      "left": 91.4,
      "rotate": 180,
      "attrs": { "value": "470" }
    },
    {
      "type": "wokwi-led",
      "id": "led2",
      "top": -12.42,
      "left": -109.82,
      "attrs": { "color": "magenta" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r2",
      "top": 65.01,
      "left": -94.82,
      "attrs": { "value": "1000" }
    }
  ],
  "connections": [
    [ "led1:C", "r1:1", "green", [ "v35.22", "h26.2" ] ],
    [ "r1:2", "pico:GND.6", "green", [ "v0" ] ],
    [ "led1:A", "pico:GP7", "green", [ "v0" ] ],
    [ "led2:A", "pico:GP6", "green", [ "v0" ] ],
    [ "led2:C", "r2:1", "green", [ "v0" ] ],
    [ "r2:2", "pico:GND.3", "green", [ "v0" ] ]
  ]
}

大家学会了没,有问题请留言,或者加微信公众号,或者QQ群和大家多交流。谢谢!

相关文章:

  • 洛谷 P7302 [NOI1998] 免费的馅饼
  • Docker基础-2.常用命令与Docker镜像
  • Java的Lambda表达式学习笔记:认识lambda表达式
  • SAP Spartacus 项目开发时需要注意的一些常见错误
  • SpringBoot - @JsonIgnore和@JsonIgnoreProperties注解详解以及区别
  • 神经网络概念图片大全,神经网络概念图片解析
  • 产业园区构建公共服务平台应当包含哪些服务
  • 链动2+1模式是如何驱动品牌全面爆发的?
  • DMSA(Distributed multi-scenario analysis)
  • 从IDEA开始,迈进GO语言之门
  • 神经网络算法有哪些模型,神经网络算法模型resnet
  • 管理Java依赖关系的最佳实践
  • DevOps 团队如何防御 API 攻击
  • Dubbo管理控制台dubbo-admin搭建
  • 一觉醒来发现Github要废弃Trending Tab
  • [译] React v16.8: 含有Hooks的版本
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 《剑指offer》分解让复杂问题更简单
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • android 一些 utils
  • Java 23种设计模式 之单例模式 7种实现方式
  • JAVA多线程机制解析-volatilesynchronized
  • Netty源码解析1-Buffer
  • node和express搭建代理服务器(源码)
  • springMvc学习笔记(2)
  • vue 配置sass、scss全局变量
  • 大数据与云计算学习:数据分析(二)
  • 给Prometheus造假数据的方法
  • 技术胖1-4季视频复习— (看视频笔记)
  • 老板让我十分钟上手nx-admin
  • 聊聊flink的BlobWriter
  • 前端攻城师
  • 译有关态射的一切
  • 译自由幺半群
  • 用Python写一份独特的元宵节祝福
  • 你对linux中grep命令知道多少?
  • ​Linux·i2c驱动架构​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #NOIP 2014#Day.2 T3 解方程
  • #pragma multi_compile #pragma shader_feature
  • #pragma 指令
  • $.ajax()参数及用法
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (离散数学)逻辑连接词
  • (一)RocketMQ初步认识
  • (一)为什么要选择C++
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core跨平台微服务学习资源
  • .Net IE10 _doPostBack 未定义
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116