嵌入式实训day5

2024-06-16 21:44
文章标签 实训 day5 嵌入式

本文主要是介绍嵌入式实训day5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、

from machine import Pin
import time
# 定义按键引脚控制对象
key1 = Pin(27,Pin.IN, Pin.PULL UP)
key2 = Pin(26,Pin.IN, Pin.PULL UP)led1 = Pin(15,Pin.ouT, value=0)
led2 = Pin(2,Pin.ouT, value=0)
led3 = Pin(0,Pin.ouT, value=0)
# 定义key1按键中断处理函数
def key1 irq(key1):time.sleep_ms(10)# 按键去抖if key1.value()== 0:led1.value(not led1.value())
#定义key2按键中断处理函数
def key2 irq(key2):time.sleep_ms(10)# 按键去抖if key2.value()== 0:led2.value(not led2.value())if __name__=="__main__":key1.irq(key1 irq, Pin.IRQ FALLING)key2.irq(key2_irq, Pin.IRQ FALLING)while True:led3.value( not led3.value())time.sleep ms(500)

2、

from machine import Pin
from machine import PWM
import time
if  __name__=="__main__":beep_pwm=PWM(Pin(4),freq=2700,duty=512)
#     beep_pwm.duty(512)
#     time.sleep(1)
#     beep pwm.deinit()print("play music:")# 音符对应的频率music_freq_list=[0,#None1046,#11175,#21318,#31379,#41568,#51760,#61976,#7395,#低音5]# 两只老虎音乐简谱music_note_list=[1,2,3,1,1 2 3 1,3,4,5,3,4,5,5,6,5,4 3 1,5,6,5,4 3 1,1,8,1,1 8,1,]# 曲谱时值(每个音符是几个节拍)music_beat_list =[4,4,4,4,4,4,4,4,4,4,8,4,4,8,3,1,3,1,4,4,3,1,3,1,4,4,4,4,8,4,4,8,]# 遍历简谱,让beep播放对应频率的声音for i in range(len(music_note_list)):music_note=music_note_list[i]# 取出第i个音符music_freq=music_freq_list[music_note]# 音符对应的频率music beat=music_beat_list[i]* 125#每个节拍时间125毫秒# 控制蜂鸣器发音beep_pwm.freq(music_freg)time.sleep ms(music_beat)#停止print("stop")beep_pwm.deinit()

3、

from machine import Pin
from machine import ADc
from machine import Timer#定义ADC对象,使用34号引脚作为输入通道(不能随时使用其他引脚)
adc = ADC(Pin(34))
# 配置11DB衰减器,增大测量范围
adc.atten(ADC.ATTN_11DB)
def timer0_irg(timer0):# 读取ADC返回的数字值,默认分辨率12,数字范围0~4095adc_value = adc.read()print("ADC转换的数字值:%d"% adc_value)# 根据数字值,计算模拟值adc_vol=3.3*adc_value /4095print("ADC检测到的电压值:%.2f"% adc_vol)if __name__== "__main__":timer0 =Timer(0)timer0.init(period=1000,mode=Timer.PERIODIC, callback=timer0_irq)while True :pass

4、

from machine import Pin, ADc, Timen
adc = ADC(Pin(34))# 连接光敏模块A0引脚
adc.atten(ADC.ATTN_11DB)
def read_lux(timer0):# 读取ADC的值(光敏电阻转换数字值)adc_value = adc.read()# 估算光照强度lux=100-(100*adc_value / 4095)print("lux:%d"% lux)if __name__=='__main__':timer0 = Timer(0)timer0.init(period=1000,mode=Timer.PERIODIC, callback=read_lux)while True :pass

5、

from machine import Pin, ADc, Timer
#from time import sleepadc = ADC(Pin(34))# 连接A0
adc.atten(ADC.ATTN _11DB)rain= Pin(26,Pin.IN, Pin.PULL_UP)# 连接DOdef read_raindrop(timer0):# 读取A0输出值:0~4095rain_value = adc.read()print("A0=%d" % rain_value)# 读取数字输出:0/1print("Do=%d"% rain.value())# A0输出值达到阈值时,输出0if __name__=="__main__":timer0 =Timer(0)timer0.init(period=1000,mode=Timer.PERIODIC, callback=read_raindrop)while True :pass

6、

from machine import Pin
def shock_irq(pin):print("检测到振动!")
if __name__=="__main__":shock_pin =Pin(15,Pin.IN, Pin.PULL_DOWN)shock_pin.irq(trigger=Pin.IRQ_RISING, handler=shock_irq)while True:pass

