完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大佬,arduino怎么写才能输出15khz的方波?
各位帮看看代码应该怎么改 int IN1 = 15; int pin = 3; int IN2 = 16; int IN3 = 17; int pin = 5; int IN4 = 18; void stop(void) { digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); pinMode(pin,OUTPUT); } void advance_l(void) { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); /* digitalWrite(EN1,15); digitalWrite(EN2,15);*/ } void advance_r(void) { digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); /*digitalWrite(EN1,15); digitalWrite(EN2,15);*/ } void back_off_l(void) { digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); /*digitalWrite(EN1,15); digitalWrite(EN2,15); */ } void back_off_r(void) { digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); /*digitalWrite(EN1,15); digitalWrite(EN2,15);*/ } void setup(void) { int i; for(i=2;i<=7;i++) pinMode(i, OUTPUT); /*digitalWrite(EN1,HIGH); digitalWrite(EN2,HIGH);*/ Serial.begin(19200); } void loop(void) { char val = Serial.read(); if(val!=-1) { switch(val) { case 'w'://前进 advance_l(); advance_r(); break; case 's'://后退 back_off_l(); back_off_r(); break; case 'a'://左转 advance_r(); back_off_l(); break; case 'd'://右转 advance_l(); back_off_r(); break; digitalWrite(pin, HIGH); delayMicroseconds(100); digitalWrite(pin, LOW); delayMicroseconds(1000 - 100); } delay(30); } else stop(); } |
|
相关推荐
2个回答
|
|
|
|
|
|
可以采用定时器写出你需要的方波,你可以看一下PWM方面的内容就能解决这个问题
|
|
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
10359 浏览 0 评论
60659 浏览 77 评论
5951 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
36011 浏览 219 评论
10022 浏览 0 评论
481浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
1234浏览 1评论
1380浏览 1评论
595浏览 0评论
715浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:14 , Processed in 0.548315 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号