完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我想连接一个村田压电蜂鸣器上的20736个SoC
但我正在使用 3通道驱动发光二极管 W 帽子是我的选择吗? 我可以用哪根针来压电? 我可以使用PWM2YOUTPUGEnabLeYP28吗? //PATH=P / 16和PIN=P % 16 定义LeDyRice 26 定义Ledia Grand 14 定义Lead蓝色13 定义GPIOH端口(x)(x/16) 定义GPIOPIN(x)(x% 16) 定义GPIOPINπ28 28 /* 枚举 { //pWM0输出启用在P26上 PWM0XOutPuxEnabeLeP26= GPIOOXOUTPUtiVIABLE, /p/MW1在P27 N/A MOSI上的输出使能 pWM1OutPuxEnababLyp27=GPIOOXOUTPUTIVIABLE, /p28上的输出启用 PWM2YOUTPUGNEABABLE,P28=GPIOUA OUTPUTIVIABLE, /6/pWM2在P6N/A上的输出使能 PWM2YOUTPUGNEABABLE P6=(GPIOOUTPUTION启用(1和lt;&lt;4)); /p14的输出使能 PWM2YOUTPUTYNEABLE(P14)=(2和lt;lt;4); /p/MW3在P29 N/A上的输出使能 PWM3YOutPuxEnababyP29=GPIOOUPUTPUTIABLE, /p/MW3在P13上的输出使能 PWM3A OutPuxEnabeLeP13=(2和lt;lt;4) }; */ 定义定义的pWM0x输出 定义了一个绿色的pWM2a输出,p14//pWM3-输出。 定义了一个可编程的蓝色PWM3L输出单元p13//pWM2a输出端 1 p27 MoSi 36 P25味噌 37 p24 SCK 30 P3 CSA TC1 31 P2 CS2 TC2 第二语言 18 RX 19转 模数转换器 35 P8电池电压监测 以上来自于百度翻译 以下为原文 Hi I would like to connect a Murata piezo buzzer on a 20736 SOC But I am using 3 Channels to drive LED W hat are my option ? Which pin can I use to rive the piezo Can I use PWM2_OUTPUT_ENABLE_P28 ? // Port = P#/16 and PIN = P# % 16 #define LED_RED 26 #define LED_GREEN 14 #define LED_BLUE 13 #define GPIO_PORT(x) (x/16) #define GPIO_PIN(x) (x%16) #define GPIO_PIN_28 28 /* enum { /// PWM0 Output enable on P26 PWM0_OUTPUT_ENABLE_P26 = GPIO_OUTPUT_ENABLE, /// PWM1 Output enable on P27 N/A MOSI PWM1_OUTPUT_ENABLE_P27 = GPIO_OUTPUT_ENABLE, /// PWM2 Output enable on P28 PWM2_OUTPUT_ENABLE_P28 = GPIO_OUTPUT_ENABLE, /// PWM2 Output enable on P6 N/A PWM2_OUTPUT_ENABLE_P6 = (GPIO_OUTPUT_ENABLE | (1 << 4)), /// PWM2 Output enable on P14 PWM2_OUTPUT_ENABLE_P14 = (2 << 4), /// PWM3 Output enable on P29 N/A PWM3_OUTPUT_ENABLE_P29 = GPIO_OUTPUT_ENABLE, /// PWM3 Output enable on P13 PWM3_OUTPUT_ENABLE_P13 = (2 << 4) }; */ #define ENABLE_LED_RED PWM0_OUTPUT_ENABLE_P26 #define ENABLE_LED_GREEN PWM2_OUTPUT_ENABLE_P14 // PWM3_OUTPUT_ENABLE_P13 #define ENABLE_LED_BLUE PWM3_OUTPUT_ENABLE_P13 // PWM2_OUTPUT_ENABLE_P14 1 P27 MOSI 36 P25 MISO 37 P24 SCK 30 P3 CS_TC1 31 P2 CS_TC2 ## UART ## 18 RX 19 TX ADC 35 P8 Battery Voltage Monitoring |
|
相关推荐
3个回答
|
|
我不明白为什么不这样。您可以使用以下API来实现这一点。更多的细节在PWM。
GPIOXCOMPUILIN();//启用端口 PWMYSETRADE(1 & lt;lt;pWM2,0); PWMXSTATE(); 以上来自于百度翻译 以下为原文 I don't see why not. You can use the following APIs to do this. More details in pwm.h. gpio_configurePin();// to enable the port pwm_setReset(1 << PWM2, 0); pwm_start(); |
|
|
|
广州洋钒 发表于 2018-12-13 09:46 使用压电PKM13EPYH4000—A0 音乐音符频率与音阶的相关性是什么? 切换和初始化值? * PWM使用ACLK作为参考时钟,计数为 *在ACLK边沿从init值开始递增。当 *计数达到切换值,PWM通道输出反转 *当计数达到0x3FF时,输出再次反转。 *和计数包装到init值等。当50% *占空比被调用,确保init值是相同的。 *从肘节值作为肘节值的距离是0x3FF。 在树莓Pi上,API是直接的战争和人类可读的。 但不是恶意的。 这里是一个转换表 如何将标准注释转换为PWMLART启动(PWM2、PMUYLCK、0x2FF、0x200); Type结构 { UIT32 32 FRQX100; uin16 init; UTIN 16触发器; } pWMIN IITIOTGGLLY ValueSuthFuffTyOne; Char * SaleEthtoToIdx [37 ]={C5”,“C 5”,“D”,“D 5”,// 0 52325。 “E5”,“F5”,“F 5”,“G5”,// 4 65925 “G 5”、“A5”、“A 5”、“B5”、// 8 83061 “C6”,“C 5”,“D6”,“D 6”,// 12 104650。 “E6”,“F6”,“F”,“G6”,// 16 131851 “G 6”、“A6”、“A 6”、“B6”、// 20 166122 “C7”,“C 7”,“D7”,“D 7”,// 24 209300。 “E7”、“F7”、“F 7”、“G7”、/ 28 28 “G 7”、“A7”、“A 7”、“B7”// 32 332244 “C8”//36 418601 }; PWMIN ITITIONTGGLLYEVALYESYOFIONTRONS C5Y-toYB8[]= { { 52325, 45, 534 },//C5//0 { 55437, 99, 561 },//cα5// 1 { 58733, 151, 587 },//d5//2 { 62225, 200, 612 },//d×5// 3 { 65925, 246, 635 },//E5//4 { 69846, 290, 657 },//f5//5 { 73999, 331, 677 },//fα5// 6 { 78399, 370, 697 },//G5//7 { 83061, 407, 715 },//gα5// 8 { 88000, 441, 732 },//a5//9 { 93233, 474, 749 },//α5 / / 10 { 98777, 505, 764 },//b5//11 { 104650, 534, 779 },//C6 { 110873, 561, 792 },//cα5 { 117466, 587, 805 },//d6 { 124451, 612, 818 },//d×6// 15 { 131851, 635, 829 },//E6 { 139691, 656, 840 },//F6 { 147998, 677, 850 },//fα6 { 156798, 696, 860 },//G6 { 166122, 715, 869 },//gα6// 20 { 176000, 732, 878 },//a6 { 186466, 748, 886 },//α6 { 197553, 764, 894 },//B6 { 209300, 778, 901 },//C7 { 221746, 792, 908 },//cα7// 25 { 234932, 805, 914 },//d7 { 248902, 817, 920 },//dα7 { 263702, 829, 926 },//E7 { 279383, 840, 932 },//f7 { 295996, 850, 937 },//fα7// 30 { 313596, 860, 942 },//G7 { 332244, 869, 946 },//gα7 { 352000, 878, 951 },//a7 { 372931, 886, 955 },//α7 { 395107, 893, 958 },//B7//35 { 418601, 901, 962 },//C8/ /不支持压电-lt=4.01kHz。 { 443492, 908, 966 },//cα8 { 469863, 914, 969 },//d8 { 497803, 920, 972 },//dα8 { 527404, 926, 975 },//E8//40 { 558765, 931, 977 },//F8 { 591991, 937, 980 },//fα8 { 627193, 941, 982 },//G8 { 664488, 946, 985 },//gα8 { 704000, 950, 987 },//a8//45 { 745862, 954, 989 },//α8 { 790213, 958, 991 },//B8 }; 这里是树莓PI人类可读的API,然后可以使用翻译表C5Y-toYB8来实现。 SaleEth-ToaIdx 希望这有帮助! 哎呀!/urr/bin/python γ-*-编码:UTF-8** γ 蜂鸣器控制 进口皮皮奥 导入时间 进口再 蜂鸣器= 18 Tm=60/120×4 音乐尺度= { “C”:523,“C.*”:554,“D”:587,“D”:622, “E”:659,“F”:698,“F”:740,“G”:784, “G”:831,“A”:880,“A”:932,“B”:988 } PI1=PIPIO.PI-() Pi1.SETIX模式(蜂鸣器PIN,PIPIO输出) Pi1.HuldSurviv PWM(蜂鸣器引脚,0, 0) 尝试: 得分=“C4D4E4C4D4E2C4D8E16F16G8A4B2” 而LeN(分数)>0: m=Re.匹配(r ^ ^([a GA-g] +)([09+]),得分) 如果M: S=M组(1) D=M组(2) 得分=分数,条带(S+D) Friq=MixaliSosialS[S] Pi1.HuthLimePWM(BuZeRePixPin,FRQ,500000) 打印“%s:%d”%((s+d),FRQ) 睡眠时间(TM/FLASH(D)) 其他: 打破 除了KeyboardInterrupt: 孔型 清理工作 打印“完成”。 Pi1.HuldSurviv PWM(蜂鸣器引脚,0, 0) Pi1.SETIX模式(蜂鸣器PIN,PIPIO输入) PI1.停止() 以上来自于百度翻译 以下为原文 Using a Piezo PKM13EPYH4000-A0 What would be the correlation between Music note Frequency and toggle and init value ? * The PWM uses the ACLK as a reference clock and the counts are * incremented at the ACLK edges starting at init value. When the * count reaches toggle value, the PWM channel output is inverted * and when the count reaches 0x3FF, the output is inverted again * and the count wraps around to init value and so on. When a 50% * duty cycle is called for, ensure that init value is the same * distance from toggle value as toggle value is from 0x3FF. on Raspberry PI the API is straightforwar and human readable but not in Wiced. Here is a conversion table How to convert standard notes to pwm_start(PWM2, PMU_CLK, 0x2FF, 0x200); from typedef struct { UINT32 freqX100; UINT16 init; UINT16 toggle; } PWM_INIT_TOGGLE_VALUES_FOR_TONES; char *scale_to_idx[37] = { "C5", "C#5", "D", "D#5", // 0 52325 "E5", "F5", "F#5", "G5", // 4 65925 "G#5", "A5", "A#5", "B5", // 8 83061 "C6", "C#5", "D6", "D#6", // 12 104650 "E6", "F6", "F#", "G6", // 16 131851 "G#6", "A6", "A#6", "B6", // 20 166122 "C7", "C#7", "D7", "D#7", // 24 209300 "E7", "F7", "F#7", "G7", // 28 263702 "G#7", "A7", "A#7", "B7" // 32 332244 "C8" // 36 418601 }; PWM_INIT_TOGGLE_VALUES_FOR_TONES C5_to_B8[] = { {52325, 45, 534}, // C5 // 0 {55437, 99, 561}, // C#5 // 1 {58733, 151, 587}, // D5 // 2 {62225, 200, 612}, // D#5 // 3 {65925, 246, 635}, // E5 // 4 {69846, 290, 657}, // F5 // 5 {73999, 331, 677}, // F#5 // 6 {78399, 370, 697}, // G5 // 7 {83061, 407, 715}, // G#5 // 8 {88000, 441, 732}, // A5 // 9 {93233, 474, 749}, // A#5 // 10 {98777, 505, 764}, // B5 // 11 {104650, 534, 779}, // C6 {110873, 561, 792}, // C#5 {117466, 587, 805}, // D6 {124451, 612, 818}, // D#6 // 15 {131851, 635, 829}, // E6 {139691, 656, 840}, // F6 {147998, 677, 850}, // F#6 {156798, 696, 860}, // G6 {166122, 715, 869}, // G#6 // 20 {176000, 732, 878}, // A6 {186466, 748, 886}, // A#6 {197553, 764, 894}, // B6 {209300, 778, 901}, // C7 {221746, 792, 908}, // C#7 // 25 {234932, 805, 914}, // D7 {248902, 817, 920}, // D#7 {263702, 829, 926}, // E7 {279383, 840, 932}, // F7 {295996, 850, 937}, // F#7 // 30 {313596, 860, 942}, // G7 {332244, 869, 946}, // G#7 {352000, 878, 951}, // A7 {372931, 886, 955}, // A#7 {395107, 893, 958}, // B7 // 35 {418601, 901, 962}, // C8 // NOT SUPPORTED ON PIEZO <= 4.01KHz {443492, 908, 966}, // C#8 {469863, 914, 969}, // D8 {497803, 920, 972}, // D#8 {527404, 926, 975}, // E8 // 40 {558765, 931, 977}, // F8 {591991, 937, 980}, // F#8 {627193, 941, 982}, // G8 {664488, 946, 985}, // G#8 {704000, 950, 987}, // A8 // 45 {745862, 954, 989}, // A#8 {790213, 958, 991}, // B8 }; And here is the Raspberry PI human readable API that can then be implemented using the Translation table C5_to_B8 and scale_to_idx Hope this helps! #!/usr/bin/python # -*- coding: utf-8 -*- # # buzzer control - pigpio PWM import pigpio import time import re BUZZER_PIN = 18 tm = 60.0 / 120.0 * 4 musical_scale = { "C":523, "C#":554, "D":587, "D#":622, "E":659, "F":698, "F#":740, "G":784, "G#":831, "A":880, "A#":932, "B":988 } pi1 = pigpio.pi() pi1.set_mode(BUZZER_PIN, pigpio.OUTPUT) pi1.hardware_PWM(BUZZER_PIN, 0, 0) try: score = "C4D4E2C4D4E2C4D8E16F16G8A4B2" while len(score) > 0: m = re.match(r"^([A-Ga-g]+)([0-9]+)", score) if m: s = m.group(1) d = m.group(2) score = score.lstrip(s + d) freq = musical_scale pi1.hardware_PWM(BUZZER_PIN, freq, 500000) print "%s : %d" % ((s + d), freq) time.sleep(tm / float(d)) else: break except KeyboardInterrupt: pass # cleanup print "done." pi1.hardware_PWM(BUZZER_PIN, 0, 0) pi1.set_mode(BUZZER_PIN, pigpio.INPUT) pi1.stop() |
|
|
|
样例PMMYTRONE应用程序对如何进行这种转换给出了一些想法。在这个应用程序中,它给出了一个5个频率的例子。 空隙音色(空隙) { 开关(TuneSeCurrun状态) { 案例: /PWM通道2为P28,蜂鸣器与P28连接。 这将使我们达到1.017kHz。 PWMLART启动(PWM2,PMUYLCK,0x2FF,0x200); 断裂; 1例: 这将使我们达到2.04kHz。 PWMLART启动(PWM2,PMUYLCK,0x37 f,0x300); 断裂; 案例: 这将使我们达到3.05kHz。 PWMLART启动(PWM2,PMUY-CLK,0x3AA,0x355); 断裂; 盒体状态: 这将使我们达到4.01kHz。 PWMLART启动(PWM2,PMUYLCK,0x3BF,0x37 E); 断裂; 盒体状态: 这将使我们达到80.3kHz。 PWMLART启动(PWM2,PMUYLCK,0x3E0,0x3BF); 断裂; 违约: 断裂; } 以上来自于百度翻译 以下为原文 The sample pwm_tones app gave some idea on how to do this conversion. In this app, it gave an example for 5 frequencies. void tones_play_tone(void) { switch(tones_current_state) { case TONES_STATE_0: // PWM channel 2 is P28 and the buzzer is connected to P28 // This will give us ~1.017KHz pwm_start(PWM2, PMU_CLK, 0x2FF, 0x200); break; case TONES_STATE_1: // This will give us ~2.04KHz. pwm_start(PWM2, PMU_CLK, 0x37F, 0x300); break; case TONES_STATE_2: // This will give us ~3.05KHz pwm_start(PWM2, PMU_CLK, 0x3AA, 0x355); break; case TONES_STATE_3: // This will give us ~4.01KHz. pwm_start(PWM2, PMU_CLK, 0x3BF, 0x37E); break; case TONES_STATE_4: // This will give us ~8.03KHz. pwm_start(PWM2, PMU_CLK, 0x3E0, 0x3BF); break; default: break; } |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2086 浏览 1 评论
1837 浏览 1 评论
3652 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1777 浏览 6 评论
1526 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
533浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
388浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
422浏览 2评论
368浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
882浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 09:33 , Processed in 0.829311 second(s), Total 51, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号