这篇关于嵌入式实训day5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067631

相关文章

可视化实训复习篇章

前言: 今天,我们来学习seaborn库可视化,当然,这个建立在Matplotlib的基础上,话不多说,进入今天的正题吧!当然,这个是《python数据分析与应用》书中,大家有需求的可以参考这本书。 知识点: Matplotlib中有两套接口分别是pyplot和pyylab,即绘图时候主要导入的是Matplotlib库下的两个子模块(两个py文件)matplotlib.pyplot和matp

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

LoRaWAN在嵌入式网络通信中的应用:打造高效远程监控系统(附代码示例)

引言 随着物联网(IoT)技术的发展,远程监控系统在各个领域的应用越来越广泛。LoRaWAN(Long Range Wide Area Network)作为一种低功耗广域网通信协议,因其长距离传输、低功耗和高可靠性等特点,成为实现远程监控的理想选择。本文将详细介绍LoRaWAN的基本原理、应用场景,并通过一个具体的项目展示如何使用LoRaWAN实现远程监控系统。希望通过图文并茂的讲解,帮助读

嵌入式学习——数据结构(哈希、排序)——day50

1. 查找二叉树、搜索二叉树、平衡二叉树 2. 哈希表——人的身份证——哈希函数 3. 哈希冲突、哈希矛盾 4. 哈希代码 4.1 创建哈希表 4.2  5. 算法设计 5.1 正确性 5.2 可读性(高内聚、低耦合) 5.3 健壮性 5.4 高效率(时间复杂度)时间复杂度越低,效率越高, 5.5 低储存(空间复杂度)空间复杂度越低,存储空间越少 6.排序算法 6.1 冒

上位机图像处理和嵌入式模块部署(mcu和swd接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         最近学习mcu的时候,接触了不少调试器,这里面有daplink、st-link v2、j-link v9。虽然模块的形状可能不太一样,但是硬件的连线都差不多,都是mcu上的3.3v、clk、dio和gnd四根连线。出于好奇,今天花了点时间了解了一下debug port、sw

嵌入式linux系统中LCD屏驱动实现思路分析

在 Linux 下 LCD 的使用更加广泛,在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。接下来就来学习一下如何在 Linux 下驱动 LCD 屏幕。                           第一:Framebuffer设备简介       先来回顾一下裸机的时候 LCD 驱动是怎么编写的,裸机 LCD 驱动编写流程如下: ①、初始化 I.MX6U

【进阶篇-Day5:JAVA常用API的使用(Math、BigDecimal、Object、包装类等)】

目录 1、API的概念2、Object类2.1 Object类的介绍2.2 Object的toString()方法2.3 Object的equals()方法2.4 Objects概述 3、Math类4、System类5、BigDecimal类6、包装类6.1 包装类的概念6.2 几种包装类(1)手动转换包装类:(2)自动转换包装类:(3)Integet常用方法:(4)练习: 1

交通大数据分析与挖掘实训【对提供的CSV格式数据使用pandas库分析-Matplotlib库绘图】

背景: 《交通大数据分析与挖掘》实训 指    导   书  编著 二○二四年五月 一、实训目的 1、掌握python开发环境(如Anaconda)及Numpy等常见第三方库的使用; 2、熟悉Anaconda在线编程平台,学会基本的python程序编写、编译与运行程序的方法及函数语句; 3、学会导入不同格式数据文件,掌握不同类型数据的基本处理和分析思路; 4、熟练运用所学第三方库,结合相

嵌入式中逻辑分析仪与示波器的基本原理

大家好,今天主要给大家分享一下,嵌入式中如何使用逻辑分析仪和示波器的方法,希望对大家有所帮助。                 https://dreamsourcelab.cn/ 第一:什么是逻辑分析仪      是否遇到使用示波器分析数字电路的冏境:深度不够,时间太短,无法抓到想要的波形,没有协议内容解析?      逻辑分析仪是专门针对数字信号的调试工具,可长时间

针对ARM64嵌入式系统的Linux内核参数优化

文章目录 0. 概要1. 网络性能优化开启TCP连接重用减少TCP连接超时时间 2. 文件系统和I/O优化提高文件描述符限制 3. 内存管理优化提高内存可用性 4. 内核调度优化调整CFS调度器的调度周期 5. 完整配置文件 0. 概要 在ARM64架构的嵌入式系统中,系统性能和资源优化至关重要。这类系统通常在资源受限的环境下运行,如物联网设备、移动设备等。合理配置Linux