arduino ESP32 002 wokwi在线仿真点亮小灯

  • wokwi

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点亮小灯

ESP-IDF

在这里插入图片描述

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

#define PIN_LED_1 GPIO_NUM_16


void setup() {
    // 设置LED引脚为输出
    gpio_reset_pin(PIN_LED_1);
    // esp_rom_gpio_pad_select_gpio(PIN_LED_1);//IO Pad 配置为通用输入输出模式 https://github.com/espressif/esp-idf/blob/master/components/esp_rom/include/esp_rom_gpio.h
    gpio_set_direction(PIN_LED_1, GPIO_MODE_OUTPUT);// 将 PIN_LED_1 引脚配置为输出模式
}

void app_main() {
    setup();
    for(int i=0;i<100;i++){
      // 点亮LED
      gpio_set_level(PIN_LED_1, 1); // 将该 GPIO 引脚的电平设置为高电平
      vTaskDelay(1000 / portTICK_PERIOD_MS);
      gpio_set_level(PIN_LED_1, 0);
      vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

Arduino开发环境

在这里插入图片描述

#include <Arduino.h>
#include <stdio.h>
// 定义LED引脚
int pinled = 4;
int pinled_2 = 16;
int pinled_3 = 17;

void setup() {
  // 初始化串口通信
  Serial.begin(115200);

  // 设置LED引脚为输出
  pinMode(pinled, OUTPUT);
  pinMode(pinled_2, OUTPUT);
  pinMode(pinled_3, OUTPUT);
}

void loop() {
  // 点亮第一个LED
  digitalWrite(pinled, HIGH);
  delay(1000); // 延迟1秒
  digitalWrite(pinled, LOW);

  // 点亮第二个LED
  digitalWrite(pinled_2, HIGH);
  delay(1000); // 延迟1秒
  digitalWrite(pinled_2, LOW);

  // 点亮第三个LED
  digitalWrite(pinled_3, HIGH);
  delay(1000); // 延迟1秒
  digitalWrite(pinled_3, LOW);
}

python

在这里插入图片描述

# https://wokwi.com/projects/359801682833812481
from machine import Pin
from utime import sleep

print("Hello, ESP32!")

led = Pin(15, Pin.OUT)
while True:
  led.on()
  sleep(0.5)
  led.off()
  sleep(0.5)

RUST

在这里插入图片描述

//! Blinks an LED  https://wokwi.com/projects/341952826535051858
//!
//! This assumes that a LED is connected to the pin assigned to `led`. (GPIO4)

#![no_std]
#![no_main]

use esp_backtrace as _;
use esp_println::println;
use hal::{clock::ClockControl, gpio::IO, peripherals::Peripherals, prelude::*, Delay};

#[entry]
fn main() -> ! {
    let peripherals = Peripherals::take();
    let system = peripherals.SYSTEM.split();
    let clocks = ClockControl::boot_defaults(system.clock_control).freeze();

    // Set GPIO4 as an output, and set its state high initially.
    let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
    let mut led = io.pins.gpio4.into_push_pull_output();

    led.set_high().unwrap();

    // Initialize the Delay peripheral, and use it to toggle the LED state in a
    // loop.
    let mut delay = Delay::new(&clocks);
    println!("Hello world!");
    loop {
        delay.delay_ms(1000u32);
        led.toggle().unwrap();
    }
}

CG

  • https://esp-idf-zh.readthedocs.io/zh-cn/latest/get-started/index.html
  • linkboy是绿色软件,直接解压到电脑上就可以运行了 http://linkboy.cc/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/288449.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在mac上怎么方便的编辑xml文件

在Mac上 XML 文件不能默认以较直观的方式在“文本编辑”中打开&#xff0c;如果已安装 Xcode&#xff0c;你可以使用 Xcode 打开 XML 文件。在 Xcode 中&#xff0c;XML 文件通常会以可视化的方式显示&#xff0c;使得编辑更加直观&#xff0c;但是如果你不想安装 XCode&#x…

项目引入Jar包的几种方式

目录 背景 方式一 前提 创建一个jar包 使用 方式二 背景 通常情况下&#xff0c;使用SpringBoot框架开发项目的过程中&#xff0c;需要引入一系列依赖&#xff0c;首选的就是在项目的 pom.xml 文件里面通过Maven坐标进行引入&#xff08;可以通过Maven的坐标引入jar包的前…

[C#]C# OpenVINO部署yolov8实例分割模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来&#xff0c;领域内的研究者们…

HarmonyOS-ArkTS基本语法及声明式UI描述

初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。因此&#xff0c;在学习ArkTS语言之前&#xff0c;建议开发者具备TS语…

基于springboot的火锅店管理系统设计与实现

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1选题动因 当前…

LeetCode 2807. 在链表中插入最大公约数

给你一个链表的头 head &#xff0c;每个结点包含一个整数值。 在相邻结点之间&#xff0c;请你插入一个新的结点&#xff0c;结点值为这两个相邻结点值的 最大公约数 。 请你返回插入之后的链表。 两个数的 最大公约数 是可以被两个数字整除的最大正整数。 示例 1&#xf…

每周一算法:倍增法查找位置

倍增法 倍增法&#xff08;Binary Lifting&#xff09;&#xff0c;顾名思义&#xff0c;就是利用“以翻倍的速度增长”的思想来解决问题的一类算法。 下面介绍如何使用倍增法在有序的序列中查找满足条件的位置。 题目描述 给定一个单调不降的序列&#xff0c;以及 m m m个…

三、C语言中的分支与循环—for循环 (6)

本章分支结构的学习内容如下&#xff1a; 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句&#xff08;4&#xff09;分支结构 完 本章循环结构的…

缓存和数据库,1+1如何大于2?

一、缓存的本质 缓存&#xff0c;简单说就是为了节约对原始资源重复获取的开销&#xff0c;而将结果数据副本存放起来以供获取的方式。 首先&#xff0c;缓存往往针对的是“资源”。我们前面已经多次提到过&#xff0c;当某一个操作是"幂等"的和“安全"的&#…

从传统到现代:知识服务如何被数字化工具重新定义

随着数字技术的快速发展&#xff0c;教育行业正在经历一场前所未有的变革。乔拓云作为知识产品与用户服务的数字化工具&#xff0c;以其卓越的技术实力和创新能力&#xff0c;引领着这场变革。 乔拓云开发的教育系统&#xff0c;为广大知识分享博主提供了一个全新的舞台。这个系…

【springboot实现CURD模版项目-Jesus】

springboot实现CURD模版项目-Jesus STEP 1 项目创建 1.1 新建Spring Initializr项目   1.2 选择需要的依赖 springboot有2.7.2直接选272STEP 2 配置更改 2.1更改maven配置   2.2 检查项目配置jdk、sdk、jre版本一致   2.3 检查pom文件&#xff0c;Maven-Reload project构…

数据库02-06 形式化

01. 03. 04. 05. 06. 07. 08. 09.

【Linux Shell】2. Shell 变量

文章目录 【 1. 变量命名规则 】【 2. 变量的使用 】【 3. 只读变量 】【 4. 删除变量 】【 5. 变量类型 】【 6. Shell 字符串 】6.1 字符串的分类6.2 字符串操作 【 7. Shell 数组 】7.1 定义数组7.2 读取数组7.3 获取数组的长度 【 8. Shell 注释 】8.1 单行注释8.2 多行注释…

『开发工具篇』- 配置 gradle 等相关依赖镜像源

『开发工具篇』- 配置 gradle 等相关依赖镜像源 1.更换gradle下载源2. 配置setting.gradlekts文件gradle文件 1.更换gradle下载源 使用腾讯云的镜像库https://mirrors.cloud.tencent.com/gradle/ gradle-x.x-all.zip&#xff1a;编译后的二进制发布版以及源码和文档gradle-x.…

C++面向对象语法总结(二)

目录 《C面向对象语法总结(一&#xff09;》 十一、继承 继承&#xff0c;可以让子类拥有父类的多有成员&#xff08;变量、函数&#xff09;如下面的代码&#xff1a;Student是子类&#xff08;subclass,派生类&#xff09;&#xff0c;Person是父类&#xff08;superclass…

感恩客户·持续向上-契约锁电子签章

2023年&#xff0c;电子签章成为组织数字化建设中的刚性需求&#xff0c;市场机遇帮助契约锁实现了产品、伙伴、客户、应用场景等全方位的持续发展。 感恩客户和伙伴的支持&#xff0c;让契约锁在2023年不断成长和进步。 感恩客户相伴成长 2023年&#xff0c;契约锁为“政府机关…

【2024.01.03】转行小白-刷css面试题01

总结 1.margin 负值问题 margin-top 和 margin-left 负值&#xff0c;元素向上、向左移动&#xff0c;自己动margin-right 负值&#xff0c;右侧元素左移&#xff0c;自身不受影响&#xff0c;别人动margin-bottom 负值&#xff0c;下方元素上移&#xff0c;自身不受影响 &am…

虾皮跨境电商选品有哪些规则

如何在虾皮&#xff08;Shopee&#xff09;平台上进行跨境电商选品在如今全球化的商业环境中&#xff0c;跨境电商已成为许多卖家拓展业务的重要途径。虾皮&#xff08;Shopee&#xff09;作为一家知名的跨境电商平台&#xff0c;为卖家提供了丰富的销售机会。然而&#xff0c;…

C++八股学习心得.3

1.C 数组 C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素&#xff0c;最高的地址对应最后一个…

图像识别原理

图像识别是计算机视觉领域中的一个重要任务&#xff0c;其目标是使计算机系统能够理解和解释图像中的信息。以下是图像识别的基本原理&#xff1a; 1. 数据采集&#xff1a;首先&#xff0c;需要获取图像数据。这可以通过摄像头、传感器、扫描仪等设备来实现。图像可以是静态的…