基于MSP430的寻迹小车,寻迹小车主要涉及到I/0口的输入输出,以及定时器产生PWM,个人认为,基本上不管是玩Arduino、C51、STM32或者MSP430单片机都应该必须会的。
主要器件
在这里笔者分享一下自己做的寻迹小车:
主控使用Ti官方的MSP430F5529,相比G2553,F5529引脚功能比较多些,其他型号的单片机都可以参考
两个寻迹传感器,TCRT5000红外反射传感器,检测到黑线或者悬空输出高电平
一个TB6612电机驱动,驱动两路4个130小电机足够了
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 #include #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 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年电赛无线充电小车铺设的图
上一篇:MSP430+LCD1602显示实验
下一篇:msp430单片机oled汉字字模_OLED液晶屏如何显示中文
推荐阅读最新更新时间:2024-11-16 23:46
设计资源 培训 开发板 精华推荐
- 使用 ON Semiconductor 的 FAN2510S 的参考设计
- OP495GSZ-REEL H桥运算放大器典型应用
- Upstream Connection With USB Transceiver Under 3.3V Environment
- 基于VIPer06XN的12V、140mA、30kHz非隔离降压拓扑稳压器
- 二路驱动 L298N
- 基于ESP8266的物联网开关
- LTC1706-81 VID 控制的大电流 4 相应用的典型应用电路
- DC2095A-B,用于 LTC6655BHLS8-4V 超低噪声、陶瓷封装 4.096V 精密电压基准的演示板
- NCN6001DEMO/D,使用 NCN6001 智能卡接口的演示板
- L7885C输出稳压电路的典型应用
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展
- 创实技术electronica 2024首秀:加速国内分销商海外拓展之路
- “跨芯片”量子纠缠实现 有助建构更强大的量子计算能力