arduino ESP32 002 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] // 这两个属性告诉 Rust 编译器不使用标准库(no_std),同时不使用主函数(no_main)。
#![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

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值