ESP32(MicroPython) 矩阵键盘电子琴+RGB灯

这篇具有很好参考价值的文章主要介绍了ESP32(MicroPython) 矩阵键盘电子琴+RGB灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ESP32(MicroPython) 矩阵键盘电子琴+RGB灯

 本程序相比上一个矩阵键盘电子琴程序增加了一个矩阵键盘,并把三个矩阵键盘的同一行相连,扫描周期缩短到40ms。增加RGB灯带,每个周期刷新一个灯(随机颜色)。

代码如下

#导入Pin模块
from machine import Pin
import time
from machine import PWM
from neopixel import NeoPixel
import random
#扬声器接13脚和GND,矩阵键盘接线如下
# 创建行的对象
row1 = Pin(12, Pin.OUT)
row2 = Pin(14, Pin.OUT)
row3 = Pin(27, Pin.OUT)
row4 = Pin(26, Pin.OUT)
row_list = [row1, row2, row3, row4]  # 将创建的行对象放到list里面
 
# 创建列的对象
col1 = Pin(15, Pin.IN, Pin.PULL_DOWN)
col2 = Pin(2, Pin.IN, Pin.PULL_DOWN)
col3 = Pin(4, Pin.IN, Pin.PULL_DOWN)
col4 = Pin(16, Pin.IN, Pin.PULL_DOWN)
col5 = Pin(17, Pin.IN, Pin.PULL_DOWN)
col6 = Pin(5, Pin.IN, Pin.PULL_DOWN)
col7 = Pin(18, Pin.IN, Pin.PULL_DOWN)
col8 = Pin(19, Pin.IN, Pin.PULL_DOWN)
col9 = Pin(25, Pin.IN, Pin.PULL_DOWN)
col10 = Pin(33, Pin.IN, Pin.PULL_DOWN)
col11 = Pin(32, Pin.IN, Pin.PULL_DOWN)
col12 = Pin(21, Pin.IN, Pin.PULL_DOWN)
col_list = [col1, col2, col3, col4,col5, col6, col7, col8,col9, col10, col11, col12]  # 将创建的列对象放到list里面
 
pin=22
rgb_num=30
rgb_led=NeoPixel(Pin(pin,Pin.OUT),rgb_num) 
d=0
#程序入口
while True:
    e=10
    d+=1
    if d==30:
        d=0
    a=random.randint(0,255)
    b=random.randint(0,255)
    c=random.randint(0,255)
    rgb_led[d]=(a, b, c)
    rgb_led.write()
    for i, row in enumerate(row_list):  # 遍历序号和对应的值 # 目的:只让某一行通电,其他的行都是0
        for temp in row_list:  # 遍历行对象
            temp.value(0)  # 给每一个行对象赋值
        row.value(1)
        time.sleep_ms(10)  # 键盘通电后,延迟一小会
        for j, col in enumerate(col_list):  # 遍历序号和对应的值
            if col.value() == 1:   # 给每一个列对象赋值
               if i==0 and j==0:
                   e=22
               elif i==1 and j==0:
                   e=23
               elif i==2 and j==0:
                   e=24
               elif i==3 and j==0:
                   e=25
               elif i==0 and j==1:
                   e=26
               elif i==1 and j==1:
                   e=27
               elif i==2 and j==1:
                   e=31
               elif i==3 and j==1:
                   e=32
               elif i==0 and j==2:
                   e=33
               elif i==1 and j==2:
                   e=34
               elif i==2 and j==2:
                   e=35
               elif i==3 and j==2:
                   e=36
               elif i==0 and j==3:
                   e=37
               elif i==1 and j==3:
                   e=41
               elif i==2 and j==3:
                   e=42
               elif i==3 and j==3:
                   e=43
               elif i==0 and j==4:
                   e=44
               elif i==1 and j==4:
                   e=45
               elif i==2 and j==4:
                   e=46
               elif i==3 and j==4:
                   e=47
               elif i==0 and j==5:
                   e=51
               elif i==1 and j==5:
                   e=52
               elif i==2 and j==5:
                   e=53
               elif i==3 and j==5:
                   e=54
               elif i==0 and j==6:
                   e=55
               elif i==1 and j==6:
                   e=56
               elif i==2 and j==6:
                   e=57
               elif i==3 and j==6:
                   e=61
               elif i==0 and j==7:
                   e=62
               elif i==1 and j==7:
                   e=63
               elif i==2 and j==7:
                   e=64
               elif i==3 and j==7:
                   e=65
               elif i==0 and j==8:
                   e=66
               elif i==1 and j==8:
                   e=67
               elif i==2 and j==8:
                   e=71
               elif i==3 and j==8:
                   e=72
               elif i==0 and j==9:
                   e=73
               elif i==1 and j==9:
                   e=74
               elif i==2 and j==9:
                   e=75
               elif i==3 and j==9:
                   e=76
               elif i==0 and j==10:
                   e=77
               elif i==1 and j==10:
                   e=81
               elif i==2 and j==10:
                   e=82
               elif i==3 and j==10:
                   e=83
               elif i==0 and j==11:
                   e=84
               elif i==1 and j==11:
                   e=85
               elif i==2 and j==11:
                   e=86
               elif i==3 and j==11:
                   e=87        
    a=0
    t=0
    if e%10==1 :
      a=4186
    elif e%10==2 :
      a=4698
    elif e%10==3 :
      a=5274
    elif e%10==4 :
      a=5587
    elif e%10==5 :
      a=6272
    elif e%10==6 :
      a=7040
    elif e%10==7 :
      a=7901
    if e//10<9 :
      t=e//10
      f=9-t
      t=2**f
      a=round(a/t)
    if e<11 :
        a=1
    beep=PWM(Pin(13),freq=a,duty=512)
            
 文章来源地址https://www.toymoban.com/news/detail-486988.html

