完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位前辈:
我最近项目中需要给大鼠进行无线操控刺激,现在买的是Goouuu-ESP32模块开发板,用的arduino编程,目的是想通过手机蓝牙串口助手发送不同的指令(A,B为左侧两种不同刺激,a,b为右侧两种不同刺激,S为停止刺激), 最终使板子端口输出不同的脉冲,下面这段代码就是我已经写好的,程序调试没有问题,但大部分时候手机发送指令后总是没有响应,或者偶尔有响应了但再发送其它指令后没有任何的变化,实在不清楚问题出在哪了,还望各位前辈指点下,先谢谢了! 我刚开始学习arduino,ESP32这个开发板应该自带了蓝牙模块了,但我不会用,所以只能在外围端口重新连接了一个蓝牙模块。 int input1 = 4; // 定义pin 4 向 input1 输出 int input2 = 16; // 定义pin 16 向 input2 输出 int input3 = 17; // 定义pin 17 向 input3 输出 int input4 = 5; // 定义pin 5 向 input4 输出 void setup() { Serial.begin (9600); pinMode(input1, OUTPUT); pinMode(input2, OUTPUT); pinMode(input3, OUTPUT); pinMode(input4, OUTPUT); } void loop() { digitalWrite(input1, LOW); digitalWrite(input2, LOW); digitalWrite(input3, LOW); digitalWrite(input4, LOW); int x = 1; char n,S,A,B,a,b,str = Serial.read(); while (Serial.available() > 0) { switch (str) { //左侧刺激(Left) case 'A': //刺激1占空比5% while (x) { digitalWrite(input1, HIGH); delay(0.5); digitalWrite(input1, LOW); digitalWrite(input2, HIGH); delay(0.5); digitalWrite(input2, LOW); delay(19); n = Serial.read(); if (n == S) { x = 0; } } break; case 'B': //刺激2占空比10% while (x) { digitalWrite(input1, HIGH); delay(1); digitalWrite(input1, LOW); digitalWrite(input2, HIGH); delay(1); digitalWrite(input2, LOW); delay(18); n = Serial.read(); if (n == S) { x = 0; } } break; case 'a': //刺激1占空比5% while (x) { digitalWrite(input3, HIGH); delay(0.5); digitalWrite(input3, LOW); digitalWrite(input4, HIGH); delay(0.5); digitalWrite(input4, LOW); delay(19); n = Serial.read(); if (n == S) { x = 0; } } break; case 'b': //刺激2占空比10% while (x) { digitalWrite(input3, HIGH); delay(1); digitalWrite(input3, LOW); digitalWrite(input4, HIGH); delay(1); digitalWrite(input4, LOW); delay(18); n = Serial.read(); if (n == S) { x = 0; } } break; case 'S': //刺激停止! x = 1; while (x) { digitalWrite(input1, LOW); digitalWrite(input2, LOW); digitalWrite(input3, LOW); digitalWrite(input4, LOW); Serial.println("Setting Bluetooth parameters"); n = Serial.read(); if (n == S) { x = 1; } else x=0; } break; default: digitalWrite(input1, LOW); digitalWrite(input2, LOW); digitalWrite(input3, LOW); digitalWrite(input4, LOW); break; } } } |
|
相关推荐
1个回答
|
|
这样写就可以用自带的蓝牙
#include"BluetoothSerial" BluetoothSerial SerialBT;//跟Serial用法差不多 void setup() { SerialBT.begin("名字"); } |
|
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
10418 浏览 0 评论
60659 浏览 77 评论
6001 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
36942 浏览 219 评论
10057 浏览 0 评论
535浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
1310浏览 1评论
1452浏览 1评论
654浏览 0评论
574浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 09:38 , Processed in 0.497859 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号