简易可调方波发生器1 S2 Y3 z9 X! [" q 硬件:; J- @" d. i* E# M+ ]2 ~ ESP- WROOM -32 一块 约21元 1 G: T7 j9 x* u e5 c3 D 旋转编码器 一个 约2元$ B+ W+ g0 ^0 w$ R1 ` ; W: G* ?4 f% R8 m1 n7 X, p6 G$ u 软件:upycraft 1.0 代码如下: <#square wave ESP32 20181222.py from machine import Pin,PWM: | s6 D8 x. G* c4 q import time & V6 _0 m" u8 `! P, J0 i plus = oldplus = 0 step = 10 #步进值 >=1 stepmax = 10000 #最高频率 <= 78000HZ stepmin = 100 #最低频率 >=1 IN1 = Pin( 25, Pin.IN , Pin.PULL_UP) # 脚为旋转编码器上拉输入IN1 IN2 = Pin( 26, Pin.IN , Pin.PULL_UP) # 脚为旋转编码器上拉输入IN2 0 X% _" G. W2 o/ ]6 B6 `) H) E while 1: if ( IN1.value() & IN2.value() ): #当IN1及IN2均为高电平时开始计数准备1 h, q! P: \# D0 B$ B9 j time.sleep_ms( 5 )7 |6 U. ?. L$ a5 Z. | if IN1.value() < 1 :* N% @5 y! ?1 U, g! U5 ~3 a plus = plus + step #当IN1为低电平时正计数 if plus > stepmax: plus = stepmax' l. _ g2 H- \0 }* {, {" ? if IN2.value() < 1 :! r+ P- Q! n: _' U plus = plus - step #当IN2为低电平时倒计数 if plus < stepmin:0 K+ p% [8 A1 ?; Z plus = stepmin- Z; V. I8 z) K! n" T p# u if plus != oldplus: oldplus = plus pwmn = PWM( Pin( 23 ), freq = plus, duty = 512 ) print( plus ) #打印监视% [- {) O4 I5 K" v( T #time.sleep_ms( 50 ) #可不用 >+ W; H% T5 y- F( z 已用于步进电机的最佳数据测试中。 后续再加一块Nokia5110 lcd显示屏作为显示,也用upycraft 1.0编程的。 用其他的同类低端器件也能实现上述目的,因后续需要用于其他方面及WIFI和BLE等,所以选了ESP32芯片。4 b: {7 _7 t1 Q" i # o P5 \/ t$ Y% p5 Z 望引玉! 谢谢!7 m% s, c. Z4 J4 U# b7 t5 v 7 B( O- M/ x# g% \- E: T |
图像发不出来,发个链接。
https://www.stmcu.org.cn/module/forum/thread-618860-1-1.html
- M; R2 |+ Z5 }# P, {' z
另外:今天已发了一幅旋转编码器图和一个旋转编码器图链接,发不上来。