到了这里,关于ESP32(MicroPython) 矩阵键盘电子琴+RGB灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用NE555设计一个简易电子琴

    今天来分享个使用NE555制作一个电子琴。 首先看到音调和频率的关系  NE555电子器的原理就是利用不同的按键使NE555发出不同频率的方波,从而产生不同的音调 NE555产生方波电路如下: 接上喇叭后就能发出不同的音调了 其中RB用不同的电阻加按键代替,当按下相应的按键后,

    2024年02月11日
    浏览(51)
  • 嵌入式系统项目设计——电子琴(完整代码)

    内容摘自上学期嵌入式系统课程设计最终的实验报告,我作为小组组长负责代码部分的编写,与上一个实验相比,使用了相同的硬件,所以硬件示意图完全相同,实现的功能不同但原理类似。因为CSDN不支持上传word资料,所以我就摘录下来写进文章里了,希望可以帮助到你。

    2024年02月08日
    浏览(52)
  • FPGA项目(4)--基于FPGA的电子琴

            本次设计是基于FPGA的电子琴,设计要求如下:          本次我采用modelsim仿真的方式验证设计功能的正确性。工作时钟选择50MHZ。         所谓电子琴,本质就是用按键控制蜂鸣器发出不同频率的声音。我们平时所接触的音乐,从低音到高音,从哆瑞咪发

    2024年02月04日
    浏览(43)
  • 【Proteus仿真】【Arduino单片机】简易电子琴

    本项目使用Proteus8仿真Arduino单片机控制器,使用无源蜂鸣器、按键等。 主要功能: 系统运行后,按下K1-K7键发出不同音调。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网

    2024年02月06日
    浏览(50)
  • FPGA用vhdl语言设计简单硬件电子琴设计

    硬件电子琴设计 目录 一、 设计内容简介 二、系统框图 三、代码说明 四、 管脚及管脚对应图 一、设计 内容简介 当按下琴键时,扬声器发出该琴键对应的音阶,同时数码管显示音阶数字。设置了一个模式切换键可选择低、中低、中高、高音4档音阶,每按下一次则可切换不

    2024年02月04日
    浏览(40)
  • 29、基于51单片机简易电子琴(有存储功能)系统设计

     随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器等等也很

    2024年02月03日
    浏览(50)
  • 基于VHDL的FPGA简易电子琴(实现三音阶切换与弹奏)

    目录 一、设计内容简介 二、系统框图 1、简易框图  2、总电路图(quarters软件自动生成) 三、代码说明  1、总体代码 2、代码思路 四、仿真实现结果与分析总结 1、仿真思路 2、仿真建立过程 3、仿真结果检验 ​ (1)静音功能检验 (2)琴键功能检验 (3)模式选择功能检验

    2024年01月16日
    浏览(40)
  • 51单片机项目(9)——基于51单片机的电子琴设计

    简易电子琴设计设计内容: 1.用矩阵键盘代表琴键,至少能弹出8个音符,分别是:音符1.23.4.,5,6,  2.键按下的时间长短表征节拍的长短,用蜂鸣器发出声音 3.数码管显示出当前音符 4.音量可调 (代码及其工程文件放在最后) 电路图如下: 51单片机电子琴是一种基于51单片机(

    2024年02月09日
    浏览(49)
  • 基于51单片机的7键电子琴音乐播放器proteus

    本设计仅供参考 基于51单片机的7键电子琴音乐播放器proteus(仿真+源码+原理图) 原理图:Altium Designer 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号C0036 有需要学习可以点击下方链接下载 资料下载链接 设计介绍: 本次设计首先对单片机设计简易电子琴仔细分

    2024年02月11日
    浏览(43)
  • 基于AT89C51单片机的电子琴设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87848430?spm=1001.2014.3001.5503 源码获取 主要内容: 设计一个简易的电子琴,至少具有可以弹奏并发出不同的音调。电子琴方案主要分为实验的系统分析,具体的实施方案,以及最终的实验检验,最终

    2024年02月07日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包