智能垃圾桶
这个小东西自己搞着玩,顺便锻炼一下自己。
首先,肯定是配置STM32CUBEMX:
第一步:配置系统时钟
第二步:配置RCC
第三步:配置时钟
至于怎么配置时钟建议看看这位大哥的
我这里用的是时钟3,主要是给超声波用的。
第四步:配置超声波
首先是给引脚 我这里是 Trig (PA4)Echo(PA5),他的原理请看图下:
测试距离=(高电平时间*声速(340M/S))/2
下面附上超声波代码
第六步:配置蓝牙
我用的蓝牙模块是JDY-31,其实蓝牙的用法和串口差不多的,配置的话也是配置串口:
我这里用的是串口1,Mode:Asynchronous(异步通信),波特率便是 115200,Data Direction:我选的是接收并发送。
蓝牙配置的话
打开串口调试手(商家配的),用USB转TTL模块 插在电脑进行调配,接线的话和一般串口一样
RX ---------TX
TX -------- RX
随后根据AT指令进行调试即可
还有一个手机APP用来连接蓝牙的去应用商店 搜 SPP即可。
接下来就是重定向printf
打开usart.c
复制上去 记得在 usart.h 文件上也要声明。
最重要的是。。。。。。。一定要加上头文件 #include <stdio.h>,要不然会报错!!!!!
还有就是 手机连上蓝牙之后,电脑就会发不出东西的了》》
第七步:舵机(SG-90)
舵机的话相对简单一点,只需要配置PWM 和调用2个函数就行
打开时钟2 ,选择内部时钟 ,选择通道1 , SG90这个舵机需要一个20ms 的时钟周期,来计算占空比。
.数据:
0.5ms-------------0度; 2.5% 对应函数中占空比为250
1.0ms------------45度; 5.0% 对应函数中占空比为500
1.5ms------------90度; 7.5% 对应函数中占空比为750
2.0ms-----------135度; 10.0% 对应函数中占空比为1000
2.5ms-----------180度; 12.5% 对应函数中占空比为1250
这个就是数据手册里面的数据。
可是我自己的项目实际调试中 占空比,比较不正常,有大佬看到的知道原因的话,希望可以告诉小弟一下。。谢谢各位老大!!!
随后调用一个函数 打开 PWM
最后一个函数是用来设置占空比的,
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,2300);// 我这是 0°
到这里就配置搞好了,附上总图
‘
至于具体代码各位大佬可以在这里下载:
https://github.com/hpjzzh/-smart-trash-canhttps://github.com/hpjzzh/-smart-trash-can