基于MSP430F5529的两路寻迹小车附OLED显示代码
导语
基于MSP430的寻迹小车,寻迹小车主要涉及到I/0口的输入输出,以及定时器产生PWM,个人认为,基本上不管是玩Arduino、C51、STM32或者MSP430单片机都应该必须会的。
主要器件
在这里笔者分享一下自己做的寻迹小车:
-
主控使用Ti官方的MSP430F5529,相比G2553,F5529引脚功能比较多些,其他型号的单片机都可以参考
2.两个寻迹传感器,TCRT5000红外反射传感器,检测到黑线或者悬空输出高电平
3.一个TB6612电机驱动,驱动两路4个130小电机足够了
4.0.96寸OLED显示,I2c通信协议,显示内容可以自行设置
电路接线放在程序注释里了
主函数
main函数代码如下
/************接线******************/
//OLED:
// SCL--P3.5,SDA--P3.6
//
//L298N:
// 左电机:IN1--P1.4,IN2--P1.5,PWMA--P1.2
// 右电机:IN3--P3.3,IN4--P3.4,PWMB--P1.3
//
//双路寻迹传感器: 左:---P4.1
// 右:---P4.0
#include <msp430.h>
#include <motor.h>
#include "oled.h"
#include "type.h"
#include "bmp.h"
void OLED_Display();
void Delay()
{
volatile unsigned int i;
for(i=50000;i>0;i--); // Delay
}
int main(void)
{
WDTCTL = WDTPW+WDTHOLD; // 关闭看门狗
motor_IO_int();
OLED_Init(); //初始化
OLED_Clear(); //清屏
while(1)
{
OLED_Display();
switch(P4IN&0x03)
{
case 0x00: ftont();break; //0000 ,全白,前进
case 0x01:turn_R();break; //0001,右边传感器碰到黑线,右转
case 0x02:turn_L();break; //0010 ,左边传感器碰到黑线,左转
case 0x03: stop();break; // 0011 全黑,停止
}
}
}
void OLED_Display()
{
OLED_ShowString(50,0,"Car",5);
__delay_cycles(1000000);
OLED_DrawBMP(0,0,127,7,BMP);
}
电机PWM控制
#include <motor.h>
void motor_IO_int()
{
P1DIR |=(BIT2+BIT3+BIT4+BIT5); //PWM1,PWM2,IN1,IN2
P3DIR |=(BIT3+BIT4);
P1SEL |=(BIT2+BIT3);
TA0CCR0 = 50; //定时器装载值,周期50us,即频率1*10^6/50=20kHz
TA0CCTL1 = OUTMOD_7;
TA0CCTL2 = OUTMOD_7;
TA0CTL= TASSEL_2 +MC_1;
P4DIR = 0x00; //左右寻迹传感器.
P4SEL = 0x00;
}
void ftont() //前进
{
PWM(32,32); //PWM占空比:32*100/50= 64%,即2倍关系
P1OUT |= BIT5;
P1OUT &= ~BIT4;
P3OUT |= BIT4;
P3OUT &= ~BIT3;
}
void stop() //停止
{
PWM(0,0);
}
void turn_L() //左拐
{
PWM(15,20);
P1OUT |= BIT4;
P1OUT &= ~BIT5;
P3OUT |= BIT4;
P3OUT &= ~BIT3;
}
void turn_R() //右拐
{
PWM(20,15);
P1OUT |= BIT5;
P1OUT &= ~BIT4;
P3OUT |= BIT3;
P3OUT &= ~BIT4;
}
void PWM(int pwm1,int pwm2) //左,右电机PWM
{
TA0CCR1 = pwm1; // CCR2 PWM 占空比定义
TA0CCR2 = pwm2; // CCR2 PWM 占空比定义
}
百度网盘下载:链接:https://pan.baidu.com/s/1dZIDLm8976wuyfgrsHjk7Q
提取码:8888
效果展示
直接上视频。寻线轨迹用的是2019年电赛无线充电小车铺设的图
基于MSP430F5529的两路寻迹小车
结束语
能力有限,难免有不足之处,对上述内容有疑问欢迎下方留言评论~
评论(1)
您还未登录,请登录后发表或查看评论