|
简易可调方波发生器 X( Q4 }5 ~, A1 b+ G 硬件: ESP- WROOM -32 一块 约21元9 q7 \: D8 n7 v) w0 c! F3 j 旋转编码器 一个 约2元3 Q3 r7 }* J/ @0 R# E3 e 软件:upycraft 1.0 代码如下: <#square wave ESP32 20181222.py q; ^& Y, j6 Z) ]% b from machine import Pin,PWM import time- {) y+ x" ^3 g4 G% h 1 G! j, k# I8 h) }( u8 B plus = oldplus = 0 step = 10 #步进值 >=1 stepmax = 10000 #最高频率 <= 78000HZ# B" F; g# q7 g7 _0 a/ E% Y stepmin = 100 #最低频率 >=1 IN1 = Pin( 25, Pin.IN , Pin.PULL_UP) # 脚为旋转编码器上拉输入IN1' r& B1 K; }" d R( V4 `) f4 w IN2 = Pin( 26, Pin.IN , Pin.PULL_UP) # 脚为旋转编码器上拉输入IN2: n( A; o# V" [# N ^; r' H while 1: if ( IN1.value() & IN2.value() ): #当IN1及IN2均为高电平时开始计数准备7 _$ {" b2 ]. H+ J- S& B time.sleep_ms( 5 ) if IN1.value() < 1 :' [8 i3 X1 j+ B2 }- [ plus = plus + step #当IN1为低电平时正计数 $ d! U. R/ p4 d& e8 f. c if plus > stepmax:$ } Q, P2 J8 P+ O) F u( ] plus = stepmax if IN2.value() < 1 : plus = plus - step #当IN2为低电平时倒计数$ r$ {% A- T! q* S4 V; W if plus < stepmin: plus = stepmin if plus != oldplus:. ^- _( N$ A* k" t! K. G } oldplus = plus pwmn = PWM( Pin( 23 ), freq = plus, duty = 512 )" W+ R3 V/ y6 L print( plus ) #打印监视) T4 [7 M$ J, F$ ^% p; [! V& v% ` #time.sleep_ms( 50 ) #可不用 >5 r& e8 o( L* h) f' H 已用于步进电机的最佳数据测试中。+ T9 o! H3 K# |8 R 后续再加一块Nokia5110 lcd显示屏作为显示,也用upycraft 1.0编程的。8 {: T/ U( a5 X1 ~ 用其他的同类低端器件也能实现上述目的,因后续需要用于其他方面及WIFI和BLE等,所以选了ESP32芯片。" i1 P/ }; e( u' F 望引玉! # g' f: T( W' ^+ ?5 [) G 谢谢!* y2 y6 t7 \* L% l+ U: O! o |
微信公众号
手机版
图像发不出来,发个链接。
https://www.stmcu.org.cn/module/forum/thread-618860-1-1.html
另外:今天已发了一幅旋转编码器图和一个旋转编码器图链接,发不上来。